BI Consult Desktop Logo BI Consult Mobile Logo
  • Russian BI Исследование российских bi
  • Перейти на Fine BI
  • Контакты
  • +7 812 334-08-01
    +7 499 608-13-06
  • Отправить сообщение
  • Главная
  • Продукты Эксперт-BI
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Сельское хозяйство
    • Энергетика
    • FMCG
    • Девелоперы
    • Маркетплейсы
    • Пищевая промышленность
    • Фармацевтика
    • Построение Data Platform
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и FP&A
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • IBP
    • ИТ (CIO)
    • Закупки
  • Платформы
    • Системы бизнес-анализа (BI)
    • Интегрированное бизнес-планирование (IBP)
    • Хранилища данных (DWH / Lakehouse)
    • Каталоги данных (Data Catalog)
    • Системы ETL и ELT
    • AI / Исскуственный интеллект
    • Шина данных (ESB)
    • Система управления мастер-данными (MDM)
    • Семантический слой
  • Услуги
    • Переход на отечественные BI и DWH системы
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений и DWH
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Курсы
    • Учебный курс Информационная грамотность (Data Literacy)
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Greenplum
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt (Data Build Tool)
  • Компания
    • Руководство
    • Новости
    • Клиенты
    • Карьера
    • Скачать
    • Контакты

BI

  • FineBI
  • FineReport
  • FineDataLink
  • FineChatBI (FineAI)
  • Коннекторы данных из 1С в BI
  • Airflow / Nifi
  • Visiology
  • PIX BI
  • Modus BI
  • Yandex.DataLens
  • Open-source BI: Superset/Metabase
  • Luxms BI
  • AW BI + Alpha BI
  • FlyBI + Форсайт. Аналитическая Платформа
  • Loginom
  • Триафлай
  • AI / Исскуственный интеллект
  • Optimacros
  • Навигатор BI
  • Семантический слой

СУБД

  • Arenadata
  • ClickHouse
  • Greenplum
  • Postgres Professional
  • TData

Другое

  • Построение Data Platform
    • Аналитическое хранилище данных
    • Data Lake и Data Engineering
    • Подробнее про Data Lake
    • Внедрение Lakehouse
      • Apache Doris
      • StarRocks
      • Trino
    • Миграция витрин из пропиетарных DWH на новый стек
    • Учебный курс "Современная архитектура хранилища данных"
Главная » Курсы по системам бизнес-анализа и методологии » Учебный курс Современная архитектура хранилища данных » Построение высокопроизводительного хранилища данных на Greenplum с применением методологии Data Vault 2.0: от архитектурных принципов до промышленной эксплуатации

Построение высокопроизводительного хранилища данных на Greenplum с применением методологии Data Vault 2.0: от архитектурных принципов до промышленной эксплуатации

В современном мире, где данные становятся ключевым активом бизнеса, построение масштабируемого, гибкого и производительного хранилища данных превращается из технической задачи в стратегическую необходимость. Наша компания, обладая многолетним опытом реализации сложных DWH-проектов, готова поделиться уникальным кейсом миграции с устаревшей инфраструктуры на PostgreSQL к современной платформе на базе Greenplum с полным циклом внедрения методологии Data Vault 2.0.

Изначальная инфраструктура проекта была построена на PostgreSQL — надежной SQL-СУБД, но не предназначенной для аналитических нагрузок большого объема. Архитектура включала два основных источника данных: кластер MongoDB для операционных данных бэкенда и внешние API-сервисы. Для обработки изменений данных использовался кастомный CDC-сервис на Node.js, который читал oplog MongoDB и применял изменения в слое сырых данных.

 

У данной архитектуры был ряд существенных недостатков:

  • Невозможность горизонтального масштабирования сервера PostgreSQL
  • Витрина-монолит весом более 150 Гб с 300+ атрибутами
  • Отсутствие стандартизации в коде и процессах разработки
  • Многочисленные дублирования метрик в различных витринах
  • Экспоненциальный рост сложности оптимизации запросов
  • Высокие операционные затраты на поддержку самописного CDC-решения

 

В итоге мы накопили довольно много данных ...

Кроме того, объемы данных показывали устойчивый рост: с 75,1 миллионов заказов в 2023 году до 54,4 миллионов только за первое полугодие 2024 года, что требовало принципиально нового подхода к архитектуре хранения и обработки данных.

 

Выбор целевой платформы: Greenplum как основа будущей архитектуры

После тщательного анализа рынка решений для аналитических нагрузок был выбран Greenplum —MPP СУБД с открытым исходным кодом, основанная на PostgreSQL. Критерии выбора включали бесплатность и открытость решения; легкую горизонтальную масштабируемость; поддержку колоночного хранения данных; ориентированность на аналитические нагрузки, а также наличие экспертизы в команде.

Хотя Greenplum и основан на устаревшей версии PostgreSQL 9.4 и имеет ограничения с OLTP-нагрузкой, его преимущества для аналитических сценариев использования оказались решающими.

 

 

