Miner

Airflow (2) - ETL, ELT, 데이터 파이프라인 본문

데이터 엔지니어링/Airflow

Airflow (2) - ETL, ELT, 데이터 파이프라인

MineTime76 2024. 1. 24. 14:32

ETL 

ETL : Extract, Transform, and Load

Data Pipeline, ETL, Data Workflow, DAG

  • Called DAG(Directed Acyclic Graph) in Airflow

ETL vs ELT

ETL : 데이터를 데이터 웨어하우스 외부에서 내부로 가져오는 프로세스

  • 보통 데이터 엔지니어들이 수행

ELT : 데이터 웨어하우스 내부 데이터를 조작해서 (보통은 추상화되고 요약된) 새로운 데이터를 만드는 프로세스

  • 보통 데이터 분석가들이 많이 수행
  • 이 경우 데이터 레이크 위에서 이런 작업들이 벌어지기도 함
  • 이런 프로세스 전용 기술들이 있으며 dbt가 가장 유명 : Analytics Engineering
    • dbt : Data Build Tool

Data Lake vs Data Warehouse

데이터 레이크 (Data Lake)

  • 구조화 데이터 + 비구조화 데이터
  • 보존 기한이 없는 모든 데이터를 원래 형태대로 보존하는 스토리지에 가까움
  • 보통은 데이터 웨어하우스보다 몇배는 더 큰 스토리지

데이터 웨어하우스 (Data Warehouse)

  • 보존 기한이 있는 구조화된 데이터를 저장하고 처리하는 스토리지
  • 보통 BI 툴들(룩커, 태블로, 수퍼셋, .. )은 데이터 웨어하우스를 백엔드로 사용

Data Pipeline의 정의

데이터를 소스로부터 목적지로 복사하는 작업

  • 이 작업은 보통 코딩(파이썬 혹은 스칼라) 혹은 SQL을 통해 이뤄짐
  • 대부분의 경우 목적지는 데이터 웨어하우스가 됨

데이터 소스의 예

  • Click stream, call data, ads performance data, transactions, sensor data, metadata
  • production databases, log files, API, stream data(Kafka topic)

데이터 목적지의 예

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

데이터 파이프라인의 종류 (1)

Raw Data ETL Jobs

  1. 외부와 내부 데이터 소스에서 데이터를 읽어다가 (많은 경우 API를 통하게 됨)
  2. 적당한 데이터 포맷 변환 후 (데이터의 크기가 커지면 Spark 등이 필요해짐)
  3. 데이터 웨어하우스 로드

이 작업은 보통 데이터 엔지니어가 하는 일

 

데이터 파이프라인의 종류 (2)

  1. DW(혹은 DL)로 부터 데이터를 읽어 다시 DW에 쓰는 ETL
  2. Raw Data를 읽어서 일종의 리포트 형태나 써머리 형태의 테이블을 다시 만드는 용도
  3. 특수한 형태로는 AB 테스트 결과를 분석하는 데이터 파이프라인도 존재

요약 테이블의 경우 SQL (CTAS를 통해)만으로 만들고 이는 데이터 분석가가 하는 것이 맞다.

데이터 엔지니어 관점에서는 어떻게 데이터 분석가들이 편하게 할 수 있는 환경을 만들어 주느냐가 관건

 

Analytics Engineer (DBT)

 

데이터 파이프라인의 종류 (3)

Production Data Jobs

  1. DW로 부터 데이터를 읽어 다른 Storage(많은 경우 프로덕션 환경)로 쓰는 ETL
    • 써머리 정보가 프로덕션 환경에서 성능 이유로 필요한 경우
    • 혹은 머신러닝 모델에서 필요한 피쳐들을 미리 계산해두는 경우
  2. 이 경우 흔한 타겟 스토리지
    • Cassandra/HBase/DynamoDB와 같은 NOSQL
    • MySQL과 같은 관계형 데이터베이스 (OLTP)
    • Redis/Memcache와 같은 캐시
    • ElasticSearch와 같은 검색엔진

강의별 수강생 수, 리뷰수, 평점 계산

'데이터 엔지니어링 > Airflow' 카테고리의 다른 글

Dag 작성 - 필요 모듈  (0) 2024.02.19
Airflow (4) - ETL 작성  (0) 2024.01.24
Airflow (3) - Caution  (0) 2024.01.24
Airflow (1)  (0) 2024.01.24
Airflow, Docker 위에 설치법  (0) 2024.01.10