Валентин Гогичашвили, Zalando SE
«Когда я начинал в Zalando, он рос на 100% в месяц и через два месяца всё, что мы строили, уже не работало. Поэтому мы научились строить впрок.»
- Дата-инженеры и кому они нужны
- Данные — это стратегический ресурс
- Кто такие дата-инженеры
- Data engineering — это продукт и сервис
- Опыт разработки платформы в Zalando
- Data Lake
- GDPR
- Автоматизируй это!
- Качество данных
- Не изобретайте колесо
Тема доклада: что такое данные, откуда они берутся и почему онлайн-магазин обуви заинтересован в данных.
Данные — это новая нефть. Как и нефть, сами по себе они ничего не значат и получат ценность при обработке. Ценен процесс и продукт обработки данных.
Однако, продукт обработки нефти не создаёт новую нефть, а обработка данных создаёт ещё больше данных. (Piero Scaruffi, 2016)
В 2016 году компания Zalando приняла новую стратегию данных (data strategy):
- Данные — стратегический ресурс компании.
- Департаменты компании должны делиться друг с другом этим реурсом. (В рамках закона.)
Пирамида потребностей в Data Science. Чем выше — тем больше науки (знания), чем ниже — тем больше процессинга и технических проблем.
Как на самом деле работают учёные, в том числе data scientists? Кажется, что они только наслаждаются полётом научной мысли и периодически производят «Эврику». Но на деле они 80% занимаются фигнёй: борются с плохим качеством и недостаточностью данных, либо страдают от несовершенств инфраструктуры и инструментов.
Кроме дата-саентистов (математиков) ещё нужны дата-инженеры (программисты). Дата-инженеры — это обслуживающий персонал, как сантехники. Они собирают и обслуживают системы для работы с данными.
В больших компаниях data engineering — это продукт и сервис. Знайте своих клиентов, для которых вы строите систему:
- data scientists,
- developers,
- product analysts,
- product managers.
Проектируйте и доставляйте, как обычный продукт:
- интервьюируйте клиентов,
- предлагайте гипотезы о том, что им нужно,
- проверяйте эти гипотезы,
- доставляйте изменения наименьшими возможными итерациями.
В Zalando есть платформа machine learning на основе manaded Jupiter notebooks. Для одних фич гипотезы окзаались верными, для других — нет:
- Data Lake integration — вместо неё захоттели BigQuery и Exasol.
- Пришли к пилотной команде, предложили сделать ядро на R/Python, те потребовали Spark. В итоге только две команды используют Spark.
- Думали что понадобится поддержка вычислений на GPU, на деле почти не понадобилось.
- Польователи попросили в срочном порядке AirFlow scheduling, теперь строят свои пайплайны обработки данных прямо там.
- Подумали, что понадобятся Shared team spaces (NFS) — угадали, фича оказалась очень востребованной.
Важно обучать пользователей. Часто они не пользуются просто потому, что не знают. Чтобы фичу использовали десять команд, расскажите о ней сотне команд.
Централизованное хранилище данных, которое учитывает требования закона и аудита. Интегрируется с остальными системами. Все данные, проходящие через Nakadi, попадают в Data Lake.
Столкнулись с проблемами:
- Структуры данных, которые попадают в Data Lake, оказались гораздо сложнее, чем ожидали. Вложенность до 10 уровней, неудобно вытаскивать данные обратно.
- Эффективно использовать Presto SQL с такими данными не получается, пытаемся найти новое решение.
Compliance & regulations — важная проблема, вынуждает строить централизованные системы. Важны такие фичи:
- discoverability,
- searchability,
- usability.
Важно автоматизировать весь процесс и следить, не создаём ли мы бутылочное горлышко. Например, security team хочет проверять всё ручками — это не будет масштабироваться. Найдите решение, которое распределит ответственность за принятие решений по данным.
Качество суперважно. Вообще есть 160 параметров качества, вот главные. Выделены те, которые легче всего обеспечить.
- Аccuracy (правдивость, точность в смысле верно/неверно)
- Completeness (полнота: все обязательные поля заполнены; есть все данные, которые бывают обычно)
- Timeliness (? данные сохраняются сразу, как только они получены)
- Currency (своевременность? Данные доступны к тому моменту, когда они нужны)
- Validity and integrity (валидность и целостность)
- Consistency (консистентность, надёжность: данные консистентны, если каждый элемент данных сохраняется в разных системах с одинаковым значением)
- Accessibility (доступность: данные легко достать и использовать)
- Precision (точность в смысле «4,98 точнее чем „почти пять“»)
- Lineage (?)
- Representation (?)
Что делать:
- Думаем о том, как будем измерять и отслеживать качество.
- Проблемы с качеством данных считаем настолько же серьёзными, как если у нас упал онлайн-магазин.
Задача — решать проблему компании. Не стройте новые собственные инструменты, используйте готовые.