От больших к очень
большим данным - зачем
нужна нормализация в
Big Data?
Николай Голов
Avito
Безусловный лидер в РФ
Moscow
St. Petersburg
Novosibirsk
N. Novgorod
Kazan
Samara
Rostov
Volgograd
Voronezh
Ufa
Chelyabinsk
Omsk
Krasnoyarsk
Vladivostok
Yakutsk
Irkutsk
Khabarovsk
1.6x2
от всего рынка
объявления РФ
Почти 50%
Просмотров с
мобильных устройств
40%
Подержанных машин
РФ в 2014 были
проданы на Авито
250K – 300K
Новых авторов в день.
7.9млрд.
Просмотров в Декабре
2014, 27млн уникальных
посетителей
9,500+
Платных магазинов
24.5млн.
Активных объявлений
в конце 2014
Эволюция Avito
0
400
800
1,200
1,600
2,000
2,400
Jan-09 Jul-09 Jan-10 Jul-10 Jan-11 Jul-11 Jan-12 Jul-12 Jan-13 Jul-13 Jan-14 Jul-14 Jan-15
Q1 2010
Фокус на Москве и
СПБ
Сентябрь 2010
13 новых
городов
Август 2011
28 городов
Q2 2013
Поглощение Slando
и Olx зафиксировало
лидирующую
позицию Авито
Январь
2012
Националь
ное
покрытие
Откуда у Avito
большие данные?
Первый источник
данных - изменения
01.01.20
15• 1000$
• MacBook
01.02.2015
• 100$
• MacBook, XXX
videos, cal
+1****
02.02.2015
• 500$
• MacBook Air
11
Web server 01
Web server 02
Web server 03
Log 01
Log 02
Log 03
search
view
help
pay
comment
Второй источник –
clickstream
Результаты 2013
 Август 2013: ELT инфраструктура для Vertica.
 Сентябрь 2013: Click Stream из MongoDB
 Октябрь 2013: Данные BackOffice из PostgreSQL
9 Backoffice DB Clickstream
• ~200 млн. Соб/день
• Каждые 15 минут
• Все изменения
• Раз в час
ClickStream tables
~ 30 tables
~ 50 bln. of records
Tables of Backoffice
~ 300 tables
~ up to 1 bln of records
Daily sync
Live connection
Analysts
Результаты 2013
4 servers, 11Tb of raw data
Откуда у Avito
еще больше больших
данных?
Automatic filtering of
illicit content
data samples
for competition
Users
Adverts
Payment
Clicks
Searches
Device
Cookie
Хранилище Avito -
эволюция
Illicit content detection
Fraud estimation
Основные принципы
аналитики Авито
 Все данные хранятся согласованными в HP Vertica
 Команды Data Scientists (по 1-2 человека) занимаются
прогнозированием, классификацией, сегментацией и т.п.
 Data scientists знают SQL и самостоятельно работают
в хранилище
 Большинство видов анализа занимает от минут до 2
часов
 Если анализ требует больше 2 часов – зовут Platform
Team
 Platform team занимается добавлением данных,
исправлением ошибок и созданием витрин.
Рост вовлеченности пользователей
Самостоятельная работа с
данными
Назначение цен на услуги
Прогнозирование трендов
Jan-14 Dec-14 Nov-15
Operating Metric
Forecast
Качество контента
Система искусственного
интеллекта для на 80%
автоматизированного:
 Поиска мошеннических действий
 Поиска нелегального контента
 Поиска дубликатов
 Построения ценовых моделей
 Обнаружения ботов
