Airflow로 데이터 파이프라인 구축하기
Volker Janz
Senior Developer Advocate at Astronomer
@task.bash
def export_data():
return "cp /data/sales.csv /export/sales_{{ ds }}.csv"
{{ ds }}는 논리적 날짜를 YYYY-MM-DD 형식으로 렌더링합니다bash_command, sql 등 템플릿 적용 가능한 필드에서만 동작합니다
1회 실행 (3월 31일):
2회 실행 (3월 31일 재실행):

staged_rows = SQLExecuteQueryOperator( task_id="get_staged_rows", conn_id="duckdb_default", sql="SELECT * FROM staging WHERE date = '{{ ds }}'", )load = SQLInsertRowsOperator( task_id="load_sales", conn_id="duckdb_default", table_name="sales", columns=["date", "product", "amount"], preoperator="DELETE FROM sales WHERE date = '{{ ds }}';", rows=staged_rows.output, )
$$
UPSERT 또는 MERGE 방식도 사용할 수 있습니다


Airflow로 데이터 파이프라인 구축하기