Airflow XCom
2022. 11. 30. 01:59ㆍBook/Apache Airflow 기반의 데이터 파이프라인
728x90
반응형
XCOM
Xcom은 DAG 내의 task 사이에서 데이터를 전달하기 위해서 사용되는데, Xcom은 DAG내에서만 공유할 수 있는 변수라는 점이다. Xcom을 이용해 데이터를 전달하는 경우 DataFrame이나 많은 양의 데이터를 전달하는 것은 지원하지 않으며, 소량의 데이터만 전달하는 것을 권장한다.
ti = task_instance 로 축약 가능
XCOM 사용 방법
- PythonOperator return 값을 이용한 Xcom 사용
- push-pull을 이용한 Xcom 사용
- Jinja templates을 이용한 Xcom 사용
def _player_data_write(**context):
headers = {'Authorization' : '='}
player_url = "<https://static.api.nexon.co.kr/fifaonline4/latest/spid.json>"
data = requests.get(player_url, headers=headers)
player = data.json()
player_data =[]
season_class = context['ti'].xcom_pull(task_ids='season_class_crolling')
for p in player:
player_data.append({'spid' : p["id"], 'name' : p["name"], 'season_class_name' : season_class[str(int(p["id"])//1000000)]})
return player_data
player_data_write = PythonOperator(
task_id="player_data_write",
python_callable=_player_data_write,
dag=dag
)
728x90
반응형
'Book > Apache Airflow 기반의 데이터 파이프라인' 카테고리의 다른 글
Airflow 의존성 (0) | 2022.11.30 |
---|---|
Airflow 기본적인 Operator (0) | 2022.11.14 |
Airflow 스케줄링 (0) | 2022.11.14 |
Airflow 시작 (0) | 2022.09.03 |
Airflow 소개 (0) | 2022.09.02 |