Sinbum's blog
  • 인셉션 개발자
    • History
    • Editorial Board
    • 세미나
      • MS_빅데이터_분석_교육
      • Databricks_Musinsa_사례분석
      • Databricks_AMOREPACIFIC_사례분석
    • 개발자 꿀팁
  • 리눅스
    • 리눅스 기초
      • 기본명령어
      • 프록시서버
      • 온프레미스
      • systemd
      • 우분투 앱
      • vi 사용법
    • 도커
      • MSA 아키텍처
      • 도커 설명
      • 도커 설치
      • 도커 가이드
        • 컨테이너 만들기
        • 컨테이너 보관
        • 컨테이너 사용
        • 컨테이너 관리
        • 컨테이너 볼륨
        • 컨테이너 통신
        • 도커 연습
  • 언어
    • 자바
      • 자바(JAVA)는 무엇인가?
        • JVM 메모리
      • 자바 설치 가이드
      • 자바 언어 활용
        • 변수
        • static
        • 상수
        • 연산자
        • 제어문
        • 배열
        • CLI-자바사용
        • 클래스
        • 메소드
        • 값에의한 호출
        • GUI 프레임
        • 생성자
        • 오버로딩
        • 상속
        • 상속생성자
        • 접근제한자 와 가비지 컬렉션
        • 추상클래스 와 인터페이스
        • 다중구현
        • 예외처리
        • 컬렉션 프레임워크
        • 쓰레드
        • 네트워크
        • 다중 접속 서버 구현
      • 간단한 채팅 앱 개발하기
    • 파이썬
      • 파이썬(Python)은 무엇인가?
      • 파이썬 설치 가이드
      • 파이썬 언어 활용
        • 변수
        • 입력,출력
        • 타입선언
        • 자료구조
        • 주석처리
        • 문자열
        • 리스트
        • 반복문
        • 연산자
        • 조건문
        • 정규표현식
          • re 모듈
          • 메타문자1
          • 메타문자2
          • 그루핑
          • 전방탐색
          • 문자열 바꾸기
          • Greedy 와 Non-Greedy
      • 마치며...
  • 형상관리,CI/CD
    • 깃허브
      • 깃허브 협업 모델
      • 깃허브 설치 와 ssl
      • 깃허브를 잘쓰는 팁 모음
  • BigData
    • BigData 개념
      • OLTP,OLAP
      • ELT,ETL
      • DW
      • ObjectStorage
      • LambdaArc
      • OGG
    • Kafka
      • 환경설정 및 소스코드 다운로드
      • 아파치 카프카는?
        • 카프카의 시작
        • 카프카 특성
        • 빅데이터 아키텍처
      • 카프카 기초 개념
    • BuildApplications
      • Airflow
      • Grafana
    • PowerBi
      • DAX
        • REMOVEFILTERS
        • DAX_문법
        • DAX_함수
    • Azure
      • SynapseAnalytics
  • IOT
    • 아두이노
      • 설치 및 기초
      • 센서의 종류
      • led 출력하기
      • 시리얼 통신
      • 무선 통신
  • About
    • SINBUM
    • INTEREST
    • PROJECTS
      • 업무 프로젝트
      • 개인 프로젝트
        • 티스토리API를 사용한 블로그 앱
        • 노션 API와 블로그 연동 자동화 하기
        • 로지텍 마우스 수리
    • CONTACT
Powered by GitBook
On this page
  • 에어플로우란
  • 에어플로우의 3가지 구성요소
  • Airflow Webserver
  • Airflow Scheduler
  • Airflow Executor
  • Airflow Worker
  • Airflow Database
  • DAG(Directed Acyclic Graph)
  1. BigData
  2. BuildApplications

Airflow

PreviousBuildApplicationsNextGrafana

Last updated 2 years ago


airflow 로고

에어플로우란

airbnb에서 만든 workflow management tool

workflow는 작업의 흐름을 말합니다. airflow는 ETL 에서 의 워크플로우를 작서아혹,스케줄링,모니터링 하는 작업을 말합니다.

데이터 엔지니어 영역에서 많이 사용되는 sw입니다.

Airflow는 특징이 되는 컴포넌트들이 있으며 각 컴포넌트들 사이에서의 아키텍처는 다음의 이미지로 표현됩니다.

에어플로우의 3가지 구성요소

  • Webserver

  • Scheduler

  • Executor

  • Workers

Airflow Webserver

Airflow의 웹 서버는 Airflow의 로그를 보여주거나 스케줄러에 의해 생산된 DAG목록, Task 상태 등을 시각화 해서 보여줍니다. 즉, UI를 통해서 사용자에게 시각적으로 정보를 제공해 주는 요소 입니다.

Airflow Scheduler

Airflow 스케줄러는 airflow로 할당된 work들을 스케줄링 해주는 component 입니다. Scheduled 된 workflow들의 트리거링과 실행하기 위해서 executor에게 task를 제공해주는 역학을 수행합니다.

Airflow Executor

Airflow Executor는 실행중인 task를 핸들링 하는 컴포넌트 입니다. 기본설치시에 scheduler에 있는 모든 것 들을 다 실행시키지만, production 수준에서의 executor는 worker에게 task 를 push 하도록 합니다.

Airflow Worker

Airflow worker는 실제로 task를 실행하는 주체입니다.

Airflow Database

Airflow database는 airflow에 있는 DAG, Task 등의 metadata를 저장하고 관리합니다.

DAG(Directed Acyclic Graph)

DAG는 비순환 그래프로써 순환하는 사이클이 없는 그래프입니다. 즉, 노드와 노드가 단반향으로 연결되어 있어 그노드로 향하게 되면 돌아오지 않는다는 특성을 가지고 있습니다. Airflow에서는 이러한 DAG를 이용해 Workflow를 구성하여 어떤 순서로 task를 실행시킬 것인지 dependency를 어떻게 표현할 것인지 등을 설정합니다.

에어플로우 아키텍처
크론탭 스크립트 예제. / 마이크로소프트웨어 395호