반응형
- airflow은 유연한 파이썬 프레임워크를 사용해 쉽게 데이터 파이프라인을 구축가능
- 최신 기술 환경에서 접하게 되는 서로 다른 기술들을 연결할 수 있는 다양한 빌딩 블록을 제공하는 것
- 에어플로우는 거미줄의 거미와 같이 데이터 프로세스 과정에서 중요한 역할을 하며 다양한 시스템에서 발생하는 작업을 조율
- 직접적으로 데이터 처리 작업을 수행하지 않지만, 데이터 처리를 위한 다양한 구성 요소들을 조정
1. 데이터 파이프라인 소개
- 데이터 파이프라인은 원하는 결과를 얻기 위해 실행되는 여러 태스크 또는 동작으로 구성
1.1 데이터 파이프라인 그래프
- 태스크 간의 의존성을 명확하게 확인하는 방법 중 하나는, 데이터 파이프라인을 그래프로 표현하는 것
- 태스크는 노드로 표시되고 태스크 간의 의존성은 태스크 노드간의 방향으로 표시
- 이러한 형태의 그래프는 방향성을 가지기 때문에 방향성 그래프 라고 한다
- 이런 형태의 그래프는 방향성 비순환 그래프(DAG) 라고 부름
- 그래프는 화살표 방향성의 끝점을 포함하되 반복이나 순환을 허용하지 않는다.(비순환)
- 비순환 속성은 태스크 간의 순환 실행을 방지하기 때문에 매우 중요
- 그래프를 실행할 때 순환 의존성이 문제를 발생시킬 수 있다. 예를 들어 태스크 3이 완료된 후에만 태스크 2가 실행되는데, 태스크 3은 태스크 2가 완료된 후에 실행되기 때문이다. 이런 논리적 오류는 교착상태(dead lock) 으로 이어지며, 태스크 2와 태스크 3이 모두 실행될 수 없기 대문에 그래프가 동작하지 않는다.
- Airflow 에서는 DAG 의 비순환 속성은 태스크 그래프를 효율적으로 해결하고 실행하기 위해 사용된다.
1.2 파이프라인 그래프 실행
- DAG (Directed Acyclic Graph) 는 파이프라인 시행을 위한 단순한 알고리즘을 제공한다는 이점
- DAG 알고리즘 설명
- 그래프 안에 태스크는 각각 개방된 상태(미완료) 이며 다음과 같은 단계를 수행→ 태스크가 완료되면 다음에 실행해야 할 태스크를 대기열에 추가
- → 각강의 화살표 끝점은 태스크를 향하며 다음 태스크로 향하기 전에 이전 태스크가 완료되었는지 확인
- 실행 대기열에 있는 태스크를 실행하고 태스크 수행이 완료되면 완료 표시
- 그래프의 모든 태스크가 완료되면 프로세스 종료
1.3 그래프 파이프라인의 장점
- **실행 알고리즘(그래프 진행 순서/방법)**을 적용하면 태스크를 병렬로 실행 가능
- 이로 인해, 가용 컴퓨팅 리소스를 더욱 효율적으로 활용 가능
- 덕분에, 태스크의 순차적 실행 때보다 전체 파이프라인 실행 시간을 줄일 수 있음
- 전체를 하나의 단일 스크립트 또는 프로세스가 아닌 작은 점진적인 태스크로 분리할 수 있음
- 단일 스크립트에 반해, 실패한 태스크만 재 실행하면 되므로 전체 스크립트(파이프라인)를 재 실행할 필요 없음
1.4 워크플로 매니저를 이용한 파이프라인 실행
- 의존성 있는 그래프 태스크 실행에 대한 어려움은 기존에도 계속 있었음[클린 아키텍처] 의존성 순환 (cyclic dependency) 의 문제와 해결방안
- → 해당 부분은 아래 링크 참고
- 과거 수년간 이 문제를 해결하기 위해 ‘워크플로 매니지먼트’ 솔루션이 다양하게 개발
- 일반적으로 태스크 그래프를 워크 플로 또는 파이프라인으로 정의하고 실행
- 아래는 몇몇 유명한 워크플로 관리시스템에 대한 요약본
→ 위 워크플로들의 주요 기능은 의존성이 있는 다수 태스크가 포함된 파이프라인을 정의하고 실행하는 것
→ 이 도구들의 중 차이점 중 하나는 워크플로 정의방식 Oozie 는 정적(xml)파일을 사용하여 워크플로를 정의하기 때문에 읽기 쉽지만 유연하지 않으며, Luigi 및 Airflow 와 같은 도구는 워크 플로를 코드로 정의하기에 좀 더 유연하지만, 읽기 및 테스트는 어려울 수 있음
- airflow은 유연한 파이썬 프레임워크를 사용해 쉽게 데이터 파이프라인을 구축가능
- 최신 기술 환경에서 접하게 되는 서로 다른 기술들을 연결할 수 있는 다양한 빌딩 블록을 제공하는 것
- 에어플로우는 거미줄의 거미와 같이 데이터 프로세스 과정에서 중요한 역할을 하며 다양한 시스템에서 발생하는 작업을 조율
- 직접적으로 데이터 처리 작업을 수행하지 않지만, 데이터 처리를 위한 다양한 구성 요소들을 조정
반응형
'Data Engineering > AirFlow' 카테고리의 다른 글
[Airflow] 다른 시스템과 연결하기 (0) | 2023.11.16 |
---|---|
[Airflow] ch3. Airflow 스케줄링 (0) | 2023.11.15 |
[Airflow] 1-2. Apache Airflow 살펴보기 (2) | 2023.11.13 |