🔹 Планирование ETL: расписания и зависимости 🔹 Как запускать ETL-пайплайн по расписанию и учитывать зависимости? 🔸 Суть: нужны регулярные запуски, чтобы данные были свежими, и контроль зависимостей, чтобы задачи не перекрывались и не приводили к неконсистентности данных. Без этого — дубли, гонки и неполные загрузки.

🔸 cron — это расписание по времени. Пример: 0 2 * * * запускает в 02:00. Подходит для простой периодичности, но cron не знает о порядке задач и не управляет retry.

🔸 DAG (Directed Acyclic Graph — направленный ацикличный граф) моделирует зависимости между задачами. Airflow использует DAGы: он ставит задачи в очередь, следит за состоянием, делает ретраи и сенсоры, умеет backfill.

from airflow import DAG from airflow.operators.bash import BashOperator from datetime import datetime

with DAG('etl', start_date=datetime(2023,1,1), schedule_interval='0 2 * * *') as dag: extract = BashOperator(task_id='extract', bash_command='echo extract') transform = BashOperator(task_id='transform', bash_command='echo transform') load = BashOperator(task_id='load', bash_command='echo load') extract >> transform >> load

🔸 Практика: для простых одношаговых задач — cron; для pipeline с зависимостями — Airflow/DAG; задавайте catchup=False и max_active_runs=1, чтобы избежать накладок.

📚 cron для простого расписания, DAG+Airflow для контроля зависимостей и надёжности.

#CODERIKK #Etl #Junior

➡️ Мы в Telegram - Сетке - Дзен Буду рад вашей реакции здесь⬇️


В этом посте были ссылки, но мы их удалили по правилам Сетки

🔹 Планирование ETL: расписания и зависимости
🔹 Как запускать ETL-пайплайн по расписанию и учитывать зависимости?
🔸 Суть: нужны регулярные запуски, чтобы данные были свежими, и контроль зависимостей, ч... | Сетка — социальная сеть от hh.ru