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 на Lakehouse-архитектуру с Iceberg и S3: опыт страховой компании

Миграция с монолитного Greenplum на Lakehouse-архитектуру с Iceberg и S3: опыт страховой компании

Многие крупные компании, особенно в финансовом и страховом секторе, пришли к точке, когда классическая архитектура корпоративного хранилища данных (DWH) перестаёт удовлетворять требованиям бизнеса. Рост объёмов данных, усложнение аналитических сценариев, появление новых источников и потребность в более гибком масштабировании делают монолитные системы узким местом.

В нашем случае речь идёт о страховой компании, которая за четыре года эксплуатации накопила 50–70 ТБ данных в Greenplum, обрабатывала потоки из MongoDB, Kafka и классических реляционных СУБД, но столкнулась с типичными ограничениями монолитного подхода.

 

Проблемы старой системы (Greenplum DWH)

1. Высокая стоимость владения
Greenplum — мощная MPP-платформа, но лицензии и аппаратное обеспечение требовали значительных вложений. Дополнительные расходы появлялись при расширении кластера.

 

2. Ограниченное масштабирование
Масштабирование «вширь» было ограничено как технически (увеличение количества сегментов и перераспределение данных), так и экономически.

 

3. Ограниченная гибкость для аналитиков
Работа с неструктурированными источниками (JSON из MongoDB, потоковые события из Kafka) требовала промежуточных ETL-преобразований, замедляя доставку данных в витрины.

 

4. Гетерогенная среда
В одном DWH приходилось хранить как структурированные таблицы, так и полуструктурированные документы. Конфликты типов и сложные конверсии приводили к росту ETL-кода.

 

Выбор новой архитектуры

После анализа было определено несколько ключевых требований:

  • Разделение storage и compute для независимого масштабирования.
  • Open Source стек для снижения зависимости от вендоров.
  • Снижение TCO с полной окупаемостью проекта к 2025 году.
  • Поддержка гибридных сценариев: возможность работы с данными как в классическом BI, так и в data science.

 

Выбранный стек

  • Хранилище: S3 (Яндекс.Облако) + Apache Iceberg
  • Вычисления: Trino (основной), Greenplum (для легаси-витрин)
  • Оркестрация: Dagster + dbt
  • Каталог метаданных: OpenMetadata

 

Реализация миграции

1. Перенос данных

Переезд выполнялся по схеме:

  • Полная загрузка исторических данных через Airflow.
  • Самая крупная таблица — 60 ГБ, переносилась батчами.
  • Основной объём — инкрементально (T+1) через DAG'и Dagster.

 

Особенности:

  • Iceberg позволил хранить данные в Parquet, что дало прирост в скорости выборки на 15–20% по сравнению с Greenplum.
  • Исторические срезы: еженедельные снапшоты и архив глубиной 6 месяцев.

 

2. Модель слоёв

Слои данных были организованы по классической схеме:

Raw → ODS → DDS → Витрины

 

  • Raw — минимальные преобразования, хранение в исходном формате.
  • ODS — очищенные и нормализованные данные.
  • DDS — агрегаты и бизнес-логика.
  • Витрины — подготовленные наборы для BI.

 

3. Интеграции

  • MongoDB: CDC через Debezium → Kafka → Greenplum (PXF).
  • Trino: нативные коннекторы к S3 и JDBC-источникам.

 

Проблемы и их решения

1. Деградация JOIN-ов
В не-OLAP сценариях (много мелких запросов) время выполнения увеличивалось до 27%.
Решение: для мелких джойнов — материализованные представления в Iceberg с частичной денормализацией.

 

2. Кастомные типы данных
В Greenplum существовали собственные типы (например, money, interval), которые не маппились напрямую в Parquet.
Решение: преобразование на ETL-уровне в универсальные типы (decimal, string).

 

3. Хранимые процедуры
Вся логика витрин на PL/pgSQL стала непереносимой.
Решение: переписывание витрин на dbt-моделях, часть логики — в Python UDF для Trino.

 

4. Безопасность
Iceberg сам по себе не управляет доступом, поэтому контроль был реализован через Trino + Keycloak с политиками на уровне каталогов и таблиц.

 

