Спроектировать хранилище данных, казалось бы, не сложно.
Собрать требования -> построить модель данных -> реализовать ETL.
Но проходит год-два, и рост объема данных, и, главное, рост сложности данных приводит хранилище на грань работоспособности.
В докладе будет проиллюстрировано, как Big Data хранилище Авито экспоненциально увеличивалось в размерах данных и сложности их взаимосвязей вместе с ростом объема и сложности бизнеса компании, сохраняя скорость выполнения запросов.
Будет обосновано, почему следование ограничениям 6-й нормальной формы (Anchor Modeling) помогает не утонуть в новых данных и успешно масштабировать нагрузку в условиях MPP СУБД.
В качестве финального штриха будет рассказано, как высоконормализованная модель данных Anchor Modeling позволяет малыми усилиями сделать шаг за пределы СУБД к хранению части данных в виде (ORC) файлов в распределенной файловой системе (HDFS) к сохранению для пользователей возможности работать со всеми данными посредством (почти) обычного SQL (без Hive).
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-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
Националь
ное
покрытие
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
Web server 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 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
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%
автоматизированного:
Поиска мошеннических действий
Поиска нелегального контента
Поиска дубликатов
Построения ценовых моделей
Обнаружения ботов
Оптимизация рекламы
• Отслеживание интересов
пользователей в реальном
времени для оптимального
подбора рекламных
предложений.
16. 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. 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
30. • Полуавтоматическое расширение модели
• Универсальный подход к выбору сегментации/сортировки
для таблиц
• Эффективная логическая компрессия данных
• Существующая версия оптимизатора запросов не умеет
генерировать эффективные планы запросов для высоко
нормализованной модели. Требуется свой механизм
генерации планов.
Преимущества и
недостатки нормализации
в MPP база данных
Editor's Notes
Each advert produces list of versions.
If one wants to understand it’s data – all changes have to be stored
Clickstream - all actions of users on a web-pages
2013 – data are loaded from main data sources, first reports are implemented.
Main feature – DWH is constantly loading data, delay is no more than 2 hours.
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
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.
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.
Data sources and data receivers at the end of 2014
Some sources are also data receivers.
Main feature – DWH is constantly loading data, delay is no more than 2 hours.
Anchor Modeling – brand new data warehouse modeling methodology.
It’s similar to Data Vault, but requires higher level of normalization – 6th normal formal.
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.
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
– 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.