Оптимизация рекламы
• Отслеживание интересов
пользователей в реальном
времени для оптимального
подбора рекламных
предложений.
Back office
Click stream
BI
Team
Antifraud
MDM
CRM
16 Backoffice DB Clickstream
• ~200 млн. Соб/день
• Каждые 15 минут
• Все изменения
• Каждый час
ClickStream tables
~ 30 tables
~ 50 bln. of records
Tables of Backoffice
~ 300 tables
~ up to 1 bln of records
Daily sync
Live connection
Analysts
Результаты
2013
4 servers, 11Tb of raw data
17 Backoffice DB Clickstream
• ~600 млн. Соб/день
• Каждые 15 минут
• Все изменения
• Каждый час
ClickStream tables
~ 70 tables
~ 150 bln. of records
Tables of Backoffice
~ 600 tables
~ up to 2 bln of records
Daily sync
Live connection
Analysts
Сейчас
12 servers, 51Tb of raw data
Эволюция кластера Авито
4
10
15
0
2
4
6
8
10
12
14
16
Размер
кластера
(сервера)
2013 2014 2015
11
26
51
0
10
20
30
40
50
60
Размер
кластера
(TB)
2013 2014 2015
300
560
740
0
100
200
300
400
500
600
700
800
Размер
ClickStream
(млн.
Соб/день)
2013 2014 2015
3
14
23
0
5
10
15
20
25
Количество
интегрирован
ных
систем
2013 2014 2015
Почему мы можем там
быстро расти?
ANCHOR (HUB)
• Anchor – entity, сущность, существительное
• Пример – товар, клиент, магазин
• Хранит суррогатный ключ (в нашем случае – еще и
бизнес ключ)
• Дополнительно хранит систему-источник и дату загрузки
• Не меняется
H_User:
-user_id
-load_date
-source_sys
H_Advert:
-advert_id
-load_date
-source_sys
H_Referer:
-shop_id
-load_date
-source_sys
TIE (LINK)
• Tie – связка, глагол
• Пример – продажа товара клиенту
• Хранит сурр. ключи связываемых сущностей
• Дополнительно хранит систему-источник и дату
• Может связывать ТОЛЬКО Anchor-ы
• SCD 2, actual_date
H_Advert:
-adverts_id
-load_date
-source_sys
H_User:
-user_id
-load_date
-source_sys
T_Controls:
-(fk) user_id
-(fk) advert_id
-actual_date
-load_date
-source_sys
23
• ATTRIBUTE – свойство, прилагательное
• Пример – свойство клиента
• Хранит один атрибут и ключ только анкора
• Анкор может иметь произвольное количество атрибутов
• SCD 2 , actual_date
ATTRIBUTE (SATTELITE)
S_User_Name:
-user_id
-name
-actual_date
H_User:
-customer_id
-load_date
-source_sys
S_User_INN:
-user_id
-inn
-actual_date S_User_Gender:
-user_id
-gender
-actual_date
Users
Adverts
Payment
Back office
Clicks
Searches
Device
Cookie
Хранилище Avito - начало
Users
Adverts
Payment
Clicks
Searches
Device
Cookie
Преимущество 1 –
автоматизированное
расширение Phone
Bot Net
Geo point
Payment
system
Is Human
Преимущество 2 –
единообразная
сегментация
Преимущество 3.1:
экономия места
Преимущество 3.2:
экономия места
Преимущество 4: шаг
наружу
URL
Referer
UserAgent
Cookie
URL
Referer
UserAgent
Cookie
• Полуавтоматическое расширение модели
• Универсальный подход к выбору сегментации/сортировки
для таблиц
• Эффективная логическая компрессия данных
• Существующая версия оптимизатора запросов не умеет
генерировать эффективные планы запросов для высоко
нормализованной модели. Требуется свой механизм
генерации планов.
Преимущества и
недостатки нормализации
в MPP база данных

