Airflow metaDB 살펴보기

BAO.DE·2025년 9월 18일

Apache Airflow

목록 보기
14/20

Airflow metaDB란?

Airflow 자체가 "워크플로우 실행 스케줄러"라서, 어떤 DAG이 언제 실행됐는지, 태스크 상태는 무엇인지 등을 기록하고 조회할 필요가 있다.

이 모든 정보를 저장하는 DB가 Metadata Database입니다.

운영 환경

PostgreSQL

MySQL/MariaDB
일반적으로 PostgreSQL을 제일 많이 사용한다.
개발/테스트용: SQLite (기본 제공, 동시성 약함)

Airflow Metadata DB 저장 항목

구분저장 내용예시
DAG 정보어떤 DAG이 존재하는지, DAG 버전/구조, 스케줄러가 인식한 DAG rundag_id, DAG 파일 버전, DAG 구조 그래프, dag_run 기록
Task Instance 정보태스크 실행 상태(success, failed, running, skipped), 시작/종료 시간, 로그 위치, 실행 횟수task_id, state, start_date, end_date, 로그 경로, 재시도 횟수
스케줄링 정보DAG이 언제 트리거 되었는지, 다음 실행 예정 시간execution_date, next_run_date, manual/cron trigger 여부
연결 및 설정 정보Connection(외부 DB, API, S3 등), Variables(사용자 정의 변수), XComs(태스크 간 데이터 전달)conn_id(Postgres, MySQL), API Key, threshold 값, XCom JSON 데이터

Meta DB 접속확인

docker compose 띄우고

 airflow db check


[2025-09-19T09:24:30.037+0900] {db.py:1812} INFO - Connection successful.


 airflw db shell ( sqllte 직접 붙기 가능 )

SQLite version 3.39.5 2022-10-14 20:58:05
Enter ".help" for usage hints.
sqlite> 



기본 테이블 정보

테이블기능주요 컬럼예시
dagDAG 정의 정보dag_id, fileloc, is_paused'my_dag', 활성(0)
dag_runDAG 실행 이력dag_id, execution_date, state, run_id'my_dag', '2025-09-19 09:00', 'success'
task_instanceTask 실행 상태dag_id, task_id, execution_date, state, start_date, end_date'task_1', 'success'
logTask/DAG 실행 로그dag_id, task_id, execution_date, event, message'Task started successfully.'
connection외부 시스템 연결 정보conn_id, conn_type, host, login, password, port, schema'my_postgres', 'postgres'
variableDAG에서 참조 가능한 Key-Value 변수key, val'env' = 'prod'
xcomTask 간 데이터 전달dag_id, task_id, execution_date, key, value'result' = 'Hello World'

0개의 댓글