일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- git
- 우분투
- DevOps
- 자료구조
- 쿠버네티스
- db
- 코딩테스트
- 깃
- 알고리즘
- 파이썬
- Ai
- Python
- docker
- 자바
- Linux
- github
- Java
- 데이터베이스
- mysql
- LV 0
- 인공지능
- 머신러닝
- Kubernetes
- 코테
- ubuntu
- Lv 2
- 정처기
- 프로그래머스
- programmers
- 리눅스
Archives
- Today
- Total
Myo-Kyeong Tech Blog
[Airflow] Apache Airflow란? - Airflow 기본 개념 정리, DAG, 장단점 본문
Data Engineering/Airflow
[Airflow] Apache Airflow란? - Airflow 기본 개념 정리, DAG, 장단점
myo-kyeong 2023. 12. 16. 23:00728x90
반응형
Apache Airflow란?
- 데이터 엔지니어링 분야에 널리 사용되는 오픈 소스 워크플로우 관리 플랫폼
- 반복되는 작업들을 일정한 순서를 가지고 원하는 시간에 지속적으로 수행할 수 있음
- 데이터 워크플로우를 자동화하고 관리하는 데 매우 유용
- 배치 지향 데이터 파이프라인 구현하는 데 적합
- Python 기반으로 한 유연한 프레임워크 제공
데이터 파이프라인
- 원하는 결과를 얻기 위해 실행되는 여러 태스크 또는 동작으로 구성됨
- 각 태스크는 정해진 순서대로 진행되어야 함
예를 들어, 데이터 수집, 변환, 저장과 같이 각각 다른 작업(Task)이 구성되어 있다면 각 작업은 특정 순서에 따라 실행되어야 하며 데이터를 가져오기 전에 데이터를 저장하거나 변환해서는 안됩니다. 데이터를 가져온 후 데이터를 변환하고 변환한 데이터를 저장해야 합니다.
DAG ( Directed Acyclic Graph, 방향성 비순환 그래프 )
- 데이터 파이프라인을 그래프로 그리면 태스크 간의 의존성을 명확하게 확인할 수 있음
- 태스크는 노드로 표시, 태스트 간의 의존성은 태스트 노드 간의 사이에 화살표로 표시
- 반복이나 순환을 허용하지 않음 ( 비순환 구조 )
- DAG는 태스크 간의 의존성 관리하는 데 중요
- 예를 들어, 데이터 변환 작업은 데이터 수집 작업이 완료된 후에만 시작된 다는 것을 표현할 수 있음
- 같은 작업이 무한 반복되는 것을 방지
- 이는 워크플로우가 효율적으로 완료되도록 보장, 자원 낭비를 줄여줌
Airflow 장점
- 배치 지향 데이터 파이프라인을 구현하는 데 적합
- Python을 사용하여 워크플로우를 정의할 수 있어 복잡한 커스텀 파이프라인을 만들 수 있음
- 다양한 환경 (클라우드, 데이터베이스) 에서 확장 가능하며, 다양한 데이터 소스와 도구들 연동 가능
- 오픈소스로 특정 벤더에 종속되지 않음
Airflow 적합하지 않은 경우
- Airflow는 반복적이거나 배치 태스크를 실행하는 기능에 초첨이 맞추어져 있기 때문에 실시간 데이터 처리에는 적합하지 않음
- Airflow는 작업을 즉시 실행하기보다는 예약된 작업을 주기적으로 실행되도록 설계되어 있음
- 데이터가 지속적으로 들어오고, 즉각적인 처리가 필요한 실시간 시스템과는 맞지 않음
- 추가 및 삭제 태스크가 빈번한 동적 파이프라인의 경우에는 적합하지 않음
REFERENCE
728x90
반응형