Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- AWS
- linux
- airflow.cfg
- TIL
- Docker
- 자료구조
- Django
- airflow
- 데이터 엔지니어링
- 컴퓨터네트워크
- 데이터엔지니어링
- HADOOP
- Go
- TCP
- 컴퓨터 네트워크
- 데이터 파이프라인
- 데이터베이스
- 데이터 웨어하우스
- dockerfile
- 종류
- S3
- http
- 데브코스
- 가상환경
- 정리
- PYTHON
- 운영체제
- sql
- redshift
- 파이썬
Archives
- Today
- Total
홍카나의 공부방
[Airflow] Airflow 소개와 구성 본문
Airflow 소개
- 파이썬으로 만들어진 데이터 파이프라인 (ETL) 프레임워크다.
- 데이터 파이프라인 스케줄링을 지원하여, 정해진 시간에 ETL을 실행하거나 그 다음 ETL을 실행한다.
- Airflow에서는 데이터 파이프라인을 DAG(Directed Acyclic Graph)라고 부른다.
- DAG는 Task로 구성된다. ( 예를 들어 3개의 태스크로 구성된다면 Extract, Transform, Load로 구성 )
- 하나의 DAG는 하나 이상의 태스크로 구성된다.
- 태스크는 Airflow의 Operator로 만들어진다. Airflow에서 이미 다양한 종류의 오퍼레이터를 제공한다.
- 경우에 오퍼레이터를 결정해서 사용할 수 있다.
Airflow 구성
- Airflow는 웹 서버, 스케줄러, 워커, 메타 데이터 데이터베이스, 큐. 총 5개의 컴포넌트로 구성된다.
- 스케줄러는 DAG안에 있는 Task들을 워커들에게 배정하는 역할을 수행한다.
- 웹 UI는 스케줄러와 DAG의 실행 상황을 시각화 해준다.
- 워커는 실제로 DAG를 구성하는 Task들을 실행하는 역할을 맡는다.
- 스케줄러와 각 DAG의 실행결과는 별도 DB에 저장된다. ( 기본적으로 설치되는 SQLite는 잘 안 쓴다. )
Airflow 스케일링
- 더 좋은 사양의 서버를 사용하는 scale-up, 서버의 수를 늘리는 scale-out 2가지 방법이 존재한다.
- Scale-Out이 되는 순간 비용도 늘어나고, 관리도 복잡해져서 Scale-Up을 우선적인 선택지로 고려하게 된다.
Airflow 개발 : Pros and Cons
Pros
- 데이터 파이프라인을 세밀하게 제어할 수 있다.
- 다양한 데이터 소스와 데이터 웨어하우스를 지원한다.
- 백필(backfill)이 쉽다.
Cons
- 배우기가 쉽지 않다.
- 상대적으로 개발환경을 구성하기 쉽지 않다.
- 직접 운영이 쉽지 않다. 클라우드 버전 사용이 선호된다. (AWS : Managed Workflows for Apache Airflow, MWAA)
반응형
'Data Engineering > Airflow' 카테고리의 다른 글
[Airflow] cfg에서의 Timezone (0) | 2023.06.21 |
---|---|
[Airflow] task 실패시 분석하기 (1) | 2023.06.06 |
[Airflow] Airflow.cfg 일부 살펴보기 (2) | 2023.06.06 |
[Airflow] CLI에서 Docker Airflow 로그인 (0) | 2023.06.04 |
[DE] 데이터 파이프라인의 종류와 만들 때 고려할 점들 (1) | 2023.05.29 |