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 с продюсерами.