Платформа по работе с большими данными

Платформа по работе с большими данными

В настоящее время наблюдается уход многих зарубежных вендоров, имеющих платформы и решения для сбора, хранения и обработки данных, а также многомерной аналитики данных.

Компания ОТР предлагает свою платформу, состоящую исключительно из программных компонент Российского производства или являющихся свободно распространяемым ПО.

Платформа BigData обеспечена всеми необходимыми подсистемами для работы с большими данными, а также административными подсистемами для обеспечения бесперебойной работы платформы в целом.

Описание платформы

Платформа хранения и обработки больших данных предназначена для работы с большими массивами структурированного и неструктурированного контента.

Платформа является «cloud-native» и способна разворачиваться в облачной инфраструктуре с использованием контейнеров Kubernetes. Такой подход уменьшает сложность больших приложений и даёт возможность командам разработчиков быть более эффективными.

За счет своей гибкости, платформа может работать как на виртуальном ЦОДе, так и на собственном аппаратном обеспечении внутри кластера виртуальных машин. Сервисы, реализуемые в платформе, могут работать в общедоступном или private облаке.

Платформа позволяет быстро и экономично создавать сервисы и приложения, основанные на больших данных и машинном обучении.

Преимущества

Дешевое обслуживание

За счет экономии количества ядер и затрачиваемых ресурсов по времени фактического использования (оплата по «тарифу»)

Высокая производительность

Обусловлена возможностью горизонтального масштабирования в облачной инфраструктуре

Безопасность данных

Обеспечивается сквозным разграничением прав доступа к данным

Отказоустойчивость

За счёт возможности зеркалирования облачного кластера по множеству поставщиков облачных вычислений

Скорость создания приложений

За счет контейнеризации и CI/CD- методологий

Гибкость в настройке

Обусловлена возможностью быстро перемещать приложения между облачными провайдерами

Архитектура

Компоненты платформы

Подсистема «Управление потоками данных» – предоставляет функции управления потоками данных между компонентами платформы и мониторинга их состояния, средствами Apache Kafka. Для получения данных внешних источников используется Ni-Fi и AirFlow.
Также в «арсенале» решений имеются продукты Российских вендоров.

Модуль мониторинга процессов загрузки данных – интеграционный сервис в составе платформы, собирающий данные с программных компонент подсистем Управление потоками данных и Трансформации и загрузки данных и через подсистему API данных транслирующий сигналы о сбоях в ELT/ELT процедурах во внешние ИС- потребители (например, в ИС технической поддержки КХД).

Подсистема трансформации и загрузки данных – обеспечивает возможность трансформации данных в пакетном и потоковом режимах. А также обеспечивает загрузку данных в озеро и структурированное хранилище, средствами Apache Spark и Spark Streaming.

Подсистема «Озеро данных» – хранилище данных развернутое на HDFS, Minio S3 или Ceph (в процессе внедрения можно выбрать одно из решений), обеспечивающее горизонтально масштабируемое хранение больших объемов данных.

При проектировании хранилища подразумевается, то что данные в него добавляются в том виде, котором они поступили из источников. Это позволяет избежать возможных ошибок, которые могут возникнуть при трансформации и потенциальные потери данных.

Также такой подход к хранению позволяет применять парадигму чтения данных – schema on read. Т.е. применять различные схемы данных к одному и тому же датасету в зависимости от сценария использования.

Подсистема структурированное аналитическое хранилище – SQL хранилище, реализованное в СУБД Greenplum + Clickhouse, использующую MPP (massively parallel processing) обработку данных, который сильно ускоряет сложные аналитические запросы к данным. При этом при проектировании схемы хранения данных используется подход[KAV1] 3NF, Data Vault 2.0, Anchor Modeling и пр., который позволяет сильно упростить гибкую инкрементальную разработку хранилища.

Для отдельного класса задач в подсистему может быть добавлена СУБД Tarantool для проведения быстрых in-memory вычислений.

Возможность комбинации вышеуказанных СУБД в рамках одной платформы позволяет достичь высокой производительности в широком спектре задач (OLTP, OLAP, etc.) без необходимости поддерживать несколько «тяжелых» программных платформ.

Специализированное хранилище данных – обеспечивает хранение данных о состояниях приложений и процессов системы, обеспечивая высокую скорость транзакций, а также предоставляет различные специализированные noSQL хранилища, такие как ElasticSearch (для полнотекстового поиска), Neo4J – для хранения и операций с графами, а также их анализа.

