Airflow 운영과 대안프로덕션 사용을 위한 Airflow 환경 설정airflow.cfg 경로 : /var/lib/airflow/airflow.cfgcore 섹션의 dags_folder가 DAG들이 있는 디렉터리가 되어야 함 (/var/lib/airflow/dags)dag_dir_list_interval : dags_folder를 Airflow가 얼마나 자주 스캔하는지 명시 (초 단위)Airflow Database기본적으로 세팅되는 Sqlite는 테스트로도 사용 불가보통 Postgres or MySQL을 사용DB 변경 시 core 섹션의 sql_alchemy_conn 설정 필요SequentialExecutor 사용 XSqlite일 경우에만 SequentialExecutor가 의미가 있음다른 DB를 사용..
이전에 인프라의 모든 자동화를 마치고 결과 분석을 위해 시간을 들여 데이터를 수집하였다. 이번에는 마지막으로 수집된 데이터를 바탕으로 Preset 차트를 분석해 볼 것이다. [개인 프로젝트] FC Online 공식 경기 분석 (8) - Preset Dashboard, 자동화이전에 S3의 csv 파일을 Snowflake의 테이블로 COPY하는 작업을 자동화하였다. 이번에는 Preset Dashboard를 제작하고, Snowflake의 Analytics 테이블 데이터를 일정 시간마다 가져오도록 할 것이다. [개인 프로sanseo.tistory.com결과 분석Snowflakeraw_data 테이블 row 수테이블의 컬럼이 많아져 분리해 놓은 것이기 때문에 모두 같아야 정상적으로 데이터가 수집된 것이다. 모두 ..
Airflow 기타 기능Airflow의 가장 기본적인 개념인 DAG와 더불어 DAG를 더 효과적으로 관리할 수 있는 Sensor, Trigger Rules, Task Grouping, Dynamic DAG에 대해 알아보자.DAG (Directed Acyclic Graph)DAG 개념Airflow에서 ETL을 부르는 별칭DAG는 하나 이상의 Task로 구성실행 방법Web UI : airflow 웹에 접속해 원하는 DAG를 직접 TriggerScheduler Shelldocker ps로 airflow sheduler의 container ID 혹은 image 이름 확인docker exec -it "container ID 혹은 image 이름" sh로 Scheduler Shell 접속airflow dags te..
Airflow의 기타 기능Dag Dependencies (1)DAG를 실행하는 방법주기적 실행 : Schedule로 지정DAG Dependencies : 다른 DAG에 의해 TriggerExplicit Trigger (TriggerDagOperator) : DAG A가 DAG B를 Trigger, A가 끝나면 B를 Trigger Reactive Trigger (ExternalTaskSensor) : DAG B가 DAG A의 Task 종료를 기다림, A는 이 사실을 모름ExternalTaskSensor는 사용 조건이 까다로워 실수하기 쉽기 때문에 안 쓰는 방향으로 가는 게 좋음알아두면 좋은 상황에 따라 다른 Task 실행 방식BranchPythonOperater : 조건에 따라 다른 Task로 분기La..