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