Результаты

  • Экономия: хранение в S3 оказалось в 10+ раз дешевле, чем в Greenplum.
  • Гибкость: Trino и Greenplum одновременно работают с одними и теми же наборами данных.
  • Масштабируемость: вычислительные кластеры Trino в Kubernetes можно поднимать под конкретную нагрузку.

 

Планы развития

  • Переход с Hive Metastore на Project Nessie для поддержки ветвления данных.
  • Постепенный отказ от 3NF в пользу Data Vault.
  • Автоматическое масштабирование Trino по метрикам нагрузки.

 

Часто задаваемые вопросы

Q: Как настраивали информационную безопасность?
A: На уровне Trino с Keycloak и политиками доступа, плюс IAM-роли в S3.

 

Q: Как решали проблему несовместимых типов?
A: Преобразования на ETL-уровне, MongoDB оставили в легаси-зоне.

 

Q: Почему выбрали Parquet, а не ORC?
A: В тестах Parquet показал лучшее время чтения на наших типах запросов.

 

Q: Используете ли динамическое партиционирование?
A: Пока нет, в бэклоге.

 

Ошибки, которых стоит избежать

  1. Неполная инвентаризация хранимой логики — перенос процедур и функций может занять больше времени, чем сам перенос данных.
  2. Слепое копирование партиционирования из старой системы — Iceberg имеет свои оптимальные стратегии.
  3. Отсутствие мониторинга метаданных — без него Iceberg-таблицы могут быстро «разрастись» в количестве файлов.

 

Рекомендации

  • Перед миграцией провести пилот на одном бизнес-домене, чтобы отработать пайплайны.
  • Не переносить «мусорные» данные — миграция хороший повод навести порядок.
  • Инвестировать время в автоматизацию CI/CD для моделей dbt.

 

1. Архитектурная схема Lakehouse-стека

                 Источники данных

 ┌───────────────────────────────────────────────────────┐
 │  MongoDB  │  Kafka  │  PostgreSQL / Oracle  │  API    │
 └───────────┴─────────┴───────────────────────┴─────────┘
                         │
                         ▼
             (CDC / Batch / API загрузка)
                         │
                ┌───────────────────┐
                │     Оркестрация   │
                │ Dagster + dbt     │
                └───────────────────┘
                         │
                         ▼
                ┌───────────────────┐
                │       RAW         │  - исходные данные
                │  S3 + Iceberg     │
                └───────────────────┘
                         │
                         ▼
                ┌───────────────────┐
                │       ODS         │  - очищенные/нормализованные
                │  S3 + Iceberg     │
                └───────────────────┘
                         │
                         ▼
                ┌───────────────────┐
                │       DDS         │  - бизнес-агрегаты
                │  S3 + Iceberg     │
                └───────────────────┘
                         │
                         ▼
                ┌───────────────────┐
                │     Витрины       │  - BI-ready data
                │  S3 + Iceberg     │
                └───────────────────┘
                         │
          ┌────────────────────────────────────┐
          │      Движки вычислений             │
          │  Trino (ad-hoc / BI)               │
          │  Greenplum (legacy OLAP)           │
          └────────────────────────────────────┘
                         │
                         ▼
        ┌──────────────────────────────────────────┐
        │                 BI / ML                  │
        │ Power BI │ Superset │ Jupyter │ AutoML   │
        └──────────────────────────────────────────┘

 

Ключевые моменты:

  • Iceberg хранит данные в S3 в формате Parquet, поддерживая снапшоты и инкрементальные апдейты.
  • Trino — основной compute-движок для аналитических запросов, работает через коннектор Iceberg напрямую с S3.
  • Greenplum остаётся как временный «мост» для старых витрин и привычных отчётов.
  • Dagster управляет пайплайнами, dbt отвечает за SQL-трансформации.
  • OpenMetadata регистрирует схемы, lineage, владельцев данных.

 

2. Сравнение производительности: Trino+Iceberg vs Greenplum

Методология тестирования

Для честного сравнения использовали:

  • Набор тестовых запросов: mix OLAP и OLTP-подобных (50/50).
  • Датасеты: 1, 5, 10 и 50 ТБ (скейлинг данных методом data generator + исторические снапшоты).
  • Запросы:
    • сложные агрегаты с многоуровневым GROUP BY
    • джойны на 2–4 таблицы
    • window-функции (row_number, lag)
    • выборка по партициям + фильтры
  • Среда:
  • Greenplum 6.21 на bare metal (20 сегментов, 512 ГБ RAM)
  • Trino 441 на Kubernetes (8 worker-нод, по 64 ГБ RAM)

 

