13
ODS/O2G Опыт разработки и внедрения решения для репликации данных из операционных источников БД Greenplum в банке Тинькофф

2016-04-05 #PostgreSQLRussia TinkoffBank #4

Embed Size (px)

Citation preview

Page 1: 2016-04-05 #PostgreSQLRussia TinkoffBank #4

ODS/O2G

Опыт разработки и внедрения решения для репликации данных из операционных источников БД Greenplum в

банке Тинькофф

Page 2: 2016-04-05 #PostgreSQLRussia TinkoffBank #4

Эволюция механизмов загрузки данных в DWH

1. До 2012 года. Чтение прямо из источников2. 2012 – 2015. Репликация источников прямо в GreenPlum3. Использование ODS/O2G

Page 3: 2016-04-05 #PostgreSQLRussia TinkoffBank #4

Этап 1

DWHSource ETL

Page 4: 2016-04-05 #PostgreSQLRussia TinkoffBank #4

Этап 2

GP(OOD layer)Source CDC GP(ODD, DDS

layers)

ELT

Page 5: 2016-04-05 #PostgreSQLRussia TinkoffBank #4

Этап 2. Применение изменений в GP

Основная проблема – огромное количество операций на источниках.Вариант решения – «схлопывание по ключу»

Применение изменений в таблицы-реплики. Пример.Лог изменений

Порядок применения изменений в реплику.• данные попадают в т.н. net-таблицу. (внутренняя таблица, для загрузки используются external table)• Данные разбиваются на батчи и «схлопываются» последовательно по ключу. В у казанном примере

резултат «схлопывания» будет следующий:

Page 6: 2016-04-05 #PostgreSQLRussia TinkoffBank #4

Этап 2. Причины отказа

- Огромная нагрузка на ввод/вывод в GP, частый выход из строя дисков

- Большая часть транзакций в GP (80% от общего количества) – от репликатора

- Задержка при переходе в режим «row-by-row»- Не было multitarget

Page 7: 2016-04-05 #PostgreSQLRussia TinkoffBank #4

Этап 3 (Текущий)

ODSSource CDC GP(ODS layer)

O2G

GP(ODD, DDS

layers)

ELT

Page 8: 2016-04-05 #PostgreSQLRussia TinkoffBank #4

Этап 3. ODS

Репликация работает в режиме «Real time data warehousing» – когда несколько источников реплицируются в один приемник.

Page 9: 2016-04-05 #PostgreSQLRussia TinkoffBank #4

Этап 3. Архитектура O2G

Компоненты O2G:• ODS• o2g_repo• CSV file storage• GreenPlum - приемник реплик

Процессы O2GL• O2G_unload• O2G_apply• O2G_clear

Page 10: 2016-04-05 #PostgreSQLRussia TinkoffBank #4

Этап 3. Преимущества

- Полностью лег на архитектуру ELT процессов- Снижена нагрузка на ввод/вывод GP- Регулируемая задержка- Позволило сжимать данные и хранить их поколоночно –

экономия места, оптимизация ввода/вывода- Multitarget – все контуры не зависимы и ничего не знают

друг о друге- Для операционной отчетности имеем online данные- Другие потребители данных ODS (шина…)

Page 11: 2016-04-05 #PostgreSQLRussia TinkoffBank #4

Количественные характеристики

• кол-во таблиц в ODS: 745• общий размер ODS (без реплик и индексов): 10 Тб• общий размер реплик ODS в GreenPlum: 2,7 Тб• задержка репликации источник->ODS: близка к 0• количество DDL операций в сутки:

• update до 220М• insert до 200М• delete до 30М

• задержка репликации ODS->Greenplum: до двух часов

Page 12: 2016-04-05 #PostgreSQLRussia TinkoffBank #4

Куда же без проблем…

• Батчевые операции на источниках: увеличение латентности репликатов в ODS

• Большие объемы изменений в источниках: увеличение времени выгрузки в csv-файлы, ORA-1555

• Не реплицируем поля «редких» типов: LOB, LONG

Page 13: 2016-04-05 #PostgreSQLRussia TinkoffBank #4

FIN

Спасибо за внимание.