30
От больших к очень большим данным - зачем нужна нормализация в Big Data? Николай Голов

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

  • Upload
    ontico

  • View
    998

  • Download
    6

Embed Size (px)

Citation preview

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

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

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

Avito

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

Безусловный лидер в РФ

Moscow

St. Petersburg

Novosibirsk

N. Novgorod

Kazan

Samara

Rostov

Volgograd

Voronezh

UfaChelyabinsk

Omsk

Krasnoyarsk

Vladivostok

Yakutsk

IrkutskKhabarovsk

1.6x2

от всего рынка объявления РФ

Почти 50% Просмотров с

мобильных устройств

40%Подержанных машин

РФ в 2014 были проданы на Авито

250K – 300K Новых авторов в день.

7.9млрд.Просмотров в Декабре

2014, 27млн уникальных посетителей

9,500+Платных магазинов

24.5млн.Активных объявлений

в конце 2014

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

Эволюция Avito

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-150

400

800

1,200

1,600

2,000

2,400

Q1 2010Фокус на Москве и СПБ

Сентябрь 201013 новых городов

Август 201128 городов

Q2 2013Поглощение Slando и Olx зафиксировало лидирующую позицию Авито

Январь 2012Национальное покрытие

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

Откуда у Avito большие данные?

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

Первый источник данных - изменения

01.01.2015• 1000$

• MacBook

01.02.2015

• 100$• MacBook,

XXX videos, cal +1****

02.02.2015

• 500$• MacBook Air

11

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

Web server 01

Web server 02

Web server 03

Log 01

Log 02

Log 03

search

view

help

pay

comment

Второй источник – clickstream

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

Результаты 2013 Август 2013: ELT инфраструктура для Vertica.

Сентябрь 2013: Click Stream из MongoDB

Октябрь 2013: Данные BackOffice из PostgreSQL

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

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 syncLive connection

Analysts

Результаты 2013

4 servers, 11Tb of raw data

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

Откуда у Avito еще больше больших данных?

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

Automatic filtering of illicit content

data samples for competition

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

Users

Adverts

Payment

Clicks

Searches

Device

Cookie

Хранилище Avito - эволюция

Illicit content detection

Fraud estimation

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

Основные принципы аналитики Авито

Все данные хранятся согласованными в HP Vertica Команды Data Scientists (по 1-2 человека)

занимаются прогнозированием, классификацией, сегментацией и т.п. Data scientists знают SQL и самостоятельно

работаютв хранилище Большинство видов анализа занимает от минут до

2 часов Если анализ требует больше 2 часов – зовут

Platform Team Platform team занимается добавлением данных,

исправлением ошибок и созданием витрин.

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

Рост вовлеченности пользователей

Самостоятельная работа с данными

Назначение цен на услуги

Прогнозирование трендов

Jan-14 Dec-14 Nov-15

Operating Metric Forecast

Качество контентаСистема искусственного интеллекта для на 80% автоматизированного:

Поиска мошеннических действий Поиска нелегального контента Поиска дубликатов Построения ценовых моделей Обнаружения ботов

Оптимизация рекламы• Отслеживание интересов

пользователей в реальном времени для оптимального подбора рекламных предложений.

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

Back office

Click stream

BI Team

Antifraud

MDM

CRM

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

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 syncLive connection

Analysts

Результаты 2013

4 servers, 11Tb of raw data

Page 17: От больших к очень большим данным — зачем нужна нормализация в Big 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 syncLive connection

Analysts

Сейчас

12 servers, 51Tb of raw data

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

Эволюция кластера Авито

Series10

2

4

6

8

10

12

14

16

4

10

15

Размер кластера(сервера)

2013 2014 2015

Series10

10

20

30

40

50

60

11

26

51

Размер кластера

(TB)

2013 2014 2015

Series10

100

200

300

400

500

600

700

800

300

560

740

РазмерClickStream

(млн. Соб/день)

2013 2014 2015

Series10

5

10

15

20

25

3

14

23

Количество интегрирован

ныхсистем

2013 2014 2015

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

Почему мы можем там быстро расти?

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

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

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

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

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

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

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

Users

Adverts

Payment

Back office

Clicks

Searches

Device

Cookie

Хранилище Avito - начало

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

Users

Adverts

Payment

Clicks

Searches

Device

Cookie

Преимущество 1 – автоматизированное расширение

Phone

Bot NetGeo point

Payment system

Is Human

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

Преимущество 2 – единообразная сегментация

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

Преимущество 3.1: экономия места

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

Преимущество 3.2: экономия места

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

Преимущество 4: шаг наружу

URLRefererUserAgentCookie

URLRefererUserAgent

Cookie

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

• Полуавтоматическое расширение модели• Универсальный подход к выбору

сегментации/сортировки для таблиц• Эффективная логическая компрессия данных• Существующая версия оптимизатора запросов не

умеет генерировать эффективные планы запросов для высоко нормализованной модели. Требуется свой механизм генерации планов.

Преимущества и недостатки нормализации в MPP база данных