Подсистема «Управление метаданными» (linkedin datahub + MDM) – обеспечивает возможность управления метаданными внутри платформы. А также классификацию данных, отслеживание движения данных (data lineage), поиск данных, гибкую настройку доступа на уровне объектов данных и хранение справочников и мастер-данных. Возможно использование Apache Atlas, а также продуктов Российских вендоров.

Подсистема API данных – логический слой хранилища данных, представляющий собой RESTful API, обеспечивающий простоту интеграции других подсистем с хранилищем.

Также в этой подсистеме реализована интеграция с подсистемой управления метаданными, что позволяет гибко управлять доступом к данным на основе атрибутов метаданных.

Подсистема «Управление качеством данных» – может быть построена на opensource продукте Amazon Deequ, предоставляет различные алгоритмы и процессы управления качеством данных. Имеет нативную интеграцию с Apache Spark.

Также в рамках данной подсистемы возможна реализация «Бизнес DQ» – системы правил проверки целостности, полноты и непротиворечивости данных в хранилище.

Также имеются продукты Российских вендоров.

Подсистема «BI» – построена на собственном продукте OTRi.Set (внесен в реестр отечественного ПО - Запись в реестре от 30.01.2023 №16407).

Предоставляет возможности многомерного анализа данных и построения неструктурированных отчетов и дашбордов любой сложности.

Подсистема «Генерация отчетов» – конструктор отчетов, позволяющий создавать собственные шаблоны отчетных форм в режиме Low-code.

Может быть использован JasperReports или native-разработка компании ОТР в рамках платформы BigData.

Стек платформы

Подсистема «Управление потоками данных»

  • Apache Kafka
  • Ni-Fi
  • AirFlow

Подсистема трансформации и загрузки данных – Apache Spark/PySpark (+ Spark Streaming)

Подсистема «Озеро данных»

  • HDFS
  • GMinio S3
  • Ceph

Подсистема структурированное аналитическое хранилище

  • PostgreSQL
  • Greenplum
  • Clickhouse

Специализированное хранилище данных

  • ElasticSearch
  • Neo4J
  • MongoDB

Подсистема «Управление метаданными»

  • linkedin datahub
  • MDM
  • Apache Atlas

Подсистема API данных – Restful API service

Подсистема управления доступа к данным

  • Apache Ranger
  • Keycloak

Подсистема «Управление качеством данных» – Amazon Deequ

Подсистема «BI» – OTRi.Set (на основе Apache Superset)

Подсистема «Генерация отчетов» – JasperReports

Возможным компаньоном платформы OTRi.BigData Platform в составе решений компании предлагаем платформу

Machine Learning

При наличии задач машинного обучения, она поможет организовать процессы и обеспечить непрерывность модельной разработки.

Cloud Native – платформа разработки моделей машинного обучения, обеспечивающая полный цикл анализа данных, разработки, развертывания и мониторинга моделей машинного обучения.

В качестве фреймворка для обработки данных используется Apache Spark, который подходит для параллельной обработки больших массивов данных.

Для глубокого обучения нейронных сетей используется универсальная и быстрая библиотека машинного обучения TensorFlow.

В качестве альтернативы Tensorflow может быть использован фреймворк PyTorch, позволяющий создавать более сложные архитектуры нейронных сетей для глубокого обучения.

Благодаря готовой экосистеме пакетов по машинному обучению, компьютерному зрению, обработке сигналов и параллельной обработке, платформа позволяет в короткие сроки обучать модели и создавать ML-driven сервисы.

Подсистемы платформы Machine Learning

Подсистема интеллектуальные сервисы – представляет собой интегрированную среду, включающую в себя средства развертывания моделей машинного обучения (Kubernetes+Istio), реализованных в виде микросервисов. BPM – движок, обеспечивающий бизнес-функциональность сервисов, направленных на конечных потребителей. Так же подсистема предусматривает пользовательские интерфейсы.

Подсистема модели машинного обучения – обеспечивает непрерывный цикл проверки гипотез, прототипирования и разработки моделей машинного обучения с последующим внедрением в виде различных бизнес-сервисов. Реализовано на базе JupiterLab. Помимо этого, данная подсистема имеет средства мониторинга, сбора обратной связи и дообучения моделей. А так же средства доступа к данным и их визуализации (включая визуализацию графов), необходимым для обучения моделей.

CI/CD инструменты (Gitlab) обеспечивают версионирование и полный контроль разработки моделей.