반응형
kkh1902
Steadily
kkh1902
전체 방문자
오늘
어제
  • 분류 전체보기 (178) N
    • DataEngineering (20) N
      • Spark (7) N
      • Airflow (2) N
      • DBT (2) N
      • Architecture (3) N
      • Data Quality (5) N
      • Infra (1) N
    • 🤖 AI (12) N
      • ML (7)
      • DL (0)
      • LLM (5) N
    • 📚 Study (74)
      • DataEngineering (0)
      • Spring (9)
      • Java (2)
      • Html, css (10)
      • JS, JQuery (29)
      • DB (5)
      • DevOps (13)
      • roadmap (2)
      • Architecture (1)
      • Flutter (2)
    • 💻 Computer Science (28)
      • Datastructure (0)
      • Algorithm (2)
      • Design pattern (0)
      • Network (1)
      • DB (13)
      • Operating System (0)
      • Software Engineering (4)
      • CS interview (5)
      • topcit (3)
    • ⚒️ Etc (6)
      • Error (3)
      • Trouble_Shooting (2)
      • Dev_environment (1)
    • 📰 News (24)
      • daily (7)
      • think (17)
    • 📘 Hobby (13)
      • English (13)

블로그 메뉴

  • 📋 이력서
  • ⚡️ 깃허브
  • 태그
  • 방명록

공지사항

인기 글

태그

  • React JS # 2 The Basic of React
  • git stash
  • think #bootstrap을 써야하는 이유
  • React를 배워야하는 이유
  • gitaction
  • db
  • Linear Regression
  • sourcetreee
  • Flutter
  • 소프트웨어 공학 # chapter1
  • React JS # 자습서 # Component와 Props
  • git
  • React # JSX
  • 소프트웨어 공학 #project만들때 중요
  • testcode
  • React JS #자습서
  • Wonder # word
  • SpringBootTest
  • Qr_payment project # CSS 해석 # Basic 맨위 해석
  • junit5

최근 댓글

최근 글

티스토리

250x250
hELLO · Designed By 정상우.
글쓰기 / 관리자
kkh1902

Steadily

DataEngineering/Airflow

Airflow Operator의 종류

2026. 2. 1. 21:17
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
    'DataEngineering/Airflow' 카테고리의 다른 글
    • Airflow란?
    kkh1902
    kkh1902
    1Day 1 Commit 목표 공부한것들 매일 기록하기

    티스토리툴바