От больших к очень большим данным — зачем нужна...
Post on 19-Feb-2017
1.003 Views
Preview:
TRANSCRIPT
От больших к очень большим данным - зачем нужна нормализация в Big Data?Николай Голов
Avito
Безусловный лидер в РФ
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
Эволюция 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Национальное покрытие
Откуда у Avito большие данные?
Первый источник данных - изменения
01.01.2015• 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 syncLive 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 syncLive 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 syncLive connection
Analysts
Сейчас
12 servers, 51Tb of raw 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
Почему мы можем там быстро расти?
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 NetGeo point
Payment system
Is Human
Преимущество 2 – единообразная сегментация
Преимущество 3.1: экономия места
Преимущество 3.2: экономия места
Преимущество 4: шаг наружу
URLRefererUserAgentCookie
URLRefererUserAgent
Cookie
• Полуавтоматическое расширение модели• Универсальный подход к выбору
сегментации/сортировки для таблиц• Эффективная логическая компрессия данных• Существующая версия оптимизатора запросов не
умеет генерировать эффективные планы запросов для высоко нормализованной модели. Требуется свой механизм генерации планов.
Преимущества и недостатки нормализации в MPP база данных
top related