Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

1,568 views

Published on

Спроектировать хранилище данных, казалось бы, не сложно.
Собрать требования -> построить модель данных -> реализовать ETL.
Но проходит год-два, и рост объема данных, и, главное, рост сложности данных приводит хранилище на грань работоспособности.

В докладе будет проиллюстрировано, как Big Data хранилище Авито экспоненциально увеличивалось в размерах данных и сложности их взаимосвязей вместе с ростом объема и сложности бизнеса компании, сохраняя скорость выполнения запросов.

Будет обосновано, почему следование ограничениям 6-й нормальной формы (Anchor Modeling) помогает не утонуть в новых данных и успешно масштабировать нагрузку в условиях MPP СУБД.
В качестве финального штриха будет рассказано, как высоконормализованная модель данных Anchor Modeling позволяет малыми усилиями сделать шаг за пределы СУБД к хранению части данных в виде (ORC) файлов в распределенной файловой системе (HDFS) к сохранению для пользователей возможности работать со всеми данными посредством (почти) обычного SQL (без Hive).

Published in: Engineering
  • Be the first to comment

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

  1. 1. От больших к очень большим данным - зачем нужна нормализация в Big Data? Николай Голов
  2. 2. Avito
  3. 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. 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 Националь ное покрытие
  5. 5. Откуда у Avito большие данные?
  6. 6. Первый источник данных - изменения 01.01.20 15• 1000$ • MacBook 01.02.2015 • 100$ • MacBook, XXX videos, cal +1**** 02.02.2015 • 500$ • MacBook Air 11
  7. 7. Web server 01 Web server 02 Web server 03 Log 01 Log 02 Log 03 search view help pay comment Второй источник – clickstream
  8. 8. Результаты 2013  Август 2013: ELT инфраструктура для Vertica.  Сентябрь 2013: Click Stream из MongoDB  Октябрь 2013: Данные BackOffice из PostgreSQL
  9. 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
  10. 10. Откуда у Avito еще больше больших данных?
  11. 11. Automatic filtering of illicit content data samples for competition
  12. 12. Users Adverts Payment Clicks Searches Device Cookie Хранилище Avito - эволюция Illicit content detection Fraud estimation
  13. 13. Основные принципы аналитики Авито  Все данные хранятся согласованными в HP Vertica  Команды Data Scientists (по 1-2 человека) занимаются прогнозированием, классификацией, сегментацией и т.п.  Data scientists знают SQL и самостоятельно работают в хранилище  Большинство видов анализа занимает от минут до 2 часов  Если анализ требует больше 2 часов – зовут Platform Team  Platform team занимается добавлением данных, исправлением ошибок и созданием витрин.
  14. 14. Рост вовлеченности пользователей Самостоятельная работа с данными Назначение цен на услуги Прогнозирование трендов Jan-14 Dec-14 Nov-15 Operating Metric Forecast Качество контента Система искусственного интеллекта для на 80% автоматизированного:  Поиска мошеннических действий  Поиска нелегального контента  Поиска дубликатов  Построения ценовых моделей  Обнаружения ботов Оптимизация рекламы • Отслеживание интересов пользователей в реальном времени для оптимального подбора рекламных предложений.
  15. 15. Back office Click stream BI Team Antifraud MDM CRM
  16. 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. 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
  18. 18. Эволюция кластера Авито 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
  19. 19. Почему мы можем там быстро расти?
  20. 20. 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
  21. 21. 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
  22. 22. 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
  23. 23. Users Adverts Payment Back office Clicks Searches Device Cookie Хранилище Avito - начало
  24. 24. Users Adverts Payment Clicks Searches Device Cookie Преимущество 1 – автоматизированное расширение Phone Bot Net Geo point Payment system Is Human
  25. 25. Преимущество 2 – единообразная сегментация
  26. 26. Преимущество 3.1: экономия места
  27. 27. Преимущество 3.2: экономия места
  28. 28. Преимущество 4: шаг наружу URL Referer UserAgent Cookie URL Referer UserAgent Cookie
  29. 29. • Полуавтоматическое расширение модели • Универсальный подход к выбору сегментации/сортировки для таблиц • Эффективная логическая компрессия данных • Существующая версия оптимизатора запросов не умеет генерировать эффективные планы запросов для высоко нормализованной модели. Требуется свой механизм генерации планов. Преимущества и недостатки нормализации в MPP база данных

×