프로젝트를 진행하면서 정리한 내용입니다.
사실은 다를 수 있습니다.
오류가 있으면 댓글로 알려주세요.
Airflow Dag를 처음 만들었을 때 헷갈렸던 부분이 있었습니다.
작업 및 운영자 전용.
많은 참고 자료에서 작업과 연산자가 혼동되어 원래 개념을 이해하기 어려웠습니다.
아래 코드를 확인해보면 작업 이름이 “update_start”이고 그 안에 BashOperator가 정의되어 있는 것을 확인할 수 있습니다.
우선, Task is in Airflow 기본 실행 단위“DAG에서 실행할 작업의 순서를 표현하기 위해 존재하는 실행 단위”입니다.
이때, 운영자~이다 DAG 및 작업의 빠른 생성을 위한 사전 정의된 작업 템플릿오전.
작업자와 같은 수준에는 센서와 데코레이터가 있습니다.
– 센서~이다 특정 작업이 수행되었는지 여부를 확인하는 데 사용되는 작은 특수 연산자하다.
– 데코레이터“@task”로 사용됩니다.
작업자가 이전에 정의한 작업너는 추측 할 수있다.
즉, Operator의 입장에서 Task는 Task의 올바른 실행을 보장하기 위한 Operator의 Wrapper 또는 Manager이며 사용자는 Operator의 활용을 통해 수행되는 작업에 집중하고 Airflow는 올바르게 수행할 수 있는 작업을 통해 작업을 관리합니다.
.
운영자
- 단일 작업을 수행하는 데 사용됩니다.
- Bash(Bash 스크립트 실행), Python(Python 기능 실행)과 같은 일반적인 작업을 실행합니다.
- 다음과 같은 특수 작업을 수행합니다.
B. 이메일(이메일 전송용) 및 simpleHTTP(HTTP 엔드포인트 호출). - DAG는 여러 연산자의 실행을 오케스트레이션하는 역할을 합니다.
- 연산자 시작 및 중지, 연산자 완료 시 다음 순차 작업 시작, 연산자 간의 종속성 보장.
- Bash(Bash 스크립트 실행), Python(Python 기능 실행)과 같은 일반적인 작업을 실행합니다.
bash 연산자
: bash 셸 스크립트를 실행하는 연산자입니다.
- Linux 명령 및 프로그램을 실행할 수 있습니다.
# airflow.operators.bash
class BashOperator(
bash_command: str,
env: Optional(Dict(str, str)) = None,
output_encoding: str = "utf-g",
skip_exit_code: int = 99,
cwd: str = None,
**kwargs)
유형 | 기본 | 내용 설명 | |
bash_operator | 거리 | 실행할 Bash 명령 | |
아마도 | 선택 사항(받아쓰기(str, str)) | 없음 | dict 형식으로 환경 변수 전달 |
output_encoding | 거리 | “utf-8” | bash 명령 출력을 위한 인코딩 방법 |
skip_exit_code | 내부 | 99 | 명령의 결과인 exit_code로 성공을 확인합니다. 없음의 경우 0 이외의 값은 오류로 간주됩니다. |
cwd | 거리 | 없음 | 명령이 실행되는 경로를 지정합니다. 없는 경우 임시 경로에서 실행합니다. |
proside_context | 부울 | 잘못된 | true로 설정하면 태스크 인스턴스의 속성을 kwargs로 사용할 수 있습니다. BashOperator에 정의되어 있습니다. |
참조
https://airflow.apache.org/docs/apache-airflow/stable/core-concepts/tasks.html
작업 – Airflow 설명서
airflow.apache.org
airflow.operators – 기류 문서(apache.org)
airflow.operators – 기류 문서
airflow.apache.org