일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- OS
- kubernetes
- EC2
- CVAT
- kubectl
- PostgreSQL
- helm
- docker
- java
- Spring
- Network
- Trino
- aws s3
- MAC address
- tcp
- Python
- JavaScript
- AWS
- CSV
- kubeadm
- Vision
- airflow
- zookeeper
- grafana
- log
- jvm
- Operating System
- Kafka
- ip
- Packet
- Today
- Total
JUST WRITE
What is Airflow? 본문
What is Airflow
Airflow is a platform to programmatically author, schedule and monitor workflow
위 문장이 Apache Airflow 공식 사이트에 게시되어 있는 Airflow 한 줄 소개글이다.
Airflow는 Workflow를 프로그래밍적으로 작성할 수 있고, Schedule 하고 모니터링을 하게 해주는 Platform이다.
다르게 해석하면 작업들을 일정한 시간에 정확한 방법으로 올바른 순서대로 실행하게 해주는 Tool이다.
장점
Dynamic
Airflow에서 Pipeline은 Python으로 정의할 수 있다.
Python으로 가능한 것이면 Airflow에서 Pipeline내 Task로 실행할 수 있다.
Scalable
Airflow는 Scalable하다.
Arictecture를 어떻게 구성하느냐, Resource가 얼마나 되는지에 따라 얼마든지 Task를 병렬로 실행할 수 있다.
Arflow는 Modular Architecture로 구성되며 Message Queue를 사용한다.
User Interface
Airflow는 편하고 보기에 좋은 Web Interface를 제공한다.
Web Appliation을 통해 쉽게 Pipeline를 모니터링, 관리할 수 있다.
어렵지 않아 쉽게 이용할 수 있다.
Extensible
Airflow는 Extensible 한다.
필요한 기능에 대해 plugin 형태로 쉽게 적용 가능하다.
커스텀 기능을 추가하기도 좋다.
구성
- WebServer
- Scheduler
- Daemon Service로 Task의 Scheduling 담당
- Task 모니터링, 관리
- Metastore
- Airflow에 관련된 모든 Data를 저장하는 Database
- SqlAlchemy를 통해 Metastore와 Interact
- Default는 SQLite이며, PostgreSQL, MySQL로 가능
- Executor
- Task 수행 방식 정의(the mechanism by which task instances get run)
- 종류
- Local -> Debug, Local, Sequential Executor
- Remote -> Celery, CeleryKubernetes, Dask, Kubernetes Executor
- Worker
- 실제로 Task를 수행하는 주체
Concept
DAG
Directed Acyclic Graph
DAG는 방향을 가진 비순환 Graph이다.
위 그래프는 DAG이다.
순환하지 않고 일방향 성만 가진다.
Airflow Pipeline은 DAG 형태로 구성된다.
Operator
Operator는 Task의 Template 역할을 한다.
DAG내에서 정의할 수 있다.
with DAG("my-dag") as dag:
ping = SimpleHttpOperator(endpoint="http://example.com/update/")
email = EmailOperator(to="admin@example.com", subject="Update complete")
ping >> email
Operator는 아래와 같이 3가지 종류가 있다.
- Action Operator
- Function이나 Command 실행
- BashOperator, PythonOperator ...
- Transfer Operator
- Data를 Source -> Target에 Transfer
- Sensor
- 특정 조건을 만족했을 때 실행
Operator의 종류는 많다.
기본적으로 설치가 되지 않는 Operator는 추가적인 설치가 필요하다.(참고링크)
Task / Task Instance
Data Pipeline이 trigger에 의해 실행되면 Pipeline 내 정의된 Task가 실행된다.
이렇게 실행된 Task가 Task Instance이다.
OOP관점에서 Task는 Class이며 Task Instance는 Object이다.
Airflow는 Data Streaming Solution도 Data Proessing Framewokr도 아니다.
그런 빅데이터 처리는 Spark에서 해야 한다.
Airflow는 Orchestrator이다.
'MLOps > Airflow' 카테고리의 다른 글
뭐야?! No Space left on device?! - Airflow db clean (0) | 2023.09.20 |
---|---|
Airflow Variables 세팅 - 전역변수 설정 (0) | 2023.07.23 |
Kubernetes환경에서 Airflow를?!?! (0) | 2023.06.28 |
How Airflow works? (0) | 2022.03.24 |