Lambda architecture для realtime-аналитики — риски и преимущества /...

23
Lambda architecture для RealTime-аналитики: риски и преимущества Николай Голов

Transcript of Lambda architecture для realtime-аналитики — риски и преимущества /...

Page 1: Lambda architecture для realtime-аналитики — риски и преимущества / Николай Голов (Avito)

Lambda architecture для RealTime-аналитики:риски и преимущества

Николай Голов

Page 2: Lambda architecture для realtime-аналитики — риски и преимущества / Николай Голов (Avito)
Page 3: Lambda architecture для realtime-аналитики — риски и преимущества / Николай Голов (Avito)

• Redshift• Vertica• MongoDB• Hadoop

• HDFS• MapReduce• Hive/Pig

Page 4: Lambda architecture для realtime-аналитики — риски и преимущества / Николай Голов (Avito)

Streaming VS Batching

• Batching – анализ полной совокупности собранных данных• например, SQL-запросы к собранной базе;

• например, MapReduce-запрос к данным Hadoop;

• Streaming – живая агрегация на потоке• RealTime-счетчики на потоке

queryresult

aggregation result

Page 5: Lambda architecture для realtime-аналитики — риски и преимущества / Николай Голов (Avito)

Преимущества и недостатки

• Streaming• + агрегация на лету, очень быстро;• + объем обрабатываемых данных не ограничен дисками, «boundless data»• - тяжело реализовать сложную логику;• - очень тяжело исправить ошибку задним числом.

• Batching• +можно сделать сложную логику; • +легко пересчитывать; • -существенные временные задержки;• -объем анализируемых данных ограничен местом на дисках.

Page 6: Lambda architecture для realtime-аналитики — риски и преимущества / Николай Голов (Avito)

Lambda Architecture

Page 7: Lambda architecture для realtime-аналитики — риски и преимущества / Николай Голов (Avito)

Задача – сервис счетчиков• Нужно считать подневное количество определенных событий:

• Просмотры объявления;• Просмотры телефона объявления;• Просмотры объявлений пользователя;• …. .

• Фильтрация – считать только людей, без ботов/парсеров;

• Изменчивость – в любой момент могут добавить новые счетчики, изменить фильтрацию;

• Скорость – в идеале реальное время. Секунды отставания;

• Стабильность – цифры за прошлое не должны сильно «прыгать».

Page 8: Lambda architecture для realtime-аналитики — риски и преимущества / Николай Голов (Avito)

Primitive approach

13:00 14:008:00 9:00 10:00 11:00 12:00 Processing

Time

Stream of web-site actions: clicks, views,searches

In-memory storage (Redis, Tarantool)

Streaming aggregation of item 0X views

Streaming aggregation of item 0X phone views

Web-servers

Page 9: Lambda architecture для realtime-аналитики — риски и преимущества / Николай Голов (Avito)

Problem 01 – new aggregates

13:00 14:008:00 9:00 10:00 11:00 12:00 Processing

Time

In-memory storage (Redis, Tarantool)

Streaming aggregation of item 0X views

Streaming aggregation of item 0X phone viewsStreaming aggregation of user 0Y profile views

Stream of web-site actions: clicks, views,searches

Web-servers

Page 10: Lambda architecture для realtime-аналитики — риски и преимущества / Николай Голов (Avito)

Problem 02 – filtering of non-human activity

13:00 14:008:00 9:00 10:00 11:00 12:00 Processing

Time

Stream of web-site actions: clicks, views, searches

In-memory storage (Redis, Tarantool)

Streaming aggregation of item 0X views

Streaming aggregation of item 0X phone viewsStreaming aggregation of user 0Y profile views

Web-servers

Page 11: Lambda architecture для realtime-аналитики — риски и преимущества / Николай Голов (Avito)

Problem 03 – errors in the past

13:00 14:008:00 9:00 10:00 11:00 12:00 Processing

Time

Stream of web-site actions: clicks, views, searches

In-memory storage (Redis, Tarantool)

Streaming aggregation of item 0X views

Streaming aggregation of item 0X phone viewsStreaming aggregation of user 0Y profile views

-wrong filter/wrong code/… some failWeb-servers

Wrong/empty aggregates

Page 12: Lambda architecture для realtime-аналитики — риски и преимущества / Николай Голов (Avito)

Lambda as a solution

