42
Сегментируем 600 млн пользователей в режиме реального времени каждый день. HBase/Kafka на службе DMP Маринов Артем Лидер разработки Facetz DMP Data-Centric Alliance 4

Сегментируем 600 млн. пользователей в режиме реального времени каждый день. HBase/Kafka на службе DMP / Артем

  • Upload
    ontico

  • View
    134

  • Download
    6

Embed Size (px)

Citation preview

Page 1: Сегментируем 600 млн. пользователей в режиме реального времени каждый день. HBase/Kafka на службе DMP / Артем

Сегментируем 600 млн пользователей в режиме реального времени каждый день. HBase/Kafka на службе DMP

Маринов Артем Лидер разработки Facetz DMP Data-Centric Alliance

4

Page 2: Сегментируем 600 млн. пользователей в режиме реального времени каждый день. HBase/Kafka на службе DMP / Артем

• Data Management Platform • 600 млн пользователей

Что такое Facetz DMP

Page 3: Сегментируем 600 млн. пользователей в режиме реального времени каждый день. HBase/Kafka на службе DMP / Артем

• Data Management Platform • 600 млн пользователей

Что такое Facetz DMP

5.5 млрд / сутки

Page 4: Сегментируем 600 млн. пользователей в режиме реального времени каждый день. HBase/Kafka на службе DMP / Артем

• Прямые установки пикселя

• Поток данных от партнеров

• Оффлайн выгрузки

DMP

Механизмы получения данных

Page 5: Сегментируем 600 млн. пользователей в режиме реального времени каждый день. HBase/Kafka на службе DMP / Артем

Ключевые показатели

• Горизонтальная масштабируемость

Page 6: Сегментируем 600 млн. пользователей в режиме реального времени каждый день. HBase/Kafka на службе DMP / Артем

Ключевые показатели

• Горизонтальная масштабируемость

• Оценка объема аудитории

Page 7: Сегментируем 600 млн. пользователей в режиме реального времени каждый день. HBase/Kafka на службе DMP / Артем

Ключевые показатели

• Горизонтальная масштабируемость

• Оценка объема аудитории

• Удобство мониторинга и разработки

• Хорошая скорость реакции на события

Page 8: Сегментируем 600 млн. пользователей в режиме реального времени каждый день. HBase/Kafka на службе DMP / Артем

Как было раньше

Page 9: Сегментируем 600 млн. пользователей в режиме реального времени каждый день. HBase/Kafka на службе DMP / Артем

Как было раньше

Loader

Page 10: Сегментируем 600 млн. пользователей в режиме реального времени каждый день. HBase/Kafka на службе DMP / Артем

Как мы храним данные в HBase

0674ae2-3b6f-…

ROW_KEY

a381112-2e6a-…

54947df8-0e9e-…

Page 11: Сегментируем 600 млн. пользователей в режиме реального времени каждый день. HBase/Kafka на службе DMP / Артем

Как мы храним данные в HBase

0674ae2-3b6f-…

ROW_KEY

a381112-2e6a-…

54947df8-0e9e-…

family_1

family_2

FAMILY

Page 12: Сегментируем 600 млн. пользователей в режиме реального времени каждый день. HBase/Kafka на службе DMP / Артем

Как мы храним данные в HBase

0674ae2-3b6f-…

ROW_KEY

a381112-2e6a-…

54947df8-0e9e-…

family_1

family_2

FAMILY COLUMN

IP

URL

SEARCH_QUERY

Page 13: Сегментируем 600 млн. пользователей в режиме реального времени каждый день. HBase/Kafka на службе DMP / Артем

Как мы храним данные в HBase

0674ae2-3b6f-…

ROW_KEY

a381112-2e6a-…

54947df8-0e9e-…

family_1

family_2

FAMILY COLUMN

IP

URL

SEARCH_QUERY

ts1

VERSION / VALUE

highload.ru

ts2 upyachka.ru

ts3 buzzls.com

ts1 конференция

Page 14: Сегментируем 600 млн. пользователей в режиме реального времени каждый день. HBase/Kafka на службе DMP / Артем

