Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Junkyard Blues by Papaya-Style
Иногда дата-сайентистам и дата-инженерам сложно понять друг друга. И тогда первые получают не те данные, а вторые занимаются непонятными или даже невыполнимыми задачами.
Команда разработки облачной платформы VK Cloud Solution перевела статью бывшего дата-инженера, которая стала дата-сайентистом. Она рассказывает, как этим специалистам прийти к взаимопониманию и эффективнее работать над общими задачами.
Контекст запроса и постановка задачи
Когда дата-сайентист работает со стейкхолдерами, он вникает в контекст запроса, расставляет приоритеты и согласует ожидаемые результаты. Так же нужно действовать, отправляя запрос дата-инженеру. Они постоянно получают требования извлечь новые данные, изучить пайплайн или решить проблемы с качеством. Но чтобы выполнять эти требования, им нужно понимать контекст запроса — только так они смогут расставить приоритеты и сопоставить их со списком текущих задач.
Совет дата-сайентисту
Когда вы составляете запрос для дата-инженера, ответьте на четыре вопроса:
- Кому нужны данные? «Маркетингу нужно знать, откуда пользователи приходят на сайт».
- Какие данные нужны? «Про посещение пользователями всех маркетинговых страниц».
- Зачем нужны эти данные? «Если маркетинг будет знать, откуда приходят пользователи, он сможет оптимизировать работу и сосредоточиться на каналах с высокой конверсией для увеличения продаж».
- К какому сроку нужны эти данные? «До конца следующей недели».
Старайтесь размещать запросы заранее, а не в последний момент. Тогда дата-инженеры успеют внести запрос в список задач, и останется запас времени на обработку. А вы уложитесь в срок сдачи отчета маркетингу.
Советы дата-инженеру
- Создайте Help-страницу со всеми подробностями, которые вам нужны, чтобы взять задачу в работу от команды дата-сайентистов. Либо добавьте пункты с запросом деталей задачи в форму подачи заявки команде дата-инженеров на подключение нового источника данных.
- Создайте каталог данных с местоположением и описанием. Дата-сайентисты не всегда знают, какие данные в принципе доступны для работы, какие можно загрузить. Каталог поможет им понять структуру существующих данных. Когда каталога нет, часто возникают проблемы с задачами на подключение новых источников — тех, данные из которых были загружены в хранилище ранее, а команда дата-сайентистов об этом не знала.
Спецификации данных
Дата-инженеры не знают, какие данные подойдут для вашего анализа, поэтому предпочитают запросы с четкими спецификациями. Задача дата-сайентиста — прояснить вопросы о полях данных, диапазоне дат и логике обработки. Например, рассказать, что делать с Null-значениями.
Посмотрим на два варианта формулировок:
- «Предоставить данные о посетителях сайта». Запрос расплывчатый, дата-инженеру придется задать много уточняющих вопросов — время работы затянется.
- «Предоставить данные о посетителях сайта, которые с 1 января 2021 года заходили на страницы, начинающиеся с www, и сохранить их в таблице базы данных под названием website_visitor». Здесь все четко, инженеру не нужно ничего уточнять — он может сразу приступить к работе и быстрее собрать нужные данные.
Советы дата-сайентисту
- Формулируя запрос, укажите как можно больше подробностей. Это сэкономит всем участникам время на уточнения, и ответ будет готов быстрее.
- Попросите прислать образец данных за несколько дней до дедлайна. Так вы сможете проверить полученные значения и убедиться, что в выборке есть все нужные вам поля. И только после этого давайте дата-инженерам отмашку собирать все данные, особенно если вам нужна выборка за несколько лет. Иначе есть риск, что вы получите не то, что хотели, и придется несколько дней ждать, пока дата-инженеры переделают работу по вашему запросу.
- Уточните, как нужно обновлять данные, чтобы избежать дублирования. Как-то раз я совершила промах — не указала, что данные за тот же день нужно удалять перед обновлением, и в результате получила таблицу с дублирующимися записями.
Обязательно указывайте, нужны ли данные за прошлые периоды и как обновлять таблицу при появлении новых данных. Если нужны ежедневные обновления с определенным шагом, поставьте запрос на удаление, а уже потом на добавление данных за тот же день. Если не нужны инкрементные обновления, запросите полное обновление данных и добавьте, как часто оно вам требуется — например, ежедневно.
Советы дата-инженеру
- Напишите чек-лист для стандартных запросов вроде извлечения новых данных. Сверяйте с ним все новые запросы, чтобы сразу понимать, хватает ли информации. Так у вас не возникнет ситуации, что вы взяли запрос в работу, а потом оказалось, что для его выполнения нужна дополнительная информация.
- Если вы точно не знаете, в каком виде дата-сайентистам нужны данные, просто спросите. Лучше прояснить все заранее, чем переписывать код и перезапускать весь процесс загрузки и обработки данных, потому что дата-сайентист получил не то, что ожидал.
Параметры контроля качества
Иногда дата-инженеры поддерживают сотни пайплайнов. В основном они следят, чтобы ETL-процессы выполнялись без ошибок, и устраняют сбои там, где ошибки есть. Если предоставить инженерам список метрик и проверок для контроля качества данных, которые они смогут применить до передачи данных, это сильно упростит и ускорит работу.
Как-то раз я работала с дата-инженерами на проекте по миграции данных. Им нужно было реплицировать имеющийся пайплайн ETL и загрузить его в новую базу данных. Я понимала, как должны выглядеть данные, которые мне нужны. А вот дата-инженеры — нет, они не были знакомы с этим пайплайном. Я предоставила им несколько SQL-запросов, которые помогали проверить, корректно ли загрузились данные. Если они загружались некорректно, инженеры быстро это выясняли и могли исправить код пайплайна. Так я сэкономила время на проверке данных, не прошедших контроль качества.
Совет дата-сайентисту
- Предоставьте дата-инженерам рекомендации по ожидаемым значениям. Или объясните, какие SQL-запросы выполнить, чтобы проверить работу ETL. Чем подробнее вы все объясните, тем меньше к вам будет вопросов.
Советы дата-инженеру
- Просмотрите данные и убедитесь, что нет ничего подозрительного или странного. Например, если все столбцы пустые, здесь явно что-то не в порядке.
- Спросите у дата-сайентиста, как можно проверить корректность загрузки данных. Возможно, он предоставит SQL-запрос или метрики, которые помогут оценить заранее, как отработал пайплайн.
Заключение
Дата-сайентистам и дата-инженерам нужно научиться эффективно сотрудничать, чтобы успешно работать в компании. Возможно, мы еще не достигли полной гармонии в отношениях, но надеюсь, что советы из этой статьи помогут приблизиться к эффективному сотрудничеству.
Команда VK Cloud Solutions развивает собственные Big-Data-решения. Будем признательны, если вы их протестируете и дадите обратную связь. Для тестирования пользователям при регистрации начисляем 3000 бонусных рублей.
Что почитать по теме:
- Как и зачем разворачивать приложение на Apache Spark в Kubernetes.
- Форматы файлов в больших данных: краткий ликбез.