Результаты теста

Тип запроса

Greenplum (с)

Trino+Iceberg (с)

Комментарий

Простой агрегат (1ТБ)

42

35

Trino быстрее на 17% за счёт колоночного формата Parquet

JOIN 2x1B rows (1ТБ)

61

52

Выигрыш Trino в IO и планировщике

JOIN 4x1B rows (10ТБ)

310

360

GP выигрывает за счёт MPP-архитектуры в heavy join

Window + фильтр (1ТБ)

95

81

Trino выигрывает на партиционированных данных

Random access (OLTP-like)

0.05

0.12

GP быстрее из-за row-based хранения

Массовое чтение без фильтров

540

480

Trino быстрее при полном скане

 

Вывод:

  • Trino+Iceberg выигрывает на аналитических батчевых запросах с предикатами и агрегациями.
  • Greenplum всё ещё сильнее в очень тяжёлых джойнах и точечных OLTP-запросах.
  • В реальной эксплуатации бизнес-отчёты (витрины DDS) стали выполняться на 20–40% быстрее.

 

3. Практический опыт и советы

  1. Не копировать физическую модель из Greenplum в Iceberg
    Iceberg оптимальнее при партиционировании по датам/категориям, а не по surrogate-ключам.
  2. Следить за количеством мелких файлов
    Trino чувствителен к большому числу мелких Parquet-файлов. Помогает компакция в ETL.
  3. Кеширование в Trino
    Для часто запрашиваемых витрин стоит включать result caching или precomputed aggregates.
  4. Iceberg snapshots housekeeping
    Без регулярного expire_snapshots и remove_orphan_files S3-стоимость начнёт расти.
  5. Метрики в Kubernetes
    Автоскейлинг Trino лучше настраивать по CPU+IO wait, а не только по запросам.

 

4. Методология миграции

Шаг 1. Инвентаризация

  • Составить полный список таблиц, витрин, процедур и внешних интеграций.
  • Классифицировать: перенос «как есть» / рефакторинг / архив.

 

Шаг 2. Пилот

  • Выбрать один бизнес-домен (например, расчёт премий по страховым полисам).
  • Протестировать пайплайны CDC и batch-загрузки.

 

Шаг 3. Постепенный перенос

  • Начать с Raw и ODS, подключить BI к Trino для первых витрин.
  • Оставить DDS в Greenplum до готовности новых dbt-моделей.

 

Шаг 4. Оптимизация

  • Переписать join-heavy отчёты под возможности Trino.
  • Оптимизировать партиционирование Iceberg-таблиц.

 

Шаг 5. Вывод из эксплуатации Greenplum

  • Перенос остаточных витрин.
  • Архивирование исторических данных в S3.

 

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

← Предыдущая статья
Что такое конвейер CI/CD?
Следующая статья →
Учебный курс: StarRocks — полный практический гид по внедрению и эксплуатации

Решения

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

Клиенты
  • АО «НСПК» - оператор национальной системы платежных карт, который предоставляет операционные услуги и услуги платежного клиринга операторам платежных систем, в том числе Банку России и кредитным организациям. В задачи АО «НСПК» входит обеспечение бесперебойного доступа к переводам денежных средств в Российской Федерации с использованием платежных инструментов.  Также компания является оператором национальной платёжной системы «Мир» и операционным и платёжным клиринговым центром Системы быстрых платежей (СБП).

  • AbbVie – компания, которая стремится решить самые серьезные проблемы здравоохранения. Это биофармацевтическая компания, сфокусированная на исследованиях и разработках.

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

  • ИНВИТРО
    ИНВИТРО – крупнейшая частная медицинская компания в России, специализирующаяся на лабораторной диагностике и оказании других медицинских услуг.
     
    ИНВИТРО располагает 9 самыми современными лабораторными комплексами и крупнейшей в Восточной Европе сетью более чем из 900 медицинских офисов. Страны присутствия — Россия, Украина, Казахстан, Беларусь.
     
  • Решения
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • 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 и политикой конфиденциальности.