От больших к очень большим данным — зачем нужна нормализация в Big Data / Голов Николай (Авито)

  • 1.
    От больших кочень большим данным - зачем нужна нормализация в Big Data? Николай Голов
  • 2.
  • 3.
    Безусловный лидер вРФ Moscow St. Petersburg Novosibirsk N. Novgorod Kazan Samara Rostov Volgograd Voronezh Ufa Chelyabinsk Omsk Krasnoyarsk Vladivostok Yakutsk Irkutsk Khabarovsk 1.6x2 от всего рынка объявления РФ Почти 50% Просмотров с мобильных устройств 40% Подержанных машин РФ в 2014 были проданы на Авито 250K – 300K Новых авторов в день. 7.9млрд. Просмотров в Декабре 2014, 27млн уникальных посетителей 9,500+ Платных магазинов 24.5млн. Активных объявлений в конце 2014
  • 4.
    Эволюция Avito 0 400 800 1,200 1,600 2,000 2,400 Jan-09 Jul-09Jan-10 Jul-10 Jan-11 Jul-11 Jan-12 Jul-12 Jan-13 Jul-13 Jan-14 Jul-14 Jan-15 Q1 2010 Фокус на Москве и СПБ Сентябрь 2010 13 новых городов Август 2011 28 городов Q2 2013 Поглощение Slando и Olx зафиксировало лидирующую позицию Авито Январь 2012 Националь ное покрытие
  • 5.
  • 6.
    Первый источник данных -изменения 01.01.20 15• 1000$ • MacBook 01.02.2015 • 100$ • MacBook, XXX videos, cal +1**** 02.02.2015 • 500$ • MacBook Air 11
  • 7.
    Web server 01 Webserver 02 Web server 03 Log 01 Log 02 Log 03 search view help pay comment Второй источник – clickstream
  • 8.
    Результаты 2013  Август2013: ELT инфраструктура для Vertica.  Сентябрь 2013: Click Stream из MongoDB  Октябрь 2013: Данные BackOffice из PostgreSQL
  • 9.
    9 Backoffice DBClickstream • ~200 млн. Соб/день • Каждые 15 минут • Все изменения • Раз в час ClickStream tables ~ 30 tables ~ 50 bln. of records Tables of Backoffice ~ 300 tables ~ up to 1 bln of records Daily sync Live connection Analysts Результаты 2013 4 servers, 11Tb of raw data
  • 10.
    Откуда у Avito ещебольше больших данных?
  • 11.
    Automatic filtering of illicitcontent data samples for competition
  • 12.
  • 13.
    Основные принципы аналитики Авито Все данные хранятся согласованными в HP Vertica  Команды Data Scientists (по 1-2 человека) занимаются прогнозированием, классификацией, сегментацией и т.п.  Data scientists знают SQL и самостоятельно работают в хранилище  Большинство видов анализа занимает от минут до 2 часов  Если анализ требует больше 2 часов – зовут Platform Team  Platform team занимается добавлением данных, исправлением ошибок и созданием витрин.
  • 14.
    Рост вовлеченности пользователей Самостоятельнаяработа с данными Назначение цен на услуги Прогнозирование трендов Jan-14 Dec-14 Nov-15 Operating Metric Forecast Качество контента Система искусственного интеллекта для на 80% автоматизированного:  Поиска мошеннических действий  Поиска нелегального контента  Поиска дубликатов  Построения ценовых моделей  Обнаружения ботов Оптимизация рекламы • Отслеживание интересов пользователей в реальном времени для оптимального подбора рекламных предложений.
  • 15.
  • 16.
    16 Backoffice DBClickstream • ~200 млн. Соб/день • Каждые 15 минут • Все изменения • Каждый час ClickStream tables ~ 30 tables ~ 50 bln. of records Tables of Backoffice ~ 300 tables ~ up to 1 bln of records Daily sync Live connection Analysts Результаты 2013 4 servers, 11Tb of raw data
  • 17.
    17 Backoffice DBClickstream • ~600 млн. Соб/день • Каждые 15 минут • Все изменения • Каждый час ClickStream tables ~ 70 tables ~ 150 bln. of records Tables of Backoffice ~ 600 tables ~ up to 2 bln of records Daily sync Live connection Analysts Сейчас 12 servers, 51Tb of raw data
  • 18.
    Эволюция кластера Авито 4 10 15 0 2 4 6 8 10 12 14 16 Размер кластера (сервера) 20132014 2015 11 26 51 0 10 20 30 40 50 60 Размер кластера (TB) 2013 2014 2015 300 560 740 0 100 200 300 400 500 600 700 800 Размер ClickStream (млн. Соб/день) 2013 2014 2015 3 14 23 0 5 10 15 20 25 Количество интегрирован ных систем 2013 2014 2015
  • 19.
    Почему мы можемтам быстро расти?
  • 21.
    ANCHOR (HUB) • Anchor– entity, сущность, существительное • Пример – товар, клиент, магазин • Хранит суррогатный ключ (в нашем случае – еще и бизнес ключ) • Дополнительно хранит систему-источник и дату загрузки • Не меняется H_User: -user_id -load_date -source_sys H_Advert: -advert_id -load_date -source_sys H_Referer: -shop_id -load_date -source_sys
  • 22.
    TIE (LINK) • Tie– связка, глагол • Пример – продажа товара клиенту • Хранит сурр. ключи связываемых сущностей • Дополнительно хранит систему-источник и дату • Может связывать ТОЛЬКО Anchor-ы • SCD 2, actual_date H_Advert: -adverts_id -load_date -source_sys H_User: -user_id -load_date -source_sys T_Controls: -(fk) user_id -(fk) advert_id -actual_date -load_date -source_sys
  • 23.
    23 • ATTRIBUTE –свойство, прилагательное • Пример – свойство клиента • Хранит один атрибут и ключ только анкора • Анкор может иметь произвольное количество атрибутов • SCD 2 , actual_date ATTRIBUTE (SATTELITE) S_User_Name: -user_id -name -actual_date H_User: -customer_id -load_date -source_sys S_User_INN: -user_id -inn -actual_date S_User_Gender: -user_id -gender -actual_date
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
    • Полуавтоматическое расширениемодели • Универсальный подход к выбору сегментации/сортировки для таблиц • Эффективная логическая компрессия данных • Существующая версия оптимизатора запросов не умеет генерировать эффективные планы запросов для высоко нормализованной модели. Требуется свой механизм генерации планов. Преимущества и недостатки нормализации в MPP база данных

