Airflow Study15- 전역변수

박성현·2024년 6월 7일
0

Airflow

목록 보기
22/28

Xcom : 특정 dag, 특정 schedule에 수행되는 task간에만 공유 가능 ?
-> dag안에 task들끼리 공유, task수행 xcom값이 업데이트 됨으로 과거 시점에 xcom 값은 알기 어렵다 ? key 값이 동일하기 때문

Variable은 메타 DB에 'Variable' 테이블에 저장됨

사용법

1. Variable 라이브러리 사용

->Variable.get 갯수 만큼 db연결 시켜 불필요한 부하발생
+ 변수값을 사용할 때 'f' 유의 (f-string)

from airflow.models import Variable

var_value = Variable.get('sample_key')

bash_var_1 = BashOperator(
task_id = 'bash_var_1',
bash_command=f'echo variable : {var_value}'
)

2. Jinja 템플릿 사용 ( 사용 권고 !, 스케줄러 부하발생 낮음 )

{{var.value.sample_key}}

bash_var_2 = BashOperator(
task_id = 'bash_var_2',
bash_command='echo var : {{var.value.sample_key}}'    
)

언제 쓸까 ?

협업 환경에서 표준화된 dag을 만들기 위해 주로 사용
주로 상수(CONST)로 지정해서 사용할 변수들 셋팅
1. base_sh_dir = /opt/airflow/plugins/shell
2. base_file_dir =/opt/airflow/plugins/files
3. email, Alert 메시지를 받을 담당자의 email주소 정보 ...

profile
다소Good한 데이터 엔지니어

0개의 댓글