Airflow 기초 (2)

록스블로그·2023년 11월 18일
0

Operator

  • 모든 Operator는 Base Operator에서 상속되며 Task의 단위이다.

Tasks

  • DAG 에서 Operator를 사용하려면 Task로 인스턴스화 해야한다. 태스크는 DAG Context 내에서 Operator의 task를 실행하는 방법을 결정한다.
  • 즉 Operator 클래스의 정의를 실제 가능한 작업!(TASK)로 만들어야 한다는 것이다 여기서 들어가는게 결국 argument나 변수들이 있을 수 있다.

ex)

	templated_command = dedent(
    	"""
        {% for i in range(5) %}
        	echo "{{ ds }}"
            echo "{{ macros.ds_add(ds, 7)}}"
        {% endfor %}
        """
    )

	t3 = BashOperator(
    	task_id = "templated",
        depends_on_pas = False,
        basch_command=templated_command,
    )

Jinja Template

  • 파이프라인 작성자에게 일련의 기본 제공 매개 변수 및 매크로를 제공하며 작성자가 자체 매개변수 매크로 및 템플릿을 정의할 수 있다.
  • 위의 코드에서 {{ ds }}도 진자에서 가져온 변수이며 기본 제공되는 변수들은
    https://airflow.apache.org/docs/apache-airflow/stable/templates-ref.html
    에서 확인 가능하며 {{ ds }} 는 logical_date를 찍어내는 변수이다.
profile
어려움에 성장하는 데이터 엔지니어

0개의 댓글