본문 바로가기

Data Engineering/Airflow4

[Airflow] docker Compose로 Celery Executor 시작하기 필요 서비스 redis Worker Node가 실행할 작업을 인메모리로 가져오는 Dictionary(key-value) 구조의 DBMS 비밀번호를 redispass로 설정 postgres Airflow의 메타데이터 DMBS 데이터를 유지하고 싶다면 volumn과 관련된 코드를 environment를 추가해주어야 함 PGDATA : container 내부에서 데이터를 저장하는 디렉터리 ./mnt/postgres : 현재 폴더(.)의 mnt/postgres 디렉토리와 PGDATA를 바인드 마운트하여 로컬 파일시스템에 저장 될 수 있도록 저장 - PGDATA=/var/lib/postgresql/data/pgdata - ./mnt/postgres:/var/lib/postgresql/data/pgdata webs.. 2023. 11. 11.
[Airflow] Local Executor Local Executor를 먼저 학습하는 이유 Sequential Executor는 병렬처리가 불가능하고 Celery Executor나 Kubernetes Executor는 여러 대의 서버가 필요하다. 프로덕션 환경에서는 확장성이 매우 중요한 요소이고, 당연히 멀티 노드 아키텍처에서 분산 실행 될 수 있는 Executor를 사용하는 것이 맞다. 다만, 기본이 되는 Local Executor를 통해 개념을 이해하고 단일 머신에서 간단하게 학습할 수 있다. 다중 프로세스를 병렬처리 Local Executor는 단일 서버에서 여러 프로세스를 돌릴 수 있다. airflow의 기반이 되는 언어는 Python으로, 내장 병렬처리 모듈인 multiprocessing을 활용한다. 여러 task를 동시 실행 할 수 있.. 2023. 7. 2.
[Airflow] PostgresOperator PostgresOperator 시작 환경 airflow에서 PostgresOperator를 사용하여 postgresql에 일정 주기로 쿼리를 수행하도록 스케줄링을 걸어 보았다. 이 글은 그 과정을 정리하였고, 그 과정을 풀어내고자 한다. 먼저 내 머신의 로컬 폴더 구조는 다음과 같다. 에어플로우를 한다면 처음에 $AIRFLOW_HOME 환경변수를 정의하고 그 안에 dags 폴더를 만들게 되는 데, 내 dags 폴더 안에는 총 4개의 dag 모듈이 있고 sql이라는 스크립트를 모아둔 폴더를 만들었다. PostgresOpeator 연동하기 PostgresOperator를 사용하려면 먼저 postgresSQL DBMS와 airlfow provider가 깔려 있어야 한다. postgresSQL 설치는 이 글에서.. 2023. 7. 1.
[Airflow] SubDAG로 반복 패턴 최소화하기 subDAG Use Case SubDAG Description task를 그룹핑하여 airflow Web UI에서 시각적으로 보여주게 만드는 task collection tasks들을 포함한 상자를 굵은 테두리는 식별 가능 실제로는 아무것도 변경되지 않고, DAG의 종속성은 여전히 유지되며 Web UI에서 시각적인 변화만 제공 DAG Object를 생성하기 위해서 DAG 객체를 반환하는 factory method를 코딩 이 SubDag를 기본 DAG에 연결하기 위해 SubDagOperator를 인스턴스화 SubDag는 여전히 기본 DAG에서 관리하므로 유지해야 함 (예기치 않은 동작 발생 가능성이 있기 때문) SubDagOperator의 상태와 작업 자체는 독립적(성공으로 표시된 SubDagOperato.. 2023. 6. 26.