Как создать первый проект по инженерии данных: инкрементный подход. Часть 1
Подробная разбивка проекта по дата-инжинирингу. Изображение автора

Предупреждение: предлагаемый материал довольно объемен, но будьте уверены, что знакомство с ним сэкономит много времени при обучении.

Начните с проекта

При работе над реальным проектом вам дадут несколько месяцев обучаться всему, что необходимо для решения проблемы. Вы получите набор задач или формулировок проблемы. Проанализировав их, вы будете продумывать свои действия для их выполнения. 

При таком подходе выражение “поди разберись, что к чему” часто становятся мантрой. Такова участь практически всех новичков.

Как часто вы чувствовали себя неуверенно даже после окончания курса? Вы были уверены в своих силах, пока следовали руководству, но как только получили набор задач, стали откладывать их выполнение? 

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

Метод инкрементной разработки проектов

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

Почему такой подход называется инкрементным?

Когда основные цели достигнуты, появляются новые сложности и функциональные возможности. Это можно сравнить с созданием MVP (продукта с минимальным функционалом) для проверки концепции. Убедившись в ее жизнеспособности, вы добавляете функциональные возможности и расширяете масштабируемость.

Каковы преимущества инкрементного подхода?

  • Воспроизведение реальной среды производства.
  • Возможность учиться решать проблемы с самого начала.
  • Получение мгновенного удовлетворения от завершения проекта.
  • Постепенное решение задач по мере усложнения проекта.
  • Преодоление плато обучения (периода стагнации) и ускорение карьерного продвижения.

Как это работает?

Создадим самый простой проект по инженерии данных, а затем посмотрим, как можно добавить в него новые сложности. Но сначала раз и навсегда развею один миф:

Анализ данных из Twitter и Uber не считается реальным проектом по инженерии данных.

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

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

Вот несколько реальных проектов по работе с данными, которые можно добавить в резюме:

  1. Перенос локальных данных в облако.
  2. Разработка решения для аналитики настроений.
  3. Внедрение Master Data Management (системы управления ключевыми данными).
  4. Проектирование автоматизированного Data Ingestion Framework (фреймворка для приема данных).
  5. Проектирование новой системы хранилища данных для аналитики.
  6. Внедрение потоковой аналитики данных в реальном времени.
  7. Создание наборов данных для применения в МО/ИИ, а также конструирование признаков.

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

Определение бизнес-проблемы

Для новичка достаточно знать технические детали, но для старшего поколения дата-инженеров знание предметной области практически так же важно. Попробуйте определить проект в той бизнес-сфере, с которой вы хорошо знакомы. Создайте примерный бизнес-сценарий для определения вашего проекта.

Попробуем определить проект в банковском/кредитном бизнесе (поскольку мой опыт лежит в области кредитования).

“Крупная кредитная компания” (назовем проект так)  —  это кредитная компания, которая обслуживает небанковских клиентов. Таким образом, она предоставляют кредиты тем, у кого нет доступа к обычным банкам.

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

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

Поэтому “Крупная кредитная компания” должна внедрить следующие бизнес-процессы:

  • Моделирование рисков, связанных с клиентами.
  • Автоматизированный процесс выдачи кредитов
  • Снижение зависимости от ручного труда.
  • Минимизация кредитных потерь за счет надлежащего кредитного обслуживания.
  • Прогнозирование неплательщиков и отслеживание фиксированных ежемесячных взносов (EMI).

Определение требований к данным

Теперь определим требования к данным для решения бизнес-проблемы. Для обеспечения автоматизированной обработки данных необходимо собрать большое количество данных:

  • Персональные данные клиентов (структурированные).
  • Кредитные данные клиентов (полуструктурированные).
  • Данные о трудоустройстве клиентов (структурированные).
  • Данные о местоположении клиентов посредством ГИС-данных (полуструктурированные).
  • Данные о документах (неструктурированные).

Как дата-инженеру, вам необходимо решить следующие задачи “Крупной кредитной компании”:

  • Ввести в систему все вышеперечисленные типы данных.
  • Автоматизировать процесс приема данных.
  • Гарантировать масштабируемость и надежность этому процессу, чтобы минимизировать потерю данных.
  • Обеспечить процессы очищения и преобразования данных, необходимых для нужд бизнеса.
  • Позаботиться о доступности данных для отчетности в рамках принятого SLA (Service Level Agreement, соглашение об уровне обслуживания).

Читайте также:

Читайте нас в Telegram, VK и Дзен


Перевод статьи Saikat Dutta: How to Create First Data Engineering Project? An Incremental Project Roadmap

Предыдущая статьяПродвинутые техники PHP: от шаблонов проектирования до тестирования. Часть 1
Следующая статья10 способов повысить эффективность RAG-системы