SlideShare une entreprise Scribd logo
1  sur  25
Télécharger pour lire hors ligne
Александр	
  Демидко,	
  
So2ware	
  engineer	
  @	
  Metamarkets	
  
Аналитика	
  над	
  петабайтами	
  
в	
  реальном	
  времени	
  
Откуда	
  данные?	
   {!
“type”: “ad impression”,!
“country”: “Canada”,!
“age”: 30,!
“gender”: “M”,!
“adsize”: “320x100”,!
“device”: “iPhone 7”,!
“site”: “bestbooze.com”,!
!
…!
}!
{!
“type”: “ad click”,!
…!
}!
Запросы	
  
-­‐	
  Процент	
  платящих	
  из	
  Китая	
  за	
  декабрь,	
  пришедших	
  с	
  сайтов	
  
автомобильной	
  тематики?	
  
	
  
-­‐	
  Процент	
  кликов	
  в	
  рекламной	
  кампании	
  XXXXXXXX	
  от	
  пользователей	
  iPhone	
  
5	
  и	
  выше?	
  
	
  
	
  
-­‐	
  Какая	
  страница	
  чаще	
  всего	
  редактировалась	
  в	
  эту	
  неделю?	
  
	
  
-­‐	
  Сколько	
  гигабайт	
  на	
  вход	
  прокачал	
  10.5.160.201	
  за	
  вчера?	
  
	
  
-­‐	
  Число	
  уникальных	
  пользователей	
  за	
  последний	
  час?	
  
	
  
Big	
  Data	
  
Ad-­‐hoc	
  Queries	
  
Low	
  Latency	
  Querying	
  
	
  
$$$$	
  
Big	
  Data	
  
Ad-­‐hoc	
  
Queries	
  
Low	
  	
  
Latency	
  
Querying	
  
WAT?	
  
No	
  free	
  lunch	
  
Цифры,	
  цифры,	
  цифры	
  
Процессинг	
  
	
  Входящих	
  событий	
  поточно:	
  25Tb/день,	
  23Gb/мин	
  в	
  пике	
  
	
  Входящих	
  событий	
  батчем:	
  160Tb/день	
  
	
  1	
  событие	
  ≈	
  1Kb	
  
	
  
Хранилище	
  
	
  400Tb	
  сжатых	
  данных	
  (≈	
  50-­‐100Pb	
  сырых)	
  
	
  1000	
  запросов/мин	
  в	
  пике	
  
	
  90%	
  <1	
  сек,	
  95%	
  <2	
  сек,	
  99%	
  <10	
  сек	
  
	
  
Стоимость	
  
	
  на	
  три	
  порядка	
  меньше	
  за	
  событие,	
  
	
  чем	
  у	
  “обычной”	
  платформы	
  аналитики	
  
