
Apache Airflow - 기초
DAG, operator (Bash, Python, SQL), 스케줄링, 태스크 의존성, Airflow UI, connection, variable, trigger rule
1Apache Airflow에서 DAG란 무엇입니까?
Apache Airflow에서 DAG란 무엇입니까?
답변
DAG (Directed Acyclic Graph)는 의존성과 관계로 구성된 태스크의 모음으로, 완전한 워크플로우를 나타냅니다. 비순환적이라는 것은 의존성 그래프에 루프가 있을 수 없음을 의미하며, 이는 각 태스크가 실행당 정확히 한 번 실행됨을 보장합니다. DAG는 태스크가 언제 어떻게 실행되어야 하는지 정의하지만, 구체적으로 무엇을 하는지는 정의하지 않습니다.
2Scheduler가 실행 스케줄링을 시작하는 날짜를 정의하는 DAG 파라미터는 무엇입니까?
Scheduler가 실행 스케줄링을 시작하는 날짜를 정의하는 DAG 파라미터는 무엇입니까?
답변
start_date 파라미터는 Airflow가 DAG 실행 스케줄링을 시작하는 날짜를 정의합니다. 이 날짜는 schedule_interval과 결합하여 data interval을 결정하는 데 사용됩니다. 중요한 점: start_date가 과거이면, catchup=False가 설정되지 않은 한 Airflow는 놓친 실행을 따라잡기 위해 backfill을 트리거할 수 있습니다.
3Airflow DAG에서 Python 함수를 실행하려면 어떤 operator를 사용해야 합니까?
Airflow DAG에서 Python 함수를 실행하려면 어떤 operator를 사용해야 합니까?
답변
PythonOperator를 사용하면 Airflow DAG에서 Python callable 함수를 실행할 수 있습니다. 함수는 python_callable 파라미터를 통해 전달되며 op_args (리스트) 또는 op_kwargs (딕셔너리)를 통해 인수를 받을 수 있습니다. PythonOperator는 사용자 정의 Python 코드를 실행하기 위한 큰 유연성을 제공하기 때문에 가장 일반적으로 사용되는 operator 중 하나입니다.
task_b가 task_a 후에 실행되도록 두 태스크 task_a와 task_b 사이의 의존성을 어떻게 정의합니까?
자정에 매일 실행을 나타내는 cron 표현식은 무엇입니까?
+17 면접 질문