Editor's Notes

  • #7 Each advert produces list of versions. If one wants to understand it’s data – all changes have to be stored
  • #8 Clickstream - all actions of users on a web-pages
  • #9 2013 – data are loaded from main data sources, first reports are implemented.
  • #10 Main feature – DWH is constantly loading data, delay is no more than 2 hours.
  • #12 Vertica supports SQL Data samples can be easily generated, checked Data scientists don’t need to have Big Data skills They need to know SQL
  • #13 System for illicit content detection uses data from data warehouse to operate, and produces its own data, that have to be added to DWH and linked to existing entities.
  • #15 Here is a full list of BI applications, created above the data warehouse. Each applications uses some data from DWH and produces new data for it.
  • #16 Data sources and data receivers at the end of 2014 Some sources are also data receivers.
  • #17 Main feature – DWH is constantly loading data, delay is no more than 2 hours.
  • #21 Anchor Modeling – brand new data warehouse modeling methodology. It’s similar to Data Vault, but requires higher level of normalization – 6th normal formal.
  • #25 Animated slide. Vertica is relational database, so it supports high level of normalization Data are stored as graph of linked objects (tables), so new objects, new entities, can be easily added and linked to old ones. At the beginning ETL for adverts, users and payments were implemented. After it – clicks and searches were loaded and linked to adverts.
  • #26 Examples of DWH expanding: -loading of geo location points for web events (searches and clicks) from mobile devices. -support of phone verification for users -support of multiple payment systems -support of bot detection services -detection of fraud (non-human) clicks
  • #31 – all DWH was implemented and supported by 2-4 persons. - approach guarantees scaling of data loading tasks by adding new servers to cluster (this feature is not guaranteed by HP Vertica if tables were not efficiently designed). - normalization helps to store only unique values for such values as URL, Referer or Cookie. - (drawback) Ordinary reports require up to dozen of joins of tables with more with 100 billion of rows. Query optimizer generates plans, that are too heavy for RAM, even for RAM of MPP cluster.