Короткий ответ
ETL означает Extract, Transform, Load: извлечь данные, преобразовать их и загрузить подготовленный результат в целевую систему.
Как это работает подробнее
На этапе извлечения читают БД, API или файлы. Затем данные очищают, приводят к типам, дедуплицируют и рассчитывают производные поля. После проверок результат записывают в DWH.
- Extract. Получение полного или инкрементального набора из источника.
- Transform. Проверки качества, стандартизация и применение бизнес-правил.
- Load. Запись подготовленных данных с контролем количества строк и ошибок.
Пример кода
etl_flow.txt
Extract: read orders changed after last_success_at
Transform: cast types, deduplicate, calculate total_amount
Load: write validated rows to warehouse.fact_ordersЧто использовать на практике
- Храните контрольную точку успешной загрузки и журналируйте количество строк на каждом этапе.
- Некорректные записи помещайте в карантин, если их можно обработать отдельно без остановки всего потока.
Подводные камни
- Потеря строк. Фильтрация без журналирования делает расхождения необъяснимыми.
- Неатомарная загрузка. Сбой посередине может оставить частично обновлённую таблицу.