Как было раньше

Loader

Page 15: Сегментируем 600 млн. пользователей в режиме реального времени каждый день. HBase/Kafka на службе DMP / Артем

Как было раньше

Loader

Analytic Engine

statistics

Partners

Page 16: Сегментируем 600 млн. пользователей в режиме реального времени каждый день. HBase/Kafka на службе DMP / Артем

Ключевые показатели

+ Горизонтальная масштабируемость

+ Оценка объема аудитории

Page 17: Сегментируем 600 млн. пользователей в режиме реального времени каждый день. HBase/Kafka на службе DMP / Артем

Ключевые показатели

+ Горизонтальная масштабируемость

+ Оценка объема аудитории

— Удобство мониторинга и разработки

— Хорошая скорость реакции на события

Page 18: Сегментируем 600 млн. пользователей в режиме реального времени каждый день. HBase/Kafka на службе DMP / Артем

Ключевые показатели

+ Горизонтальная масштабируемость

+ Оценка объема аудитории

— Удобство мониторинга и разработки

— Хорошая скорость реакции на события

Page 19: Сегментируем 600 млн. пользователей в режиме реального времени каждый день. HBase/Kafka на службе DMP / Артем

Ключевые показатели

+ Горизонтальная масштабируемость

+ Оценка объема аудитории

— Удобство мониторинга и разработки

— Хорошая скорость реакции на события

Page 20: Сегментируем 600 млн. пользователей в режиме реального времени каждый день. HBase/Kafka на службе DMP / Артем

Чего мы хотим?

• Писать данные в HBase сразу

• Реагировать на события мгновенно

• Удобство мониторинга и разработки

Page 21: Сегментируем 600 млн. пользователей в режиме реального времени каждый день. HBase/Kafka на службе DMP / Артем

Loaderbulk_load

Начинаем сегментировать сразу

• Смена workload, random read

Page 22: Сегментируем 600 млн. пользователей в режиме реального времени каждый день. HBase/Kafka на службе DMP / Артем

Loaderbulk_load

Начинаем сегментировать сразу

• Смена workload, random read

• Макс. плотность хранения

Page 23: Сегментируем 600 млн. пользователей в режиме реального времени каждый день. HBase/Kafka на службе DMP / Артем

Loader

Segmentator

trigger

bulk_load

Начинаем сегментировать сразу

Get: 5 Gb/s

• Смена workload, random read

• Макс. плотность хранения

• Trigger на изменение данных

Page 24: Сегментируем 600 млн. пользователей в режиме реального времени каждый день. HBase/Kafka на службе DMP / Артем

Loader

Segmentator

trigger

bulk_load

Начинаем сегментировать сразу

Get: 5 Gb/s

• Смена workload, random read

• Макс. плотность хранения

• Trigger на изменение данных

• Увеличиваем нагрузку

Page 25: Сегментируем 600 млн. пользователей в режиме реального времени каждый день. HBase/Kafka на службе DMP / Артем

Начинаем сегментировать сразу

Loader

Segmentator

trigger

bulk_load

/ GOOGLEPartners

Get: 5 Gb/s

• Смена workload, random read

• Макс. плотность хранения

• Trigger на изменение данных

• Увеличиваем нагрузку

Page 26: Сегментируем 600 млн. пользователей в режиме реального времени каждый день. HBase/Kafka на службе DMP / Артем

Kafka — прекрасный инструмент• Topic — набор partition • Partition — файл(ы)

partition 1

partition 2

partition N

Page 27: Сегментируем 600 млн. пользователей в режиме реального времени каждый день. HBase/Kafka на службе DMP / Артем

• Topic — набор partition • Partition — файл(ы)

• Producers — пишут в конец • Consumer Group — независимы

partition 1

partition 2

partition N

Producers

Kafka — прекрасный инструмент

Page 28: Сегментируем 600 млн. пользователей в режиме реального времени каждый день. HBase/Kafka на службе DMP / Артем

• Topic — набор partition • Partition — файл(ы)

• Producers — пишут в конец • Consumer Group — независимы

