데브코스 41일차 - 데이터 파이프라인과 Airflow

Pori·2023년 12월 11일
0

데엔

목록 보기
31/47

데이터 파이프라인이란

ETL

: Extract, Transform, Load ⇒ Data Pipeline, ETL, Data Workflow, DAG이라 부르기도 한다.

  • 데이터를 웨어하우스 외부에서 내부로 가져오는 프로세스
  • DAG : (Directed Acyclic Graph) : 루프가 존재하지 않는 비순환 방향 그래프.

ELT

: 데이터 웨어하우스 내부의 데이터를 조작해서 새로운 데이터를 생성하는 프로세스

  • 데이터 레이크 위에서 이루어지기도 한다.
  • dbt : Data Build Tool, ELT 전용 기술들이 존재.
  • 데이터 레이크 : 스토리지
    • 모든 데이터를 원래의 형태로 보존하는 스토리지에 가깝다.
  • 데이터 웨어하우스
    • 보존 기한이 있는 구조화된 데이터를 저장하고 처리하는 스토리지
    • BI 툴들의 백엔드로 많이 사용된다.

데이터 파이프라인

  • 데이터를 소스로부터 목적지로 복사하는 작업
    • ETL, ELT 모두 가능하다.
    • 데이터의 목적지가 웨어하우스가 대부분이나, 다른 시스템인 경우도 있다.
  • Summary/Report Jobs
    • 리포트나, 요약본 형태로 테이블을 다시 만들기도 한다.
  • Production Data Jobs
    • 프로덕션 환경에서 필요에 의한 경우에 역으로 쓰기도 한다.
    • 예) 실시간 정보 표출을 위한 경우에 사용되기도 한다.

고려할 점

  • 파이프라인의 수가 늘어나면 유지보수 비용이 늘어남.
    • 데이터 소스간의 의존도가 생기는 경우
    • 각 파이프라인간의 이해도 부족
  • 좋은 방법들
    • Full Refresh : 매번 통으로 복사해서 테이블을 만들기
      • 불가능한 경우에는 업데이트 방식으로 레코드들을 읽도록 수행 (Incremental update)
    • 멱등성이 보장되어야 한다. : 동일한 입력 데이터로 다수의 파이프라인을 실행해도 최종 테이블의 내용이 변하지 않아야한다.
    • 실패한 파이프라인의 재실행이 쉬워야한다.
    • 파이프라인의 입출력을 명확하게 하고, 문서화 해야한다.
      • 데이터 요청을 명시하기.
    • 주기적으로 쓸모없는 데이터들을 삭제해야한다.
    • 사고가 발생한 경우에 리포트를 쓰기 → 원인을 파악해야한다.
    • 중요한 파이프라인의 입출력을 체크해야한다.
      • 레코드의 수를 체크
      • PK uniqueness 보장
      • 중복 체크

Airflow

소개

  • 파이썬으로 작성된 데이터 파이프라인 프레임웍
  • 데이터 파이프라인 스케쥴링 지원
  • 데이터 파이프라인을 DAG라 부른다.

구성

  • 컴포넌트
    1. 웹 서버
    2. 스케쥴러 : DAG들을 워커들에게 배정하는 역할을 수행
    3. 워커 : 실제로 DAG를 실행하는 역할을 수행
    4. 메타 데이터 데이터베이스
      1. Sqlite가 기본
      2. 일반적으로는 mysql, Postgres같은 다른 데이터베이스를 사용한다.
    5. 큐 (다수 서버 구성에서 사용된다.)
      1. Executor가 달라진다.
  • 스케일링 방법
    • 스케일 업 : 더 좋은 사양의 서버 사용
    • 스케일 아웃 : 서버 추가
  • Airflow 개발의 장단점
    • 장점
      • 데이터 파이프라인의 세밀한 제어가 가능하다.
      • 백필이 쉽다.
      • 다양한 데이터 소스와 웨어하우스를 지원한다.
    • 단점
      • 개발 환경을 구성하기 쉽지 않다.
      • 직접 운영이 쉽지않아, 클라우드 버전 사용이 선호된다.
  • DAG란?
    • Directed Acyclic Graph의 줄임말
    • Airflow에서 ETL을 부르는 명칭
    • DAG는 태스크로 구성된다.
      • 태스크 : 오퍼레이터로 구성된다.

0개의 댓글