Variable
- XCom: 특정 DAG / schedule 에서 수행되는 TASK 간에만 공유
(같은 DAG 이라도 어제와 오늘 TASK 간 데이터는 공유 X)
- Variable
- 모든 DAG 이 공유
- airflow 사이트에서 등록 가능
- Admin > variables
- Variable의 key, value 값은 메타 DB의 variable 테이블에 저장됨
전역변수 사용
- Variable 라이브러리 + 파이썬 문법
*from airflow.models import Variable
*→ 주기적인 DAG 파싱 시 Variable.get 개수만큼 DB(메타DB variable 테이블) 연결 → 불필요한 부하 발생
- Jinja template + 오퍼레이터 내부 (권고)
{{var.value.}}
- 협업 환경에서 표준화된 DAG 만들기 위해 사용
- 주로 상수(CONST)로 지정해서 사용할 변수 세팅
- ex) base_sh_dir = /opt/airflow/plugins/shell
base_file_dir = /opt/airflow/plugins/files
담당자 email 주소
# Variable library
var_value = Variable.get("sample_key")
bash_var_1 = BashOperator(
task_id='bash_var_1',
bash_command=f'echo variable: {var_value}'
)
# Jinja Template
bash_var_2 = BashOperator(
task_id='bash_var_2',
bash_command='echo variable: {{var.value.sample_key}}'
)