advanced

ETL и ELT pipelines

Перемещайте, transform, validate и load data через retryable jobs, idempotency, observability и clear ownership.

ETL извлекает данные из источников, трансформирует в промежуточном слое и загружает в warehouse. ELT сначала грузит сырой landing zone, трансформирует внутри warehouse SQL/dbt — удобно, когда движок warehouse мощный и схемы часто меняются.

Batch: Airflow/Dagster/cron с партиционированными инкрементами, watermark и повторяемыми задачами. Streaming: Kafka/Flink для меньшей латентности с оконными агрегациями и checkpoint состояния.

| Свойство | Зачем | |----------|-------| | Идемпотентность | Безопасный replay после сбоя | | Observability | Счётчики строк, длительность, data quality checks | | Ownership | Ясная команда за поломки схемы | | SLA | Свежесть vs стоимость частых прогонов |

На интервью: нарисуйте пайплайн от app DB до дашборда; как предотвращаете дубликаты фактов при retry; batch nightly vs hourly vs streaming для той же метрики.

Типовые ошибки: тихие partial loads; трансформы без тестов; общие credentials; нет алертов на дрейф row count; связка деплоя пайплайна с app без contract tests.

Компромисс — гибкость трансформаций и compute warehouse (ELT) против заранее очищенных данных и сложности middle tier (ETL).

Чеклист:

  • Определите ETL vs ELT для вашего стека.
  • Спроектируйте идемпотентные загрузки и watermark.
  • Добавьте data quality checks в DAG.
  • Мониторьте SLA свежести и сбои.
  • Задокументируйте schema contracts с продюсерами.