Upload
nikolay-samokhvalov
View
488
Download
0
Embed Size (px)
Citation preview
ODS/O2G
Опыт разработки и внедрения решения для репликации данных из операционных источников БД Greenplum в
банке Тинькофф
Эволюция механизмов загрузки данных в DWH
1. До 2012 года. Чтение прямо из источников2. 2012 – 2015. Репликация источников прямо в GreenPlum3. Использование ODS/O2G
Этап 1
DWHSource ETL
Этап 2
GP(OOD layer)Source CDC GP(ODD, DDS
layers)
ELT
Этап 2. Применение изменений в GP
Основная проблема – огромное количество операций на источниках.Вариант решения – «схлопывание по ключу»
Применение изменений в таблицы-реплики. Пример.Лог изменений
Порядок применения изменений в реплику.• данные попадают в т.н. net-таблицу. (внутренняя таблица, для загрузки используются external table)• Данные разбиваются на батчи и «схлопываются» последовательно по ключу. В у казанном примере
резултат «схлопывания» будет следующий:
Этап 2. Причины отказа
- Огромная нагрузка на ввод/вывод в GP, частый выход из строя дисков
- Большая часть транзакций в GP (80% от общего количества) – от репликатора
- Задержка при переходе в режим «row-by-row»- Не было multitarget
Этап 3 (Текущий)
ODSSource CDC GP(ODS layer)
O2G
GP(ODD, DDS
layers)
ELT
Этап 3. ODS
Репликация работает в режиме «Real time data warehousing» – когда несколько источников реплицируются в один приемник.
Этап 3. Архитектура O2G
Компоненты O2G:• ODS• o2g_repo• CSV file storage• GreenPlum - приемник реплик
Процессы O2GL• O2G_unload• O2G_apply• O2G_clear
Этап 3. Преимущества
- Полностью лег на архитектуру ELT процессов- Снижена нагрузка на ввод/вывод GP- Регулируемая задержка- Позволило сжимать данные и хранить их поколоночно –
экономия места, оптимизация ввода/вывода- Multitarget – все контуры не зависимы и ничего не знают
друг о друге- Для операционной отчетности имеем online данные- Другие потребители данных ODS (шина…)
Количественные характеристики
• кол-во таблиц в ODS: 745• общий размер ODS (без реплик и индексов): 10 Тб• общий размер реплик ODS в GreenPlum: 2,7 Тб• задержка репликации источник->ODS: близка к 0• количество DDL операций в сутки:
• update до 220М• insert до 200М• delete до 30М
• задержка репликации ODS->Greenplum: до двух часов
Куда же без проблем…
• Батчевые операции на источниках: увеличение латентности репликатов в ODS
• Большие объемы изменений в источниках: увеличение времени выгрузки в csv-файлы, ORA-1555
• Не реплицируем поля «редких» типов: LOB, LONG
FIN
Спасибо за внимание.