Новая архитектура представляет собой многослойную систему. В качестве слоя источников данных мы выбрали MongoDB кластер (10 инстансов) и внешние API-сервисы. Затем мы создали CDC-слой - улучшенный кастомный сервис, читающий oplog MongoDB и отправляющий изменения в Kafka. Для буферизации мы выбрали Apache Kafka (для надежного хранения потоковых данных). Для переноса данных из Kafka в Greenplum мы выбрали Apache NiFi. Для хранения данных - Greenplum в конфигурации 16 сегментов на 4 сегмент-хостах, для трансформации данных - DBT с доработанным коннектором для Greenplum. В качестве оркестратора больше всего нам понравился Apache Airflow (для управления ETL-процессами), а в качестве модели хранения данных выбрали DataVault  2.0.

 

Главная часть нашего  хранилища — его детальный слой. Сейчас DDS включает в себя:

 

Сейчас в проде многие используют DBT. Можно сказать, что это трендовый элемент, но мы используем его не из-за его популярности, а потому что приложение легковесное, отлично подходит для CI/CD и полностью соответствует принципу DRY.

Это очень важно при методологии DataVault. DBT следует концепции «Всё есть SELECT» (все команды CREATE, INSERT, UPDATE, DELETE заменяются одним SELECT-запросом). При этом логика преобразований может быть многоуровневой, что освобождает инженеров от DDL-операций. + встроенная автодокументация с Web-сервером, Data Lineage и тесты, позволяющие сохранить ещё больше ресурсов для концентрации на моделировании и настройке ELT.

 

Поскольку нативный коннектор DBT для Greenplum отсутствовал, была проведена работа по интеграции с появившимся коннектором, доработке пакета DBT Vault для поддержки Greenplum, а также по адаптации синтаксиса хэширования и оконных функций. Кроме этого мы автоматизировали работу с кастомными скриптами.

 

Функционал DBT expand_column_types оказался для нас удивительным и вредным. Он по умолчанию включен в DBT, и явно его отключить в нашей версии было невозможно (в итоге мы его выпилили).

 

Внедрение методологии Data Vault 2.0

Методология DV 2.0 была выбрана за ее гибкость и способность сохранять полную историю изменений. Как ее реализовали мы. Во-первых, мы использовали MD5 хэшей для построения ключей вместо последовательных идентификаторов. Далее мы организовали данные в хабы, линки и сателлиты. Помле этого мы реализовали  механизм параллельной загрузки данных и обеспечили возможности джойнов с Data Lake.

 

Оптимизация производительности на каждом этапе ETL

Этап 1: Взятие инкремента из сырых данных
Сырые данные хранились в партиционированных по месяцам таблицах, некоторые из которых достигали 150 Гб к концу месяца. Для оптимизации было введено дополнительное индексирование по атрибутам временных диапазонов, был принудительно отключен GPORCA и настроено последовательное сканирование. Время обработки в итоге было сокращено с 45+ минут до более приемлемых значений.

 

Этап 2: Раскладка неструктурированных данных

Для обработки MongoDB-документов с 500+ атрибутами мы реализовали самописный скрипт для анализа сырых данных на предмет новых атрибутов, сервисную таблицу маппинга атрибутов в плоский вид, а также механизм почасового обновления метаданных о структуре документов.

 

Этап 3: Подготовка финального стейджа

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

 

Этап 4: Вставка в DDS

 

Для больших объектов Data Vault мы реализовали правильное секционирование для минимизации сканируемых данных, механизм обработки релевантных партиций, а также защиту от дублирования данных при пересечении ключей между партициями.

 

Этап 5: Сбор витрин

Критически важный этап с точки зрения бизнес-ценности.

 

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

 

Организация процессов разработки и поставки кода

Для коллективной работы над объектами Greenplum мы реализовали двухуровневую систему: управление через Liquibase (создание схем, служебных объектов, настройка прав с автоматизированным процессом тестирования и наката изменений), а также управление через DBT (полный контроль над объектами в выделенных схемах с автоматизированной сборкой и деплоем через Docker-образы).

Процесс запуска расчетов организован через ssh-оператор Airflow, который через единый entrypoint запускает различные функционалы проекта. Одноразовые контейнеры обеспечивают изоляцию версий и предсказуемость выполнения задач.

Для сложных DDL-изменений и кастомных пересчетов реализован модуль миграций на Python, интегрированный в DBT-проект и запускаемый через отдельный ручной DAG.

 

Система мониторинга и алертинга

Для предотвращения инцидентов и оперативного реагирования мы внедрили многоуровневую систему мониторинга каждого этапа ETL, включающую в себя мониторинг чтения данных из oplog и отправки в Kafka, контроль лага вычитки из топиков, наблюдение за обработкой сообщений в NiFi, мониторинг вставки данных в Greenplum, отслеживание результатов работы DBT и его тестов, а также контроль выполнения Airflow DAG и времени обработки задач.

