От списка покупок до отчёта о продажах: разбираем два маршрута данных, их различия и вопросы, которые помогают выбрать подход. Без кода и сложных схем.
Почему отчёт не появляется сам собой
Представьте сеть небольших кофеен. Касса знает о продажах, приложение доставки — о заказах на дом, а бухгалтерская система — о возвратах. Владелец хочет один понятный отчёт: сколько заработала каждая кофейня за неделю.
Просто сложить все цифры опасно. Один заказ может попасть и в кассу, и в доставку. Где-то сумма включает доставку, где-то нет. Возвраты поступают позже покупок. Прежде чем строить график, нужно собрать сведения и договориться, что именно будет означать показатель выручки.
Три действия, скрытые в названии
В названиях ETL и ELT используются одни и те же три действия: извлечь данные из источников, преобразовать их по нужным правилам и загрузить в целевое хранилище. Хранилищем здесь назовём систему, в которой данные собирают для дальнейшей работы.
Главное различие — где происходит преобразование. В ETL оно выполняется до загрузки в целевое хранилище, в ELT — уже внутри него. Так эти подходы сопоставляет AWS.
Преобразование может означать приведение дат к одному виду, объединение записей, удаление повторов или расчёт показателя по согласованным правилам. Само слово не означает, что нужно произвольно менять исходные факты.
ETL: сначала подготовить, потом передать
В условной сети кофеен можно устроить отдельный этап подготовки. Туда поступают сведения о покупках и возвратах. После проверки система рассчитывает нужные показатели и передаёт подготовленные данные в хранилище для отчётов.
Это похоже на доставку набора уже отсортированных документов: получателю остаётся работать с согласованным набором. Но аналогия имеет предел. ETL не запрещает отдельно сохранять исходные данные, а сами преобразования бывают гораздо сложнее сортировки.
В таком маршруте важно заранее решить, какая информация потребуется получателю. Если в готовый набор вошли только итоги по кофейням, вопрос о продажах конкретного напитка потребует дополнительных данных.
ELT: сначала собрать, потом подготовить
В другом варианте сведения из касс и доставки сначала загружаются в хранилище. Уже там их связывают, проверяют и подготавливают для отчётов. Для этого целевая система должна уметь выполнять необходимую обработку.
Microsoft Learn подчёркивает роль вычислительных возможностей целевого хранилища. Перестановка букв сама по себе не создаёт эти возможности.
Для нашей вымышленной сети такой маршрут удобен, если из поступивших данных нужно подготовить несколько разных наборов: продажи по точкам, популярность напитков и возвраты. При этом наличие исходных записей ещё не делает их готовыми для любого сотрудника: нужно определить правила расчёта и доступа.
Что спросить перед выбором
Спор «какой подход современнее» плохо помогает владельцу кофейни. Полезнее описать ограничения конкретной задачи. Вот вопросы, с которых можно начать разговор с командой:
- Какие источники есть и кто отвечает за их данные?
- Нужно ли сохранять подробные исходные записи для новых вопросов?
- Как быстро должен обновляться отчёт?
- Где можно выполнять обработку и какие ресурсы доступны?
- Кто согласует значение показателей и проверяет результат?
Например, ежедневного отчёта о продажах может быть достаточно руководителю. А сотруднику, который следит за наличием товара, нужна другая скорость обновления. Это различие требований важнее красивой аббревиатуры.
Что не решает ни один из подходов
Если два отдела по-разному понимают выручку, перенос преобразования из одного места в другое спор не устранит. Сначала придётся договориться, учитываются ли доставка, скидки и возвраты. То же касается повторных заказов и опоздавших сведений.
Вернёмся к условному заказу на 500 рублей, который оказался в двух источниках. Итог 1 000 рублей будет неверным и в ETL, и в ELT, если никто не предусмотрел распознавание одной и той же покупки. Работа с данными начинается со смысла записей, а устройство маршрута помогает выполнять согласованные правила регулярно.
Именно такие вопросы делают инженерию данных интересной: нужно понимать и системы, и задачу людей, которые будут пользоваться результатом.
Куда двигаться дальше
Разобраться в задачах этой профессии поможет программа Data Engineer для начинающих. Посмотрите, как в ней связаны источники, хранение и обработка данных, и сопоставьте это со своими интересами.
Data Engineer для начинающих
Курс для новичков, которые хотят с нуля освоить Data Engineering и разобраться, как устроена работа с данными в современных компаниях. Вы изучите основные инструменты Data Engineer, научитесь собирать, хранить, обрабатывать и передавать большие объёмы данных, создавать ETL/ELT-процессы и строить надёжные пайплайны. Для старта не требуется опыт работы в Data Engineering — обучение выстроено от базовых тем к более сложным и сопровождается практическими заданиями.