partition 1

partition 2

partition N

ProducersGroup AA: 7

A: 5

Kafka — прекрасный инструмент

Page 29: Сегментируем 600 млн. пользователей в режиме реального времени каждый день. HBase/Kafka на службе DMP / Артем

• Topic — набор partition • Partition — файл(ы)

• Producers — пишут в конец • Consumer Group — независимы

partition 1

partition 2

partition N

ProducersGroup A

Group B

A: 7

A: 5 B: 3

B: 8

Kafka — прекрасный инструмент

Page 30: Сегментируем 600 млн. пользователей в режиме реального времени каждый день. HBase/Kafka на службе DMP / Артем

• Topic — набор partition • Partition — файл(ы)

• Producers — пишут в конец • Consumer Group — независимы

partition 1

partition 2

partition N

ProducersConsumer AA: 7

A: 5 B: 3

B: 8 Group A

Consumer BGroup B

Kafka — прекрасный инструмент

Page 31: Сегментируем 600 млн. пользователей в режиме реального времени каждый день. HBase/Kafka на службе DMP / Артем

Независимые потребители

Loader

Segmentator

trigger

bulk_load

/ GOOGLEPartners

• Сегментирование при изменении - done

• Независимое подключение новых потребителей - done

• Нужно писать в HBase сразу

Get: 5 Gb/s

Page 32: Сегментируем 600 млн. пользователей в режиме реального времени каждый день. HBase/Kafka на службе DMP / Артем

Пишем данные в реальном времени

Loader

• подготовка к random write

Page 33: Сегментируем 600 млн. пользователей в режиме реального времени каждый день. HBase/Kafka на службе DMP / Артем

Stream-loaderLoader

Пишем данные в реальном времени

• подготовка к random write

• шлем все логи в Kafka

Page 34: Сегментируем 600 млн. пользователей в режиме реального времени каждый день. HBase/Kafka на службе DMP / Артем

• подготовка к random write

• шлем все логи в Kafka

• не успеваем сегментироватьStream-loaderLoader

Пишем данные в реальном времени

2 часа

Page 35: Сегментируем 600 млн. пользователей в режиме реального времени каждый день. HBase/Kafka на службе DMP / Артем

Самомасштабирование

SegmentatorA

B

C

D

A A A A E A A AA

D D D D B D D D D Segmentator

partitionerUID

Page 36: Сегментируем 600 млн. пользователей в режиме реального времени каждый день. HBase/Kafka на службе DMP / Артем

Самомасштабирование

SegmentatorA

B

C

D

A A A A E A A AA

D D D D B D D D D Segmentator

event timestamp now

A: now

D: nowpartitioner

UID

Page 37: Сегментируем 600 млн. пользователей в режиме реального времени каждый день. HBase/Kafka на службе DMP / Артем

Пропускаем бесполезные события

segmentation

skipped

Page 38: Сегментируем 600 млн. пользователей в режиме реального времени каждый день. HBase/Kafka на службе DMP / Артем

Боты — зло

Page 39: Сегментируем 600 млн. пользователей в режиме реального времени каждый день. HBase/Kafka на службе DMP / Артем

• Весь pipeline перед глазами

• Поменяли - видим реакцию

• Легко провести постанализ

• Алертинг - не проблема

Мониторинг изменений

Page 40: Сегментируем 600 млн. пользователей в режиме реального времени каждый день. HBase/Kafka на службе DMP / Артем

• Утилизация ресурсов hadoop кластера

• Точные средства хранения статистики в потоке

• Различные оптимизации по CPU

Планы

Page 41: Сегментируем 600 млн. пользователей в режиме реального времени каждый день. HBase/Kafka на службе DMP / Артем

• Kafka хороша, но есть нюансы

• Реальные данные — важны

• Мониторинг, алертинг — вот это всё

Подводя итоги

Page 42: Сегментируем 600 млн. пользователей в режиме реального времени каждый день. HBase/Kafka на службе DMP / Артем

Вопросы? Ответы?

Маринов Артем

Лидер разработки Facetz DMP

Data-Centric Alliance