Система алертинга была настроена с учетом приоритетности уведомлений для исключения эффекта "замыливания глаза" на важные события.

Внедрение новой архитектуры позволило достичь значительных улучшений. Мы ускорили процесс разработки витрин данных в 3-5 раз (!). У нас наконец-то появилась возможность подключения аналитиков к разработке моделей данных и мы сократили потребность в дата-инженерах для поддержки платформы. Кроме того, мы устранили ряд узких мест в доставке данных, ликвидировали дублирование метрик и обеспечение консистентности, а также реализовали инкрементальное обновление витрин. У нас появилась возможность бесшовного масштабирования сервера БД, сохранения полной истории изменений данных, а также создания основы для перехода к архитектуре Data Mesh.

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

Планы по развитию примерно следующие:

  • Внедрение механизма охлаждения исторических данных в S3
  • Добавление ClickHouse для обслуживания многочисленных читающих пользователей
  • Расширение перечня источников данных
  • Дальнейшая автоматизация процессов управления инфраструктурой

 

Реализация хранилища данных на Greenplum с применением методологии Data Vault 2.0 показала свою эффективность для высоконагруженных аналитических систем. Представленное решение демонстрирует возможность построения масштабируемой, гибкой и производительной платформы для работы с большими объемами данных, способной адаптироваться к быстро меняющимся бизнес-требованиям.

Узнать стоимость решенияЗапросить видео презентацию

← Предыдущая статья
Выбор оптимальных форматов данных
Следующая статья →
Комплексная безопасность среды Business Intelligence: стратегии, риски и практические решения для современных предприятий

Решения

Анализировать ФинансыУвеличивайте ПродажиОптимальный Склад и ЛогистикаМаркетинговые Метрики

Клиенты
  • Авиакомпания NordStar (АО «АК «НордСтар») – работает под данным брендом с 2008 г. и сейчас входит в топ-15 крупнейших российских авиакомпаний (данные Росавиации) с пассажирооборотом более 1 млн человек в год. АО «АК «НордСтар» выполняет и внутренние, и внешние рейсы, а ее основные хабы - Домодедово, Пулково и Емельяново. С 2021 года компания является базовым перевозчиком аэропорта Норильск.

  • Ручная обработка заявок на займы в МФО ДоброЗайм была малоэффективной и приводила к высоким затратам по ФОТ отдела верификации и андеррайтинга. При этом время обработки заявок было высоким, как и количество ошибок под влиянием человеческого фактора. Дополнительные сложности создавал сложный документооборот, обусловленный неконсолидированной кредитной историей и скоринговой оценкой. Все это суммарно мешало масштабированию бизнеса МФО.

  • Группа компаний «Невский кондитер» основана в 1996 году в Санкт-Петербурге и на сегодняшний день является одним из крупнейших производителей кондитерских изделий в России.

     

  • KazanExpress — торговая площадка, на которой представлены товары с бесплатной доставкой за один день в более, чем 70 городах России. Аналитическое решение на базе платформы данных Yandex Cloud позволило компании обеспечить демократизацию данных. Результат — принятие обоснованных решений на всех уровнях, увеличение лояльности партнеров и повышение прозрачности бизнеса.

    Мониторинг ключевых метрик в реальном времени минимизировал недополученную прибыль и обеспечил рост прибыльных направлений, а возможности геоаналитики сервиса Yandex DataLens помогли за короткое время проанализировать локации для открытия более 90 ПВЗ в 25 городах России и заложить основу для роста компании.

  • Решения
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Энергетика
    • Фармацевтика
  • Услуги
    • Переход на отечественные BI и DWH
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Техническая поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Платформы
    • FineBI
    • FineReport
    • FineDataLink
    • Коннекторы данных из 1С в BI
    • Airflow + NiFi
    • Visiology
    • Luxms BI
    • Modus BI
    • PIX BI
    • Arenadata
    • ClickHouse
    • Greenplum
    • Postgres Professional
    • Open-source BI: Superset/Metabase
    • Loginom
    • Yandex.DataLens
    • AI / Исскуственный интеллект
    • Optimacros
    • Шины данных
  • Курсы
    • Учебный курс Информационная грамотность
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt
  • Функциональные решения
    • Создание Data Lake
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и прогнозная аналитика
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • Сквозная аналитика
  • Компания
    • О нас
    • Руководство
    • Новости
    • Клиенты
    • Скачать
    • Контакты
    • Политика конфиденциальности
RutubeVkontakteLinkedInYouTube
ООО "Би Ай Консалт",
ИНН: 7811437757,
ОГРН: 1097847154184
199178, Россия,
Санкт-Петербург,
6-ая линия В.О., Д. 63, 4 этаж
Тел: +7 (812) 334-08-01
Тел: +7 (499) 608-13-06
E-mail: info@biconsult.ru

 

 

 

 

 

×

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