Airflow Docker 환경설정
Summary 테이블 구현
Slack 연동하기
Docker 사용해 Airflow 실행 시 Variables, Connections 등의 환경설정 값은 docker-compose.yml에서 아래와 같이 정의
x-airflow-common:
&airlfow-common
...
environment:
&airflow-common-env
AIRFLOW_VAR_DATA_DIR: /opt/airflow/data
AIRFLOW_CONN_TEST_ID: test_connection
DAG 코드도 Airflow Image로 만들어 관리하는 것이 깔끔함
CTAS 부분을 별도의 환경설정 파일로 분리 가능
config 폴더 생성 후 Summary 테이블별로 하나의 환경설정 파일 생성
Python dictionary 형태로 저장하기 위해 .py 확장자로 생성
{
'table': 'mau_summary',
'schema': 'XXX',
'main_sql': """SELECT ...;""",
'input_check': [],
'output_check': [],
}
DAG 실행 중 에러 발생 시 슬랙 워크스페이스 채널로 메시지 전송
해당 워크스페이스에 Incoming Webhooks App 생성
연동을 위한 함수(plugins/slack.py)를 생성하고, 이를 태스크에 적용되는 dafault_args의 on_failure_callback에 지정
from plugins import slack
...
default_args = {
'on_failure_callback': slack.on_failure_callback,
}