일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- kinesis
- RDS
- XCOM
- executor
- SecretsManager
- Task
- celery
- Concept
- testing
- boto3
- S3
- dagrun
- credentials
- Git
- pipeline
- Data Firehose
- mysql
- github actions
- airflow
- lambda
- TaskFlow
- authoring
- Scheduling
- ci/cd
- DAG
- Operator
- AWS
- git book
- sqs
- dynamic task mapping
- Today
- Total
목록Airflow (25)
CS

Airflow Tasks Task 간 관계(의존성) Task Instance Timeout SLA Exception 좀비/언데드 Task Task별 Executor 구성 Task는 Airflow에서의 실행 기초 단위입니다. task는 DAG에 포함되고, 실행 순서를 나타내기 위해 task 간 upstream/downstream 의존성을 갖습니다. task에는 세 종류가 있습니다. - Operator(오퍼레이터): 사전 정의된 task 템플릿으로, DAG의 대부분을 차지합니다. - Sensor(센서): 오퍼레이터의 특별한 서브클래스로, 외부 이벤트가 일어날 때까지 기다립니다. - TaskFlow 데코레이터 @task: 자작 파이썬 함수를 task로 만듭니다. 위 모두는 BaseOperator의 서브클래스입..
Airflow DAG Runs DAG Run은 DAG의 인스턴스 객체를 말합니다. DAG가 실행될 때 DAG run이 생성되고 그 안에 있는 task들이 실행됩니다. DAG run의 상태는 그 안에 있는 task의 상태를 따릅니다. 하나의 DAG에 기반한 여러 DAG run이 동시에 독립적으로 실행될 수 있습니다. DAG Run 상태 Cron 프리셋 Data Interval DAG 재실행 Catchup Backfill Task 재실행 외부 트리거 기타 DAG Run 상태 DAG run의 상태는 DAG 실행이 끝났을 때 결정됩니다. DAG 내 모든 task의 상태가 더 이상 변하지 않게 되었을 때(success, failed, skipped 등) DAG run에 상태가 부여됩니다. 이는 DAG의 잎 노드의..

Airflow DAGs 문서에 따라 DAG를 알아보겠습니다. DAG 정의Task 의존성DAG 불러오기DAG 실행DAG에 연결Default ArgumentsFlow 제어DAG 시각화TaskGroupDAG & Task 설명문SubDAGTaskGroup과 SubDAGDAG 패키징.airflowignoreDAG pausing, deactivation, deletion DAG (Directed Acyclic Graph)는 Airflow의 핵심으로, Task를 모아 의존성과 관계에 따라 정렬하여 어떻게 실행되어야 하는지 밝힙니다. 또한 대부분의 경우 "내일부터 5분마다" 혹은 "2023년 1월 1일부터 매일" 등 실행 스케쥴을 정합니다.DAG 자체는 실제로 어떤 작업을 실행하는지에는 관여하지 않습니다. 작업 순서..

Airflow 홈의 Core Concepts - Architecture Overview를 따라 Airflow의 전반적인 구조를 알아보겠습니다. Airflow는 워크플로를 만들고 실행할 수 있는 플랫폼입니다. Airflow에서 워크플로는 DAG라는 그래프로 표현되고, 워크플로 내 작업 하나하나는 Task라 불립니다. DAG는 Task 간 종속성과 실행 순서, 재실행을 지정합니다. Task는 데이터 가져오기나 분석, 다른 시스템 작동 등 작업 내용을 명시합니다. Airflow는 보통 다음 요소들로 구성됩니다. scheduler: 예정된 워크플로를 트리거하고 Task를 executor로 보내 수행하게 합니다. executor: task를 실행합니다. Airflow 기본 설정에서는 scheduler에 있는 모든..

Airflow 사이트의 Building a Running Pipeline 문서를 따라인터넷에 있는 데이터를 받아 로컬 데이터베이스에 입력하는 파이프라인을 만드는 과정을 알아보겠습니다. MySQL 설치 및 여러 설정위 문서에서는 docker에서 airflow를 실행하였는데, docker는 복잡하다고 생각해서 docker 없이 진행하였습니다.또한 해당 문서에서는 docker에 포함된 postgreSQL을 썼는데, 저는 MySQL이 더 익숙하기 때문에 우선 MySQL을 설치하겠습니다.# MySQL 설치sudo apt-get install mysql-server# MySQL 실행sudo systemctl start mysql# Airflow MySQL 패키지 설치pip install apache-airflow..
Airflow에서 TaskFlow API(함수에 @dag, @task 등 데코레이터를 붙이는 방식)를 사용하면, 오퍼레이터를 직접 생성하는 기존 방식보다 코드를 줄이고 XCom 변수를 추상화하는 등 기존 방식보다 간단하게 DAG를 정의할 수 있습니다. 그러한 TaskFlow의 여러 기능을 알아보겠습니다. (Airflow 페이지의 Working with TaskFlow 문서에 기반합니다.) 목차: 누르면 해당 위치로 이동합니다. - 데코레이터한 Task 재사용 - PythonVirtualenvOperator @task.virtualenv: 각 Task마다 동적으로 Virtualenv 생성 - ExternalPythonOperator @task.external_python: 이미 종속성을 설치한 파이썬 환경..
Airflow 2.0부터 TaskFlow API가 도입되어 해당 방식으로 DAG를 정의할 수 있습니다.TaskFlow API를 사용하면 DAG나 오퍼레이터 객체를 생성할 필요 없이, Task를 구현한 함수에 필요한 데코레이터만 붙이면 DAG를 만들 수 있어 문법이 간단해집니다.(Airflow 페이지의 Working with TaskFlow 문서를 따릅니다.) TaskFlow로 정의된 DAG예제 스크립트를 보며 TaskFlow API의 형식을 알아보겠습니다.스크립트는 airflow.example_dags.tutorial_taskflow_api.py입니다.DAG 인스턴스 생성import jsonimport pendulumfrom airflow.decorators import dag, task@dag( ..

DAG는 Airflow에서 워크플로를 가리키는 용어라고 할 수 있습니다. 반면 Task는 Airflow에서 실제로 수행할 작업을 가리키는 용어입니다.Directed Acyclic Graph(유향 비순환 그래프)의 준말인데, 어떤 방향으로 향하고(유향) 다시 돌아갈 수는 없는(비순환) 그래프입니다. 말은 어렵지만, 생각해보면 많은 작업들이 이렇게 진행되죠. DAG의 실체는 파이썬으로 작성되는 일종의 설정 파일이라고 할 수 있습니다. 여기에 작업 주기 등을 정하고 Task를 명시하여 이를 실행하게 만듭니다. DAG 자체가 어떠한 작업을 의미하는 것은 아닙니다. DAG 예제 중 tutorial.py를 보며 DAG에 대해 알아보도록 하겠습니다.(Airflow 페이지의 Fundamental Concepts 문서를..