Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Андрей Лузин (2ГИС), Big data engineering 101, ...

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for CodeFest CodeFest
January 31, 2018

Андрей Лузин (2ГИС), Big data engineering 101, CodeFest 2017

https://2017.codefest.ru/lecture/1172

На сегодняшний день подход big data доказал свою полезность для бизнеса и сформировался как самостоятельное направление в IT-индустрии. Анализом больших объёмов статистики занимаются не только компании-гиганты, в этой области пробуют силы даже стартапы. Однако у небольших компаний нет готовой инфраструктуры и набора inhouse-решений для приёма, доставки и обработки данных.

В этом докладе я расскажу о принципах, подходах и open-source компонентах на которых можно такое решение построить. Сфокусируемся на инженерной части BigData: бэкендах приёма, очередях доставки и хранилищах данных. Рассмотрим потоковую (data streaming) и массовую (map-reduce) обработку данных. Также поговорим про такую важную тему как форматы представления данных, немного затронем тему сбора данных в приложении / браузере. И конечно я расскажу как и с помощью каких инструментов мы решали эту задачу в 2GIS. В ходе рассказа будут упомянуты Golang, C++, Hadoop, Kafka, Spark и некоторые другие технологии. Если вы используете другой стек - не страшно, упор будет сделан на принципы и архитектуру.

Цель моего доклада: Если (на самом деле когда) к вам прийдёт CEO со словами "давай начнём собирать данные", вы будете знать, какими принципами руководствоваться и в какую сторону копать. Информации на тему “как освоить R, Python, Hadoop за 21 день и стать высокооплачиваемым data scientist ’ом, увы, не будет.

Avatar for CodeFest

CodeFest

January 31, 2018
Tweet

More Decks by CodeFest

Other Decks in Programming

Transcript

  1. [Not So] Big Data • ~ 100 миллиардов записей в

    хранилище • ~ 1KB - размер записи • ~ 10K вставок в секунду
  2. Задачи инженерной части • Сбор данных • Доставка к месту

    анализа • Надёжное хранение истории • Удобный доступ инструментам анализа
  3. Логи содержат не всё • Не все события генерируются при

    обращении на бэкенд • Не хочется регистрировать каждое событие отдельным HTTPS запросом
  4. Не Hadoop’ом единым • Существующие OLAP, BI → ETL •

    Поточная обработка • Обогащение данных • Ad-hoc & one-off
  5. Собираем события { "type": "search", "query": "Экспоцентр" "event-id": "someguid42", "user-id":

    "anotherguid23", "session-id": "sessionguid64", "timestamp": 1490245277, "version": 2, ... }
  6. Как сделано в 2GIS • Сбор на клиенте • Zipped

    JSON • Версионирование, JSON Schema
  7. Пример 2GIS - Дедупликация: хэши сессий в Tarantool - Антифрод:

    эвристики + ML - Валидация: схемы + правила
  8. Доставка • Несколько получателей • Фильтрация • Отслеживание позиции чтения

    на стороне транспорта • Возможность “перемотки” • Шардинг и параллелизм • Обогащение данных
  9. Summary • Big data ≠ Hadoop • Разделяйте приём, доставку

    и хранение • Не бойтесь избыточности хранения данных