Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 컴퓨터 네트워크
- 가상환경
- 정리
- 데이터 엔지니어링
- sql
- AWS
- 데브코스
- linux
- 컴퓨터네트워크
- 운영체제
- 종류
- Docker
- dockerfile
- Django
- airflow.cfg
- Go
- TIL
- TCP
- PYTHON
- 파이썬
- S3
- 데이터베이스
- 데이터 파이프라인
- HADOOP
- redshift
- 자료구조
- airflow
- 데이터엔지니어링
- http
- 데이터 웨어하우스
Archives
- Today
- Total
홍카나의 공부방
[Airflow] python operator - 템플릿 사용이 가능한 파라미터 본문
https://airflow.apache.org/docs/apache-airflow/stable/_api/airflow/operators/python/index.html
파이썬 오퍼레이터 docs를 들어가보면
아래와 같이 (templated)라고 붙은 Parameter가 있는 것을 볼 수 있다.
해당 키워드가 붙으면, Jinja Template과 같은 템플릿을 사용할 수 있는 파라미터다.
op_args, op_kwargs는 (templated) 태그가 붙어있지 않지만,
아래 template_fields에 해당 파라미터들이 포함되어 있기 때문에, 사실상 템플릿을 사용할 수 있다.
다음은 예시 코드다.
from airflow import DAG
import pendulum
import datetime
from airflow.operators.python import PythonOperator
with DAG(
dag_id = 'dags_python_template',
schedule = "0 15 * * *",
start_date = pendulum.datetime(2023, 11, 1, tz='Asia/Tokyo'),
catchup = False
) as dag:
def python_function1(start_date, end_date, **kwargs):
print(start_date)
print(end_date)
python_t1 = PythonOperator(
task_id = 'python_t1',
python_callable=python_function1,
op_kwargs = {'start_date':'{{data_interval_start | ds}}', 'end_date' : '{{data_interval_end | ds}}'}
)
그리고 파이썬 오퍼레이터는 **kwargs에서 원하는 템플릿을 지정하여 사용할 수 있다.
task decorator를 이용하여 사용하면 되는데, 다음 예시코드를 참조하면 된다.
@task(task_id='python_t2')
def python_function2(**kwargs):
print(kwargs)
print('ds:' + kwargs['ds'])
print('ts:' + kwargs['ts'])
print('data_interval_start: ' + str(kwargs['data_interval_start']))
print('data_interval_end: ' + str(kwargs['data_interval_end']))
print('task instance: '+ str(kwargs['ti']))
python_task_2 = python_function2()
반응형
'Data Engineering > Airflow' 카테고리의 다른 글
[Airflow] 외부 모듈에서 라이브러리 No module 문제 해결하기 (0) | 2023.12.16 |
---|---|
[Airflow] python airflow library 설치하기 (0) | 2023.12.16 |
[Airflow] Task Decorator 간단 사용법 (0) | 2023.11.16 |
[Airflow] Python 외부 함수 가져와서 사용하기 (0) | 2023.11.16 |
[Airflow] 쉘 스크립트(Shell) 실행하기 (8) | 2023.11.12 |