task decorator 3

[Airflow] Python Operator에서 Xcom 사용

1. Xcom이란 무엇일까요? (=Cross Communication) Airflow DAG 안 Task 간 데이터 공유를 위해 사용되는 기술입니다. (ex) Task1의 수행 중 내용이나 결과를 Task2에서 사용 또는 입력으로 주고 싶은 경우가 있을 수 있겠죠? 주로 작은 규모의 데이터 공유를 위해 사용합니다. (Xcom 내용은 메타 DB의 xcom 테이블에 값이 저장됩니다.) 1GB 이상의 대용량 데이터 공유를 위해서는 외부 솔루션 연동이 필요합니다. (AWS S3, HDFS 등) 2. Python 오퍼레이터에서 Xcom 사용하기 크게 두 가지 방법으로 Xcom 사용이 가능한데요, 한 번 살펴보시죠. 1) **kwargs 에 존재하는 ti (task_instance) 객체 활용 예시 코드를 먼저 보..

[Airflow] Python Operator with macros

BashOperator에서도 macro변수를 어떻게 쓸 수 있는지 알아본만큼, 이번 시간에는 PythonOperator에서 macro를 사용하는 방법을 알아보겠습니다. 1. 먼저 PythonOperator에서는 어떤 파라미터가 Template 변수를 지원할까요? 공식문서를 살펴보면, 'template_dict', 'op_args', 'op_kwargs' 가 템플릿을 지원합니다. 저번에는 op_kwargs 를 이용해서 template 변수를 써봤으므로, 이번에는 templates_dict 를 써서 macro변수를 써보겠습니다. Python 오퍼레이터를 사용해 macro변수를 써보는 코드를 작성해보겠습니다. @task(task_id = 'task_using_macros', templates_dict = {'..

[Airflow] @task 데코레이터 사용하기

1. 파이썬 데커레이터 Decorator는 장식하고 꾸미는 것을 의미하는데, 함수를 장식하는 것이라고 이해하시면 됩니다. 원래의 함수를 감싸서(Wrapping) 바깥에 추가 기능을 덧붙이는 방법입니다. ※ 함수를 감싼다는 것이 어떤 의미일까요? 파이썬은 함수 안에 함수를 선언하는 것이 가능하고 함수의 인자로 함수를 전달하는 것이 가능하며 함수 자체를 리턴하는 것이 가능합니다. def outer_func(target_func): # 내부 함수 정의 def inner_func(): print("target 함수 실행 전입니다.") target_func() print("target 함수 실행 후 입니다.") # 내부 함수 리턴 return inner_func 예시를 한 번 들어봅시다. 파이썬 데코레이터를 사용..

반응형