Баннер мобильный (3) Пройти тест

Чем занимается дата-инженер X5 Retail Group?

Рассказ о профессии дата-инженера: автоматизация, организация хранилища данных и лайфхаки по борьбе с рутиной

Обзор профессии

28 февраля 2024

Поделиться

Скопировано
Чем занимается дата-инженер X5 Retail Group?

Содержание

    Максим Керемет работает в Х5 Retail Group: он обрабатывает данные для дата-сайентистов и аналитиков. По мнению Максима, дата-инженер — одна из самых сконцентрированных на программировании профессий, связанных с данными.

    Кто такой дата-инженер?

    Профессии, которые начинаются со слова data, подразумевают работу с данными, машинным обучением, искусственным интеллектом. Их главная цель — достать из данных знания, как частный случай — предсказания (это задачи машинного обучения), чтобы потом на их основе построить экспериментальные модели, которые будут помогать бизнесу.

    Дата-инженер занимается первичной работой с данными: собирает, очищает от ошибок и повторов, организует, выстраивает весь процесс их получения и хранения (пайплайн). Часто его заказчик внутри компании — дата-сайентист. Дата-инженер передает ему подготовленные данные, а дата-сайентист использует их для построения моделей.

    У такого специалиста есть четкое понимание того, как писать структурированный, чистый и масштабируемый код. В объемном коде я могу навести порядок, написав сервис (программу): по сути, создать папку, в которой лежат файлы, логически разделенные на блоки (рабочие и сопутствующие скрипты, файлы с конфигурациями, версии моделей).

    Иногда в обязанности дата-инженера входит строить архитектуру хранилищ данных — это базы данных с таблицами, в которых данные разбиты по смыслу. Базы могут быть, например, реляционными — где данные четко связаны друг с другом; тогда для их управления нужен SQL. Бывают распределенные базы — в этом случае данные находятся на разных компьютерах и извлекать их можно с помощью фреймворка Spark.

    Нужно хорошо владеть инструментами автоматизации. Часто скрипты нужно запускать в определенной последовательности или не запускать следующий, пока один не отработает. Эти задачи выполняют программы-шедуллеры (от англ. schedule — расписание), например Apache Airflow: он дергает скрипты по расписанию и помогает автоматизировать последовательность действий.

    Умение применять модели на генеральной совокупности хоть и не часто требуется в компаниях, но будет плюсом. Дата-сайентисты проверяют гипотезы на части пользователей, и пишут код в исследовательском стиле, что не задумываясь о производительности и масштабировании. Очень часто такой код не совпадает с тем, как он будет работать на всех клиентах. Но бизнесу нужно ежедневно обновлять предсказания по бо́льшему количеству пользователей нежели чем выборка с которой работает дата-сайентист, поэтому дата-инженеру обязательно надо уметь масштабировать результаты этих экспериментов.

    Кроме того, дата-инженер может провести простую аналитику данных, например построить дашборд (информационная панель, которая показывает краткие сведения о ключевых показателях эффективности) в Power BI или Tableau или наладить запуск какого-то скрипта в определенном регламенте, например ежедневный расчет к 9 утра.

    Как я попал в профессию

    У меня непрофильное образование. Обычно дата-сайентисты и дата-инженеры приходят из технических специальностей или из математических вузов. Я учился в РЭУ им. Плеханова по направлению «Экономика, финансы и кредит», а потом закончил магистратуру в Швеции по менеджменту в сфере интеллектуальной собственности. После этого стандартно, как и многие выпускники финансовых вузов, вышел в большую четверку (четыре крупных консалтинговых компании: PricewaterhouseCoopers, Ernst and Young, Deloitte и KPMG) и быстро понял, что это не мое.

    Пошел работать в Adidas стандартным аналитиком, который в Excel делает отчеты. В какой-то момент мне надоело, что все периодически лагает и падает, поэтому я начал искать инструменты и наткнулся на Python, с помощью которого можно автоматизировать процедуры. Отчет, который я делал руками час-полтора, если ничего не упадет, с помощью Python собирался не больше 15 минут. Я предложил начальнику автоматизировать другие процессы, но он отказал. Тогда я понял, что нужно искать другое место.

    Я подавался на все вакансии начального уровня, в которых нужны Python, автоматизация, аналитика. Начинал с позиции джуниор-аналитика в Mail.ru, потом в первый раз устроился в Х5 Python-разработчиком.

    image-3976516
    GitHub и тестовое задание в одну компанию. Мне дали лог поездок беспилотного автомобиля в разных режимах (с водителем и без). Нужно было разработать сервис, который бы парсил (читал, извлекал, обрабатывал данные) лог, считал километраж режимов поездки.

    Затем в отделе продуктовой аналитики в ВКонтакте я впервые поработал как дата-инженер. Я собирал продуктовые данные: таблицы, в которых уже агрегированы данные, метрики, показатели статистики.

    Помимо этого отдел занимается построением дашбордов, исследованиями пользователей, так что в моей работе были и элементы продуктовой аналитики. Там было много ad hoc (ситуативный способ решения, который подходит только для одной задачи и не может быть универсальным) аналитики, которую нужно делать каждый день, при этом ее объемы никогда не уменьшались.

    Из-за этого я ушел из ВК и вернулся в Х5 на другой проект.

    Чем я занимаюсь сейчас

    Я работаю в команде CVM (customer value management), которая занимается лояльностью в «Пятерочке». Мы настраиваем коммуникацию с клиентом. Например, на чеках, которые вы получаете на кассе, есть предложения о том, что вам дадут скидку, если вы придете в магазин на следующей неделе и купите товаров на определенную сумму. Иногда может прилететь смс: «Сегодня скидка на сметану, приходи к нам».

    Чеки — это сырые источники, из которых можно сформировать признаки, описывающие покупательский паттерн человека. Они описывают поведение человека в магазине: например, сколько он потратил в той или иной категории, когда последний раз был в магазине, сколько раз был в магазине за последнюю неделю. На основе этих признаков строятся модели, которые предсказывают поведение людей с картой лояльности. Чтобы модели работали не просто в исследовательских целях, нужно проскорить (оценить) миллионы людей, которые ходили к нам в течение года.

    Во-первых, я строю хранилище этих признаков. То есть занимаюсь процессами предобработки и очистки данных, обновляю и пересчитываю их, чтобы пользователи инструмента или данных — аналитики или дата-сайентисты — могли работать с ними без проблем. В дальнейшем накопленные признаки пригодятся для новых моделей и бизнес-идей, а ребятам не придется работать с сырыми данными.

    Во-вторых, я вывожу модели в продакшн. Например, дата-сайентист делает модель следующего визита, которая предсказывает, придет ли к нам человек, или другие модели, которые предсказывают, что он купит, какую категорию ему предложить. На одной выборке из 100–200 тысяч человек ее строят, а потом на другой выборке проверяют. Если масштабировать успешное решение на весь массив — 30–40 миллионов активных пользователей, — то можно увеличить прибыль компании за счет коммуникации с гостями (SMS с выгодным предложением), которые придут и купят товар.

    Я забираю эту модель у дата-сайентиста, пишу улучшенный код, который будет выдавать такие же результаты, и масштабирую на большее количество признаков. Если все слаженно работает, нужно оптимизировать процесс: чтобы не скорить миллионы людей последовательно, можно разбить всё количество на равные части, параллельно их оценить и результаты оформить в компактную таблицу. Это и быстрее, и удобнее, и ресурсов тратится меньше.

    image-1195823
    Так выглядит мое рабочее место

    Нынешние задачи мне по душе, они среднесрочные, на несколько месяцев, не нужно постоянно делать результат каждую неделю. Но в итоге у тебя есть компетенция и проект, который ты можешь описать.

    Как войти в профессию

    Я начинал с курсов по Python, потом меня заинтересовали алгоритмические задачи. Их не всегда можно напрямую применить в бизнес-среде, но они хорошо развивают и работу с базовыми структурами языка.

    Если вы работаете аналитиком или выполняете рутинные задачи в Excel и хотите автоматизировать их, то стать дата-инженером — вполне закономерный вариант. Между автоматизацией рутины и сбором данных не большая разница. Это разные сферы, но автоматизация позволяет сокращать объемы ручной работы, которые есть и там, и там.

    Как я превратил рутину в творчество

    Мой рабочий день ничем не отличается от классического дня программиста: посещаю рабочие встречи и пишу код. Это довольно монотонное занятие: ты рефакторишь (рефакторинг — упрощение исходного кода, чтобы он стал понятнее), думаешь, пишешь документацию, описываешь код, все время сидишь перед компьютером.

    Сейчас я использую технику Помодоро: не отрываюсь от задачи на протяжении получаса, а потом делаю перерыв и занимаюсь домашними или организационными делами. Несмотря на то что это довольно рутинная вещь, с такой организацией труда я как будто играю в игру, прокачиваю своего героя в упорядочении хаоса своей жизни.

    Техника Помодоро — метод тайм-менеджмента для увеличения продуктивности и концентрации. Время делится на отрезки — 25 минут непрерывной работы и 5 минут отдыха. Для работы нужно составить список приоритетных задач и последовательно, не отвлекаясь, их выполнять за время «помидорки». Если задача объемная, следует разбить ее на подзадачи и выполнять все постепенно. Через четыре таких сета нужно сделать долгий перерыв на 15–20 минут. Традиционно отрезки отслеживают с помощью кухонного таймера в виде помидора, но сейчас есть и приложения.

    Совет новичку

    Приведу аналогию со спортом. Я занимаюсь джиу-джитсу, и мой тренер всегда говорит: «Просто появляйтесь на тренировке». Чтобы чему-то научиться, нужно время. Нельзя срезать путь, быстрее набраться опыта, потому что опыт — это количество времени, проведенное за попытками решить те или иные задачи, простые или сложные и составные. Все, что нужно, — просто методично проходить курсы. Если что-то не получается — отложить, перейти к следующему заданию, курсу, почитать, погуглить, спросить у ментора фидбек.

    Программирование — в принципе про систематическое совершение огромного количества ошибок и их решение. Чем дальше, тем ошибок меньше, они становятся более явными. Если ты ступил на эту дорогу, то нужны только время и терпение.

    Скопировано
    0 комментариев
    Комментарии