데브코스 TIL/데이터 파이프라인, Airflow

데이터 파이프라인 소개

예니ㅣ 2023. 12. 11. 16:31

강의

"데이터 파이프라인"은 데이터를 소스로부터 목적지로 복사하는 작업 입니다.

대부분의 경우 코딩(파이썬 혹은 스칼라) 혹은 SQL을 통해 데이터 웨어하우스로 복사합니다.

 

데이터 소스

  • Click stream
  • call data
  • ads performance data
  • transactions
  • sensor dat
  • metadata
  • API
  • log files

 

데이터 목적지

  • 데이터 웨어하우스
  • 캐시 시스템 (Redis, Memcache)
  • 프로덕션 데이터베이스
  • NoSQL
  • S3

 


데이터 파이프라인 종류

Raw Data ETL Jobs

데이터 엔지니어가 수행하는 작업 입니다.

  1. 외부 및 내부 데이터 소스에서 데이터 추출 (API)
  2. 적당한 데이터 포맷 변환 (데이터 크기가 크면 Spark 사용)
  3. 데이터 웨어하우스 로드

 

Summary/Report Jobs

데이터 분석가가 SQL의 CTAS를 통해 요약 테이블을 작성합니다.

데이너 엔지니어는 분석하기 편한 환경을 만들어 주어야 합니다.

Analytics Engineer는 DBT를 통해 위 두가지 작업을 수행합니다.

  • DW 혹은 DL로부터 데이터 추출하여 다시 DW에 작성하는 ETL
  • Raw Data의 Report 혹은 Summary 형태의 테이블 생성
  • AB 테스트 결과 분석

 

Production Data Jobs

  • DW로부터 데이터 추출하여 다른 Storage(프로덕션 환경)으로 사용
  • 타켓 스토리지
    • NoSQL : Cassandra/HBase/DynamoDB
    • 관계형 데이터베이스 (OLTP) : MySQL
    • 캐시 : Redis/Memcache
    • 검색엔진 : ElsasticSearch

 


데이터 파이프라인 작성시 고려 사항

현실 혹은 실상

  • 다양한 실패 사유
    • 버그
    • 데이터 소스상의 이슈
    • 데이터 파이프라인간의 의존도에 대한 이해도 부족
  • 유지보수 비용
    • 데이터 소스간의 의존도로 인한 복잡도 상승

 

해결 방법

  • Full Refresh : 매번 통채로 복사해서 테이블 만들기
    • 데이터 크기가 작을 경우
  • Incremental Update : 데이터 소스가 특정 조건을 충족한 경우 가능
    • 프로덕션 데이터베이스 테이블 : created, modified, deleted 필드 필요
    • API : 특정 날짜 기준으 생성 혹은 업데이트된 레코드 추출 가능 필요
  • Backfill : 실패한 데이터 파이프라인 재실행
  • 문서화 : 데이터 파이프라인의 입력 및 출력 문서화
    • 비지니스 오너 명시 : 데이터 요청자 기록
    • 데이터 카탈로그에 포함 → 데이터 디스커버리에 사용 가능
  • 쓸모없는 데이터 주기적으로 삭제
  • 데이터 파이프라인 사고시 사고 리포트(post-mortem) 작성
    • 동일한 혹은 비슷한 사고 방지
    • 사고 원인(root-cause) 이해 및 방지
  • 데이터 대상 유닛 테스트  : 중요 데이터 파이프라인의 입력 및 출력 체크

 

"멱등성"(Idempotency)을 보장하는 것이 중요합니다.

  • 다수 실행해도 최종 테이블의 내용이 달라지지 않아야 함
  • critical point가 모두 one atomic action으로 실행되어야 함

'데브코스 TIL > 데이터 파이프라인, Airflow' 카테고리의 다른 글

Airflow DAG 작성 예제 1, 2  (0) 2023.12.13
Airflow 기본 프로그램 실행  (0) 2023.12.12
Airflow 설치  (0) 2023.12.12
Airflow 소개  (0) 2023.12.11
ETL 작성 실습  (0) 2023.12.11