13:00 14:008:00 9:00 10:00 11:00 12:00 Processing

Time

Streaming aggregation of item 0X views

Streaming aggregation of phone views

Web-serversBatchaggregation

Page 13: Lambda architecture для realtime-аналитики — риски и преимущества / Николай Голов (Avito)

Problem 01 – new aggregates

13:00 14:008:00 9:00 10:00 11:00 12:00 Processing

Time

Streaming aggregation of item 0X views

Streaming aggregation of phone views

Web-serversBatchaggregation

Streaming aggregation of user 0Y p. views

Page 14: Lambda architecture для realtime-аналитики — риски и преимущества / Николай Голов (Avito)

Problem 02 – filtering of non-human activity

13:00 14:008:00 9:00 10:00 11:00 12:00 Processing

Time

Streaming aggregation of item 0X views

Streaming aggregation of phone views

Web-serversBatchaggregation

Streaming aggregation of user 0Y p. views

with filtering

Page 15: Lambda architecture для realtime-аналитики — риски и преимущества / Николай Голов (Avito)

Problem 03 – errors in the past

13:00 14:008:00 9:00 10:00 11:00 12:00 Processing

Time

Streaming aggregation of item 0X views

Streaming aggregation of phone views

Web-serversBatchRe-aggregation

Streaming aggregation of user 0Y p. views

-wrong filter/wrong code/… some fail

Page 16: Lambda architecture для realtime-аналитики — риски и преимущества / Николай Голов (Avito)

Problem 04 – logic duplication

13:00 14:008:00 9:00 10:00 11:00 12:00 Processing

Time

Streaming aggregation of item 0X views

Streaming aggregation of phone views

Web-serversBatchaggregation

Page 17: Lambda architecture для realtime-аналитики — риски и преимущества / Николай Голов (Avito)

Lambda as a solution

13:00 14:008:00 9:00 10:00 11:00 12:00 Processing

Time

Streaming aggregation of item 0X views

Streaming aggregation of phone views

Web-serversBatchaggregation

Page 18: Lambda architecture для realtime-аналитики — риски и преимущества / Николай Голов (Avito)

Software/hardware of stat counter

• Speed layer:• Redis ………… (but can be … Tarantool)

• 64 nodes master <-> 64 nodes slave

• Up to 1.3 Tb of RAM for master (2.6 Tb total )

• Start from 2, up to 8 servers

• Batch layer:• Vertica …… (but can be … ClickHouse)

• Cluster of 14 servers, 512 GB Ram each.

• ~ 50 Tb of data

Page 19: Lambda architecture для realtime-аналитики — риски и преимущества / Николай Голов (Avito)

One more thing! –how to do filtering?

Filter non-human cookies/devices

In-memory storage of human cookies/devices(Redis, Tarantool)

Page 20: Lambda architecture для realtime-аналитики — риски и преимущества / Николай Голов (Avito)

Lambda again! (lambda 2)

13:00 14:008:00 9:00 10:00 11:00 12:00 Processing

Time

Streaming checks of cookies/devices

Web-serversBatchchecksof cookies/devices

In-memory storage of human cookies/devices(Redis, Tarantool)

Page 21: Lambda architecture для realtime-аналитики — риски и преимущества / Николай Голов (Avito)

Software/hardware of white cookies storage

• Speed layer:• Tarantool (hash index, much more efficient than Redis)

• 25Gb of RAM for master (50 Gb total )

• Batch layer:• Vertica …… (you need heavy joins, no ClickHouse)

• Cluster of 14 servers, 512 GB Ram each.

• ~ 50 Tb of data

500 mln. of white cookie/devices

Page 22: Lambda architecture для realtime-аналитики — риски и преимущества / Николай Голов (Avito)

Conclusions - недостатки lambda architecture• Logic duplication:

• -> логика, дублируемая в speed layer, должна быть предельно простой

• -> логику лучше расширять не как монолит, а согласно микросервисной архитектуре. Тогда можно «играть» базами.

• -> данные speed layer должны поддерживать полное перетирание из batch layer

• -> batch layer должен поддерживать сложную логику (в идеале полный SQL), чтобы компенсировать ограничения speed layer

Page 23: Lambda architecture для realtime-аналитики — риски и преимущества / Николай Голов (Avito)

Всем спасибо!

Thanks!

谢谢Tack!