Где	
  храним	
  
	
  	
  	
  	
  Druid	
  (h†p://druid.io)	
  	
  
In-­‐house,	
  open-­‐source	
  (Apache	
  License,	
  Yay!)	
  
	
  
✔	
  Распределение	
  запросов	
  и	
  данных	
  
	
  
✔	
  Колоночное	
  хранение	
  
	
  
✘Ограничиваем	
  число	
  уникальных	
  рядков	
  (UUID)	
  
	
  
✘	
  После	
  записи	
  данные	
  не	
  меняются	
  
	
  
✘	
  Нет	
  джойнов	
  
	
  
Обработка	
  потоковых	
  данных	
  
API	
  
Logic	
  
	
  
map,	
  filter,	
  
union,	
  join,	
  
…	
  
?	
  Обновление	
  логики	
  на	
  новую	
  версию	
  
	
  
?	
  Как	
  запроцессить	
  данные	
  еще	
  раз	
  
	
  
Druid	
  
Обработка	
  потоковых	
  данных	
  II	
  
API	
   Logic	
  
Apache	
  Ka‘a	
  
-­‐	
  Топики	
  (показы,	
  клики,	
  конверсии)	
  
-­‐	
  N	
  разделов	
  на	
  топик	
  
-­‐	
  Сообщения	
  в	
  разделе	
  упорядочены	
  
-­‐	
  Клиент	
  управляет	
  чтением	
  
	
  
-­‐	
  Храним	
  неделю	
  данных	
  
-­‐	
  Реплицируем	
  2x	
  
Ka‘a	
   Druid	
  
Pipeline	
  logic	
  
map	
  
Ka‘a	
  
read	
  
filter	
  
filter	
  
Ka‘a	
  
read	
  
join	
  
map	
  
Druid	
  
save	
  
Druid	
  
save	
  
filter	
  
Guaranteed	
  delivery	
  
map	
  
Ka‘a	
  
read	
  
filter	
  
filter	
  
Ka‘a	
  
read	
  
join	
  
map	
  
Druid	
  
save	
  
Druid	
  
save	
  
filter	
  
Пофейлились:	
  
-­‐	
  Забить:	
  at	
  most	
  once	
  
-­‐	
  Повторить:	
  at	
  least	
  once	
  
-­‐	
  ???:	
  Exactly	
  once	
  	
  
	
  
Обработка	
  потоковых	
  данных	
  III	
  
API	
  
Ka‘a	
   Druid	
  
Apache	
  
Storm	
  
join/group	
  by/cogroup	
  
Accumulator	
  
Flusher	
  
Redis	
  
10:16	
  |	
  keyE	
  =>	
  event7,	
  event8,	
  …	
  
10:16	
  |	
  keyD	
  =>	
  event6,	
  …	
  
10:15	
  |	
  keyC	
  =>	
  event5,	
  …	
  
…	
  
10:01	
  |	
  keyB	
  =>	
  event1,	
  event2	
  
10:00	
  |	
  keyA	
  =>	
  event3,	
  …	
  
15	
  мин	
  
окно	
  
Redis	
  
keyA,	
  keyC	
   keyB,keyD,keyE	
  
Это	
  все?	
  
API	
  
?	
  Опоздавшие	
  на	
  join	
  события	
  
?	
  Отсутствие	
  exactly	
  once	
  
?	
  Хотим	
  запроцессить	
  данные	
  старше	
  7ми	
  дней	
  (буфер	
  в	
  Ka‘a)	
  
	
  
Ka‘a	
   Druid	
  
Storm	
  
Redis	
  
λ-­‐архитектура	
  
API	
  
Ka‘a	
   Druid	
  
Storm	
  
Redis	
  
HDFS	
  
–	
  2x	
  hardware	
  
–	
  2x	
  code	
  
Storm	
  
-­‐	
  Закрытый	
  код	
  
-­‐	
  Открытые	
  аналоги:	
  	
  
Twi†er	
  Summingbird,	
  Spark/Spark	
  Streaming	
  
Теперь	
  все?	
  
Не-­‐а	
  
	
  
Сложности	
  Storm:	
  
	
  -­‐	
  Сильная	
  связанность	
  
	
  	
  
	
  -­‐	
  Чувствителен	
  к	
  потерям	
  пакетов	
  	
  
	
  	
  
	
  -­‐	
  Неочевидно,	
  где	
  узкое	
  место	
  в	
  производительности	
  
	
  и	
  какой	
  уровень	
  параллелизма	
  выставлять	
  
	
  
	
  	
  
Слишком	
  много	
  тонкой	
  настройки	
  L	
  
	
  
Apache	
  Samza	
  
Ka‘a	
  	
  
-­‐	
  Пишем	
  промежуточные	
  результаты	
  на	
  диск	
  в	
  Ka‘у	
  
	
  
-­‐	
  Узкое	
  место	
  там,	
  где	
  отстаем	
  по	
  чтению	
  из	
  Ka‘и	
  
	
  
-­‐	
  Join/group	
  by	
  без	
  Redis	
  
API	
  
Ka‘a	
  
Druid	
  
Ka‘a	
  Junior	
  
HDFS	
  
Метрики	
  
Репортим:	
  
	
  байт/событий	
  обработано	
  
	
  отставание	
  от	
  Ka‘и	
  
	
  использовано	
  памяти	
  в	
  Druidе	
  
	
  …	
  
	
  
С	
  параметрами:	
  
	
  версия	
  
	
  пайплайн	
  
	
  хост	
  
	
  … 	
  	
  
λ	
   ?	
  
Спасибо!	
  
P.S.	
  Изоляция	
  и	
  автоскейлинг	
  не	
  вошли:	
  
для	
  интересующихся	
  можно	
  поймать	
  меня	
  после	
  доклада	
  

Contenu connexe

Tendances

ClickHouse как решение для бизнес аналитики. Дмитрий Кузьмин
ClickHouse как решение для бизнес аналитики. Дмитрий КузьминClickHouse как решение для бизнес аналитики. Дмитрий Кузьмин
ClickHouse как решение для бизнес аналитики. Дмитрий КузьминHOWWEDOIT
 
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...Ontico
 
Новые нереляционные системы хранения данных
Новые нереляционные системы хранения данныхНовые нереляционные системы хранения данных
Новые нереляционные системы хранения данныхVsevolod Dyomkin
 
Где сегодня использовать ElasticSearch
Где сегодня использовать ElasticSearchГде сегодня использовать ElasticSearch
Где сегодня использовать ElasticSearchИлья Середа
 
Построение системы аналитики
Построение системы аналитикиПостроение системы аналитики
Построение системы аналитикиИлья Середа
 
10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных...
10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных...10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных...
10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных...HappyDev
 
Александр Сербул —1С-Битрикс — ICBDA 2015
Александр Сербул —1С-Битрикс — ICBDA 2015Александр Сербул —1С-Битрикс — ICBDA 2015
Александр Сербул —1С-Битрикс — ICBDA 2015rusbase
 
Lambda architecture для realtime-аналитики — риски и преимущества / Николай Г...
Lambda architecture для realtime-аналитики — риски и преимущества / Николай Г...Lambda architecture для realtime-аналитики — риски и преимущества / Николай Г...
Lambda architecture для realtime-аналитики — риски и преимущества / Николай Г...Ontico
 
Highload2009 Top100 V3
Highload2009 Top100 V3Highload2009 Top100 V3
Highload2009 Top100 V3HighLoad2009
 
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...Ontico
 
Александр Киров — Acronis — ICBDA 2015
Александр Киров — Acronis — ICBDA 2015Александр Киров — Acronis — ICBDA 2015
Александр Киров — Acronis — ICBDA 2015rusbase
 
Frontera обход испанского интернета
Frontera обход испанского интернетаFrontera обход испанского интернета
Frontera обход испанского интернетаAlexander Sibiryakov
 
Арсен Мукучян, AdRiver
Арсен Мукучян, AdRiverАрсен Мукучян, AdRiver
Арсен Мукучян, AdRiverOntico
 
Как снизить нагрузку на высокопосещаемый проект
Как снизить нагрузку на высокопосещаемый проектКак снизить нагрузку на высокопосещаемый проект
Как снизить нагрузку на высокопосещаемый проектsportgid
 
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...Ontico
 
MongoDB первые впечатления
MongoDB первые впечатленияMongoDB первые впечатления
MongoDB первые впечатленияfudz1k
 

Tendances (17)

ClickHouse как решение для бизнес аналитики. Дмитрий Кузьмин
ClickHouse как решение для бизнес аналитики. Дмитрий КузьминClickHouse как решение для бизнес аналитики. Дмитрий Кузьмин
ClickHouse как решение для бизнес аналитики. Дмитрий Кузьмин
 
Анализируем данные с Clickhouse
Анализируем данные с  ClickhouseАнализируем данные с  Clickhouse
Анализируем данные с Clickhouse
 
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...
ClickHouse: очень быстро и очень удобно / Виктор Тарнавский, Алексей Миловидо...
 
Новые нереляционные системы хранения данных
Новые нереляционные системы хранения данныхНовые нереляционные системы хранения данных
Новые нереляционные системы хранения данных
 
Где сегодня использовать ElasticSearch
Где сегодня использовать ElasticSearchГде сегодня использовать ElasticSearch
Где сегодня использовать ElasticSearch
 
Построение системы аналитики
Построение системы аналитикиПостроение системы аналитики
Построение системы аналитики
 
10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных...
10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных...10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных...
10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных...
 
Александр Сербул —1С-Битрикс — ICBDA 2015
Александр Сербул —1С-Битрикс — ICBDA 2015Александр Сербул —1С-Битрикс — ICBDA 2015
Александр Сербул —1С-Битрикс — ICBDA 2015
 
Lambda architecture для realtime-аналитики — риски и преимущества / Николай Г...
Lambda architecture для realtime-аналитики — риски и преимущества / Николай Г...Lambda architecture для realtime-аналитики — риски и преимущества / Николай Г...
Lambda architecture для realtime-аналитики — риски и преимущества / Николай Г...
 
Highload2009 Top100 V3
Highload2009 Top100 V3Highload2009 Top100 V3
Highload2009 Top100 V3
 
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
 
Александр Киров — Acronis — ICBDA 2015
Александр Киров — Acronis — ICBDA 2015Александр Киров — Acronis — ICBDA 2015
Александр Киров — Acronis — ICBDA 2015
 
Frontera обход испанского интернета
Frontera обход испанского интернетаFrontera обход испанского интернета
Frontera обход испанского интернета
 
Арсен Мукучян, AdRiver
Арсен Мукучян, AdRiverАрсен Мукучян, AdRiver
Арсен Мукучян, AdRiver
 
Как снизить нагрузку на высокопосещаемый проект
Как снизить нагрузку на высокопосещаемый проектКак снизить нагрузку на высокопосещаемый проект
Как снизить нагрузку на высокопосещаемый проект
 
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...
Брокер сообщений Kafka в условиях повышенной нагрузки / Артём Выборнов (Rambl...
 
MongoDB первые впечатления
MongoDB первые впечатленияMongoDB первые впечатления
MongoDB первые впечатления
 

Similaire à Аналитика над петабайтами в реальном времени

Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центрМониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центрsportgid
 
AVITO. Решаем проблемы по мере их поступления. Стачка 2013
AVITO. Решаем проблемы по мере их поступления. Стачка 2013AVITO. Решаем проблемы по мере их поступления. Стачка 2013
AVITO. Решаем проблемы по мере их поступления. Стачка 2013Roman Pavlushko
 
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)Ontico
 
Особенности работы backend для мобильных приложений или Python Django UWSGI в...
Особенности работы backend для мобильных приложений или Python Django UWSGI в...Особенности работы backend для мобильных приложений или Python Django UWSGI в...
Особенности работы backend для мобильных приложений или Python Django UWSGI в...Mail.ru Group
 
CodeFest 2014. Круглов И. — События на каждом углу. Путешествие в мир системн...
CodeFest 2014. Круглов И. — События на каждом углу. Путешествие в мир системн...CodeFest 2014. Круглов И. — События на каждом углу. Путешествие в мир системн...
CodeFest 2014. Круглов И. — События на каждом углу. Путешествие в мир системн...CodeFest
 
Потоковая обработка событий клиентов и их отображение на интерактивной карте
Потоковая обработка событий клиентов и их отображение на интерактивной картеПотоковая обработка событий клиентов и их отображение на интерактивной карте
Потоковая обработка событий клиентов и их отображение на интерактивной картеVoximplant
 
DNS и искусственный интеллект на страже кибербезопасности
DNS и искусственный интеллект на страже кибербезопасностиDNS и искусственный интеллект на страже кибербезопасности
DNS и искусственный интеллект на страже кибербезопасностиAleksey Lukatskiy
 
CleverDATA_Spark_audience_segmentation_in_online_ad
CleverDATA_Spark_audience_segmentation_in_online_adCleverDATA_Spark_audience_segmentation_in_online_ad
CleverDATA_Spark_audience_segmentation_in_online_adCleverDATA
 
Tech Talks @NSU: Что такое Highload? Секреты высокой нагрузки.
Tech Talks @NSU: Что такое Highload? Секреты высокой нагрузки.Tech Talks @NSU: Что такое Highload? Секреты высокой нагрузки.
Tech Talks @NSU: Что такое Highload? Секреты высокой нагрузки.Tech Talks @NSU
 
Что такое Highload? Секреты высокой нагрузки
Что такое Highload? Секреты высокой нагрузкиЧто такое Highload? Секреты высокой нагрузки
Что такое Highload? Секреты высокой нагрузкиTech Talks @NSU
 
Coub - как мы строили аналитическую платформу на несколько миллиардов событий...
Coub - как мы строили аналитическую платформу на несколько миллиардов событий...Coub - как мы строили аналитическую платформу на несколько миллиардов событий...
Coub - как мы строили аналитическую платформу на несколько миллиардов событий...Ontico
 
Электронная коммерция: от Hadoop к Spark Scala
Электронная коммерция: от Hadoop к Spark ScalaЭлектронная коммерция: от Hadoop к Spark Scala
Электронная коммерция: от Hadoop к Spark ScalaRoman Zykov
 
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...Ontico
 
Cocaine: погружение в облака — Евгений Сафронов
Cocaine: погружение в облака — Евгений СафроновCocaine: погружение в облака — Евгений Сафронов
Cocaine: погружение в облака — Евгений СафроновYandex
 
Как показывать 200 миллионов баннеров ежедневно и быть готовым показать милли...
Как показывать 200 миллионов баннеров ежедневно и быть готовым показать милли...Как показывать 200 миллионов баннеров ежедневно и быть готовым показать милли...
Как показывать 200 миллионов баннеров ежедневно и быть готовым показать милли...Evgeny Kokovikhin
 
WapStart: Как показывать 200 миллионов баннеров ежедневно и быть готовым пока...
WapStart: Как показывать 200 миллионов баннеров ежедневно и быть готовым пока...WapStart: Как показывать 200 миллионов баннеров ежедневно и быть готовым пока...
WapStart: Как показывать 200 миллионов баннеров ежедневно и быть готовым пока...Procontent.Ru Magazine
 
New SpyLOG architechture (Highload 2008)
New SpyLOG architechture (Highload 2008)New SpyLOG architechture (Highload 2008)
New SpyLOG architechture (Highload 2008)Sergey Skvortsov
 

Similaire à Аналитика над петабайтами в реальном времени (20)

Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центрМониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
 
AVITO. Решаем проблемы по мере их поступления. Стачка 2013
AVITO. Решаем проблемы по мере их поступления. Стачка 2013AVITO. Решаем проблемы по мере их поступления. Стачка 2013
AVITO. Решаем проблемы по мере их поступления. Стачка 2013
 
Mmx cvk-2015
Mmx cvk-2015Mmx cvk-2015
Mmx cvk-2015
 
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
 
Особенности работы backend для мобильных приложений или Python Django UWSGI в...
Особенности работы backend для мобильных приложений или Python Django UWSGI в...Особенности работы backend для мобильных приложений или Python Django UWSGI в...
Особенности работы backend для мобильных приложений или Python Django UWSGI в...
 
CodeFest 2014. Круглов И. — События на каждом углу. Путешествие в мир системн...
CodeFest 2014. Круглов И. — События на каждом углу. Путешествие в мир системн...CodeFest 2014. Круглов И. — События на каждом углу. Путешествие в мир системн...
CodeFest 2014. Круглов И. — События на каждом углу. Путешествие в мир системн...
 
Потоковая обработка событий клиентов и их отображение на интерактивной карте
Потоковая обработка событий клиентов и их отображение на интерактивной картеПотоковая обработка событий клиентов и их отображение на интерактивной карте
Потоковая обработка событий клиентов и их отображение на интерактивной карте
 
DNS и искусственный интеллект на страже кибербезопасности
DNS и искусственный интеллект на страже кибербезопасностиDNS и искусственный интеллект на страже кибербезопасности
DNS и искусственный интеллект на страже кибербезопасности
 
CleverDATA_Spark_audience_segmentation_in_online_ad
CleverDATA_Spark_audience_segmentation_in_online_adCleverDATA_Spark_audience_segmentation_in_online_ad
CleverDATA_Spark_audience_segmentation_in_online_ad
 
Druid - Interactive Analytics At Scale
Druid - Interactive Analytics At ScaleDruid - Interactive Analytics At Scale
Druid - Interactive Analytics At Scale
 
RIA Shamans
RIA ShamansRIA Shamans
RIA Shamans
 
Tech Talks @NSU: Что такое Highload? Секреты высокой нагрузки.
Tech Talks @NSU: Что такое Highload? Секреты высокой нагрузки.Tech Talks @NSU: Что такое Highload? Секреты высокой нагрузки.
Tech Talks @NSU: Что такое Highload? Секреты высокой нагрузки.
 
Что такое Highload? Секреты высокой нагрузки
Что такое Highload? Секреты высокой нагрузкиЧто такое Highload? Секреты высокой нагрузки
Что такое Highload? Секреты высокой нагрузки
 
Coub - как мы строили аналитическую платформу на несколько миллиардов событий...
Coub - как мы строили аналитическую платформу на несколько миллиардов событий...Coub - как мы строили аналитическую платформу на несколько миллиардов событий...
Coub - как мы строили аналитическую платформу на несколько миллиардов событий...
 
Электронная коммерция: от Hadoop к Spark Scala
Электронная коммерция: от Hadoop к Spark ScalaЭлектронная коммерция: от Hadoop к Spark Scala
Электронная коммерция: от Hadoop к Spark Scala
 
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
Гетерогенные сервисы для highload-проектов на примере Imhonet.ru и 4talk.im, ...
 
Cocaine: погружение в облака — Евгений Сафронов
Cocaine: погружение в облака — Евгений СафроновCocaine: погружение в облака — Евгений Сафронов
Cocaine: погружение в облака — Евгений Сафронов
 
Как показывать 200 миллионов баннеров ежедневно и быть готовым показать милли...
Как показывать 200 миллионов баннеров ежедневно и быть готовым показать милли...Как показывать 200 миллионов баннеров ежедневно и быть готовым показать милли...
Как показывать 200 миллионов баннеров ежедневно и быть готовым показать милли...
 
WapStart: Как показывать 200 миллионов баннеров ежедневно и быть готовым пока...
WapStart: Как показывать 200 миллионов баннеров ежедневно и быть готовым пока...WapStart: Как показывать 200 миллионов баннеров ежедневно и быть готовым пока...
WapStart: Как показывать 200 миллионов баннеров ежедневно и быть готовым пока...
 
New SpyLOG architechture (Highload 2008)
New SpyLOG architechture (Highload 2008)New SpyLOG architechture (Highload 2008)
New SpyLOG architechture (Highload 2008)
 

Plus de CodeFest

Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander GraebeCodeFest
 
Никита Прокопов
Никита ПрокоповНикита Прокопов
Никита ПрокоповCodeFest
 
Денис Баталов
Денис БаталовДенис Баталов
Денис БаталовCodeFest
 
Елена Гальцина
Елена ГальцинаЕлена Гальцина
Елена ГальцинаCodeFest
 
Александр Калашников
Александр КалашниковАлександр Калашников
Александр КалашниковCodeFest
 
Ирина Иванова
Ирина ИвановаИрина Иванова
Ирина ИвановаCodeFest
 
Marko Berković
Marko BerkovićMarko Berković
Marko BerkovićCodeFest
 
Денис Кортунов
Денис КортуновДенис Кортунов
Денис КортуновCodeFest
 
Александр Зимин
Александр ЗиминАлександр Зимин
Александр ЗиминCodeFest
 
Сергей Крапивенский
Сергей КрапивенскийСергей Крапивенский
Сергей КрапивенскийCodeFest
 
Сергей Игнатов
Сергей ИгнатовСергей Игнатов
Сергей ИгнатовCodeFest
 
Николай Крапивный
Николай КрапивныйНиколай Крапивный
Николай КрапивныйCodeFest
 
Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander GraebeCodeFest
 
Вадим Смирнов
Вадим СмирновВадим Смирнов
Вадим СмирновCodeFest
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин ОсиповCodeFest
 
Raffaele Rialdi
Raffaele RialdiRaffaele Rialdi
Raffaele RialdiCodeFest
 
Максим Пугачев
Максим ПугачевМаксим Пугачев
Максим ПугачевCodeFest
 
Rene Groeschke
Rene GroeschkeRene Groeschke
Rene GroeschkeCodeFest
 
Иван Бондаренко
Иван БондаренкоИван Бондаренко
Иван БондаренкоCodeFest
 
Mete Atamel
Mete AtamelMete Atamel
Mete AtamelCodeFest
 

Plus de CodeFest (20)

Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander Graebe
 
Никита Прокопов
Никита ПрокоповНикита Прокопов
Никита Прокопов
 
Денис Баталов
Денис БаталовДенис Баталов
Денис Баталов
 
Елена Гальцина
Елена ГальцинаЕлена Гальцина
Елена Гальцина
 
Александр Калашников
Александр КалашниковАлександр Калашников
Александр Калашников
 
Ирина Иванова
Ирина ИвановаИрина Иванова
Ирина Иванова
 
Marko Berković
Marko BerkovićMarko Berković
Marko Berković
 
Денис Кортунов
Денис КортуновДенис Кортунов
Денис Кортунов
 
Александр Зимин
Александр ЗиминАлександр Зимин
Александр Зимин
 
Сергей Крапивенский
Сергей КрапивенскийСергей Крапивенский
Сергей Крапивенский
 
Сергей Игнатов
Сергей ИгнатовСергей Игнатов
Сергей Игнатов
 
Николай Крапивный
Николай КрапивныйНиколай Крапивный
Николай Крапивный
 
Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander Graebe
 
Вадим Смирнов
Вадим СмирновВадим Смирнов
Вадим Смирнов
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин Осипов
 
Raffaele Rialdi
Raffaele RialdiRaffaele Rialdi
Raffaele Rialdi
 
Максим Пугачев
Максим ПугачевМаксим Пугачев
Максим Пугачев
 
Rene Groeschke
Rene GroeschkeRene Groeschke
Rene Groeschke
 
Иван Бондаренко
Иван БондаренкоИван Бондаренко
Иван Бондаренко
 
Mete Atamel
Mete AtamelMete Atamel
Mete Atamel
 

Аналитика над петабайтами в реальном времени

  • 1. Александр  Демидко,   So2ware  engineer  @  Metamarkets   Аналитика  над  петабайтами   в  реальном  времени  
  • 2. Откуда  данные?   {! “type”: “ad impression”,! “country”: “Canada”,! “age”: 30,! “gender”: “M”,! “adsize”: “320x100”,! “device”: “iPhone 7”,! “site”: “bestbooze.com”,! ! …! }! {! “type”: “ad click”,! …! }!
  • 3.
  • 4. Запросы   -­‐  Процент  платящих  из  Китая  за  декабрь,  пришедших  с  сайтов   автомобильной  тематики?     -­‐  Процент  кликов  в  рекламной  кампании  XXXXXXXX  от  пользователей  iPhone   5  и  выше?       -­‐  Какая  страница  чаще  всего  редактировалась  в  эту  неделю?     -­‐  Сколько  гигабайт  на  вход  прокачал  10.5.160.201  за  вчера?     -­‐  Число  уникальных  пользователей  за  последний  час?    
  • 5. Big  Data   Ad-­‐hoc  Queries   Low  Latency  Querying     $$$$  
  • 6. Big  Data   Ad-­‐hoc   Queries   Low     Latency   Querying   WAT?   No  free  lunch  
  • 7. Цифры,  цифры,  цифры   Процессинг    Входящих  событий  поточно:  25Tb/день,  23Gb/мин  в  пике    Входящих  событий  батчем:  160Tb/день    1  событие  ≈  1Kb     Хранилище    400Tb  сжатых  данных  (≈  50-­‐100Pb  сырых)    1000  запросов/мин  в  пике    90%  <1  сек,  95%  <2  сек,  99%  <10  сек     Стоимость    на  три  порядка  меньше  за  событие,    чем  у  “обычной”  платформы  аналитики  
  • 8. Где  храним          Druid  (h†p://druid.io)     In-­‐house,  open-­‐source  (Apache  License,  Yay!)     ✔  Распределение  запросов  и  данных     ✔  Колоночное  хранение     ✘Ограничиваем  число  уникальных  рядков  (UUID)     ✘  После  записи  данные  не  меняются     ✘  Нет  джойнов    
  • 9. Обработка  потоковых  данных   API   Logic     map,  filter,   union,  join,   …   ?  Обновление  логики  на  новую  версию     ?  Как  запроцессить  данные  еще  раз     Druid  
  • 10. Обработка  потоковых  данных  II   API   Logic   Apache  Ka‘a   -­‐  Топики  (показы,  клики,  конверсии)   -­‐  N  разделов  на  топик   -­‐  Сообщения  в  разделе  упорядочены   -­‐  Клиент  управляет  чтением     -­‐  Храним  неделю  данных   -­‐  Реплицируем  2x   Ka‘a   Druid  
  • 11. Pipeline  logic   map   Ka‘a   read   filter   filter   Ka‘a   read   join   map   Druid   save   Druid   save   filter  
  • 12. Guaranteed  delivery   map   Ka‘a   read   filter   filter   Ka‘a   read   join   map   Druid   save   Druid   save   filter   Пофейлились:   -­‐  Забить:  at  most  once   -­‐  Повторить:  at  least  once   -­‐  ???:  Exactly  once      
  • 13. Обработка  потоковых  данных  III   API   Ka‘a   Druid   Apache   Storm  
  • 14. join/group  by/cogroup   Accumulator   Flusher   Redis   10:16  |  keyE  =>  event7,  event8,  …   10:16  |  keyD  =>  event6,  …   10:15  |  keyC  =>  event5,  …   …   10:01  |  keyB  =>  event1,  event2   10:00  |  keyA  =>  event3,  …   15  мин   окно  
  • 15. Redis   keyA,  keyC   keyB,keyD,keyE  
  • 16. Это  все?   API   ?  Опоздавшие  на  join  события   ?  Отсутствие  exactly  once   ?  Хотим  запроцессить  данные  старше  7ми  дней  (буфер  в  Ka‘a)     Ka‘a   Druid   Storm   Redis  
  • 17. λ-­‐архитектура   API   Ka‘a   Druid   Storm   Redis   HDFS   –  2x  hardware   –  2x  code  
  • 18. Storm   -­‐  Закрытый  код   -­‐  Открытые  аналоги:     Twi†er  Summingbird,  Spark/Spark  Streaming  
  • 19. Теперь  все?   Не-­‐а     Сложности  Storm:    -­‐  Сильная  связанность        -­‐  Чувствителен  к  потерям  пакетов          -­‐  Неочевидно,  где  узкое  место  в  производительности    и  какой  уровень  параллелизма  выставлять         Слишком  много  тонкой  настройки  L    
  • 20. Apache  Samza   Ka‘a     -­‐  Пишем  промежуточные  результаты  на  диск  в  Ka‘у     -­‐  Узкое  место  там,  где  отстаем  по  чтению  из  Ka‘и     -­‐  Join/group  by  без  Redis  
  • 21. API   Ka‘a   Druid   Ka‘a  Junior   HDFS  
  • 22. Метрики   Репортим:    байт/событий  обработано    отставание  от  Ka‘и    использовано  памяти  в  Druidе    …     С  параметрами:    версия    пайплайн    хост    …    
  • 23.
  • 24. λ   ?  
  • 25. Спасибо!   P.S.  Изоляция  и  автоскейлинг  не  вошли:   для  интересующихся  можно  поймать  меня  после  доклада