728x90
반응형
Operator란?
Operator = Task를 “어떻게 실행할지” 정의한 템플릿
DAG 안에서 실제 작업 내용을 담당하는 실행 단위
Operator 큰 분류 (이거부터 기억)
Airflow Operator는 크게 4가지로 나눠서 보면 이해가 쉬워 👇
Action Operator
Transfer Operator
Sensor Operator
Utility Operator
1️⃣ Action Operator (실제 작업 실행)
👉 “무언가를 실행한다”
🔹 PythonOperator
- Python 함수 실행
PythonOperator(
task_id="run_python",
python_callable=my_func
)
✔ 간단한 로직
✔ API 호출
✔ 파일 처리
🔹 BashOperator
- 쉘 명령 실행
BashOperator(
task_id="run_bash",
bash_command="echo hello"
)
✔ 스크립트 실행
✔ dbt run
✔ spark-submit
🔹 SQL 계열 Operator
- DB에서 SQL 실행
예:
- BigQueryInsertJobOperator
- PostgresOperator
- MySqlOperator
✔ 테이블 생성
✔ 데이터 적재
✔ 집계 쿼리
🔹 SparkSubmitOperator
- Spark Job 실행
✔ 대용량 배치 처리
✔ PySpark ETL
2️⃣ Transfer Operator (데이터 이동)
👉 “A → B로 데이터를 옮긴다”
🔹 예시
- S3ToRedshiftOperator
- GCSToBigQueryOperator
- MySqlToGCSOperator
✔ 파일 이동
✔ 테이블 간 적재
👉 순수 이동용 (변환 로직 거의 없음)
3️⃣ Sensor Operator (기다리는 역할)
👉 “조건이 만족될 때까지 대기”
🔹 TimeSensor
- 특정 시간까지 대기
🔹 ExternalTaskSensor
- 다른 DAG/task 끝날 때까지 대기
🔹 FileSensor
- 파일 생길 때까지 대기
✔ 파이프라인 간 의존성
✔ 이벤트 기반 처리
“끝날 때까지 아무것도 안 하고 기다림”
4️⃣ Utility / Control Operator (흐름 제어)
👉 “실행 흐름을 제어”
🔹 DummyOperator (EmptyOperator)
- 아무 것도 안 함
- 구조 정리용
start >> task1 >> end
🔹 BranchPythonOperator
- 조건 분기
조건 → A 실행
조건 → B 실행
✔ if / else 로직
🔹 ShortCircuitOperator
- 조건 false면 이후 task 전부 스킵
✔ 데이터 없을 때 파이프라인 중단
요약 표 (블로그용 핵심)
분류역할대표 Operator
| Action | 작업 실행 | Python, Bash, SQL |
| Transfer | 데이터 이동 | S3ToRedshift |
| Sensor | 조건 대기 | FileSensor |
| Utility | 흐름 제어 | Branch, Dummy |
실무에서 제일 많이 쓰는 조합
PythonOperator ← 로직
BashOperator ← dbt / script
SQL Operator ← DW 작업
Sensor ← 의존성 관리
👉 이 4개만 제대로 써도 80% 커버
자주 나오는 면접 한 줄 답변 🎤
Operator는 Airflow에서 Task를 실제로 수행하는 실행 단위이며,
Python·Bash·SQL·Sensor 등으로 작업 유형을 나눠 관리한다.
한 문장 요약 (블로그 마무리)
Airflow Operator는 “무엇을 언제 실행할지”가 아니라,
“그 작업을 어떻게 실행할지”를 정의하는 구성요소다.
728x90
반응형
'DataEngineering > Airflow' 카테고리의 다른 글
| Airflow란? (0) | 2026.02.01 |
|---|