Организация Data Lake для платформы цифровой логистики
- Заказчик:
- Monopoly.Online
- Руководитель проекта со стороны заказчика
- Поставщик
- Yandex Cloud и BI.Qube
- Год завершения проекта
- 2023
- Сроки выполнения проекта
- Июль, 2022 - Ноябрь, 2022
- Масштаб проекта
- 1073 человеко-часа
- Цели
- Организовать приём данных из всех источников и их процессинг в Data Lake (озере данных).
- Реализовать бизнес‑ядро хранилища и размещение модели данных в Data Warehouse (DWH).
- Создать процесс построения и хранения витрин.
- Настроить сквозное управление метаданными на всех слоях трансформации и определить варианты отчётности для метаданных и дата‑каталогов.
- Результаты
· Использование нового стека и сбор данных из нескольких систем сократили время подготовки отчётности в 5 раз.
· Управляемая СУБД Greenplum позволила ускорить обработку больших объёмов (более 1 ТБ) данных при выполнении сложных SQL‑запросов за счёт распараллеливания операций и концепции Shared Nothing.
· Отказоустойчивость системы стала выше благодаря зеркалированию и резервированию.
· Система позволяет генерировать более 50 BI‑отчётов по 300 метрикам в модели данных (EDM). Более 400 пользователей обращаются к данным из хранилища.
· Оплата арендованных ресурсов Yandex Cloud — прозрачная, с ней легко прогнозировать затраты и улучшать производительность. Гибкая система управления ресурсами позволила быстрее запускать аналитические продукты, требующие больших вычислений. Теперь не нужно ждать покупки дополнительных серверных мощностей.
· Сервисы компании регулярно получают данные из всех источников в простую файловую структуру каталогов и имеют к ним удобный доступ непосредственно из СУБД.
Уникальность проекта
Сервисы компании получают данные из более чем из 10 различных источников. Данных много и они разнородные, а кроме того, в работе с ними нужно учитывать временные метки. С этой задачей успешно справился набор инструментов российского ПО BI.Qube, способный работать с распределёнными разнородными источниками и эффективно организовывать оперативную доставку больших объёмов данных в стейджинг‑среду.
Продукт, который создали BI.Qube и Monopoly.Online, можно назвать уникальным, так как это первое решение по доставке больших объёмов данных с помощью Yandex Cloud.
- Проект решает задачи импортозамещения
- Да
- Использованное ПО
Yandex Object Storage
Yandex DataLens
Yandex Managed Service for ClickHouse
Yandex Compute Cloud
Yandex Managed Service for PostgreSQL
BI.Qube
- Сложность реализации
Всего за 4 месяца организовали приём данных более чем из 10 разнородных источников и их процессинг в Data Lake, а также создали процесс построения и хранения витрин с помощью набора сервисов платформы данных Yandex Cloud и технологий Open Source.
- Описание проекта
Архитектура проекта на BI.Qube состоит из пяти функциональных блоков, каждый из которых играет свою роль в процессе обработки данных.
Блок извлечения и загрузки данных
Создан на платформе .NET и развёрнут на виртуальных машинах Compute Cloud. Поддерживает реляционные базы данных (PostgreSQL, SQL Server, MySQL), таблицы Microsoft Excel (в том числе из внешних хранилищ OneDrive, Яндекс Диск), сервис Google BigQuery, а также другие источники данных Rest API. Загрузка сырых данных осуществляется в Data Lake: объектное S3‑хранилище Yandex Object Storage с файлами формата Apache Parquet, управляемые базы данных PostgreSQL и Greenplum.
Блок оркестрации
В качестве оркестратора для запуска и планирования задач интеграции используется Open Source инструмент Apache Airflow 2.0, который предоставляется в Yandex Cloud Marketplace.
Блок шифрования
Доступно шифрование любых данных, связанных с системами источников и назначения. Для этого используется асимметричный алгоритм RSA с длиной ключа в 4096 бит. Он отличается высокой криптостойкостью и зарекомендовал себя в промышленных решениях.
База данных для хранения настроечной информации
Информация об источниках данных и целях их загрузки в Data Lake хранится в СУБД PostgreSQL, развёрнутой на виртуальной машине в Yandex Compute Cloud.
Блок формирования параметров запуска интеграции
Данный модуль также разработан на платформе .NET. Он опрашивает настроечную БД и формирует запросы к источникам, чтобы загрузить их в целевую систему и отправить на вход в блок извлечения и загрузки данных. Для взаимодействия с БД используется технология доступа к данным Entity Framework, а быстрая параллельная загрузка данных реализована с помощью инструмента Apache NiFi.
Проект реализовали и запустили всего за 4 месяца.
- География проекта
- Вся Россия
- Дополнительные презентации:
- Типовая_архитектура_DWH_на_BI_Qube,_Yandex_Cloud,_open_source.png