Airflow
Airflow Configure
  • 웹 서버
  • 스케줄러
  • 워커
  • 메탕 데이터 데이터베이스
    • Sqlite가 기본으로 설치 된다.
  • 큐 (다수서버 구성인 경우에만 사용됨)
    • 이 경우 Executor가 달라진다.

Airflow 구성

  • 스케줄러는 DAG들을 워커들에게 배정하는 역할을 수행
  • 웹 UI는 스케줄러와 DAG의 실행 상황을 시각화해줌
  • 워커는 실제로 DAG를 실행하는 역할을 수행
  • 스케줄러와 각 DAG의 실행결과는 별도 DB에 저장된다.
    • 기본으로 설치되는 DB는 SQLite
    • 실제 프로덕션에서는 MySQL이나 Postgres를 사용해야 한다.

Airflow 스케일링 방법

  • 스케일 업 (더 좋은 사양의 서버 사용) -> 관리는 쉽지만 언젠간 한계에 도달
  • 스케일 아웃 (서버 추가) -> 관리가 어려워진다.

Executors?

  • Sequential Executor
  • Local Executor
  • CeleryExecutor
  • Kubernetes Executor
  • CeleryKubernetes Executor
  • Dask Executor

Airflow Connections

  • 호스트 이름, 포트 번호, 계정 정보 등 다른 시스템과 연결 관련 정보를 저장하는데 사용
  • 장점
    • 소스 코드내에 이런 민감한 정보를 하드코딩할 필요가 없음
    • 관련 정보들을 한 군데서 관리할 수 있기에 편리 (Variables와의 차이점)
      • Snowflake 연결 정보의 경우 Variable로 관리하면 3개가 필요
      • Connection으로 관리하면 하나에 다 들어감 (뒤에서 셋업)