본문 바로가기
Data Engineering

[실날데] 실리콘밸리에서 날아온 데이터 엔지니어링 스타터 키트 - 3주차: 데이터 파이프라인이란?

by 데브겸 2023. 6. 18.

 

데이터 파이프라인이란?

용어 설명: ETL

데이터 프로세싱을 위해 실행하는 코드. 흔히 말하는 ETL이라고 하는 것이 곧 데이터 파이프라인임. ELT도 거시적인 관점에서는 데이터 파이프라인.

  • ETL은 외부 데이터를 내부 데이터 시스템(데이터 웨어하우스 등)으로 가져오는 것
  • ELT는 내부에 있는 데이터를 재가공해서 만드는 것
    • 데이터 레이크를 같이 쓰기도 함
    • ELT 프로세스를 위한 전용 기술이 있으며, dbt가 가장 유명하다

 

용어 설명: Data Lake vs Data Warehouse

가장 큰 차이점: 다음을 수 있는 데이터의 크기

  • 데이터 레이크 (Data Lake)
    • 구조화 데이터 + 비구조화 데이터
      • 로그 데이터는 크기가 크기 때문에 웨어하우스에 로딩하기 힘들어. 그리고 구조화되지 않았기 때문에 sql로 처리하는게 쉽지 않음. 우선 로그 파일을 레이크에 던져두고 처리해서 웨어하우스에 넣는 것이 일반적
    • 보존 기한이 없는 모든 데이터를 원래 형태대로 보존하는 스토리지에 가까움
    • 가격이 싸고, 훨씬 더 많은 데이터를 저장할 수 있음
  • 데이터 웨어하우스
    • 보존 기한이 있는 구조화된 데이터를 저장하고 처리하는 스토리지
    • 레이크보다 용량이 작고, 가격이 상대적으로 비싸지만 처리 속도가 빠르다
    • 보통 BI툴들은 데이터 웨어하우스를 백엔드로 사용

 

데이터 파이프라인의 정의

  • 데이터를 소스로부터 어떤 목적지까지 복사, 이동하는 작업
    • 보통 파이썬, 스칼라 코딩이나 SQL을 이용하여 이루어짐
    • 대부분의 경우 목적지는 데이터 웨어하우스가 됨 (하지만 상황에 따라 다름)
  • 데이터 소스의 예시
    • click stream, call data, ads performance data, transactions, sensor data, metadata
    • production databases, log files, API, stram data (Kafka topic)
  • 데이터 목적지의 예시
    • 데이터 웨어하우스, 캐시 시스템 (Redis, Memcache), 프로덕션 데이터베이스, NoSQL, S3

 

데이터 파이프라인의 종류

  • Raw Data ETL Jobs
    1. 외부와 내부 데이터 소스에서 데이터를 읽어다가 (API를 보통 통함)
    2. 적당한 데이터 포맷 변환 후 (파이썬으로 하다가 데이터 크기 커지면 Spark로)
    3. 데이터 웨어하우스에 로드
    • Airflow로 스케쥴링
  • Summary, Report Jobs
    1. DW 혹은 DL로부터 데이터를 읽어 다시 DW에 쓰는 ETL
    2. Raw Data를 읽어서 일종의 리포트 형태나 써머리 형태로 테이블을 다시 만드는 용도
    3. 특수한 형태로는 AB 테스트 결과를 분석하는 데이터 파이프라인도 존재

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

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


CTAS로 테이블을 만드는 경우, 테스트하기가 힘들기 때문에 DBT를 많이 사용함

 

  • Production Data Jobs
    1. DW로부터 데이터를 읽어 다른 Storage(많은 경우 프로덕션 환경)로 쓰는 ETL
      1. 써머리 정보가 프로덕션 환경에서 성능 이유로 필요한 경우 (강의 평점 등)
      2. 혹은 머신러닝 모델에서 필요한 피쳐들을 미리 계산해두는 경우
    2. 이럴 경우 타겟 스토리지
      1. NoSQL (Cassandra, HBase, DynamoDB)
      2. RDB (OLTP)
      3. Redis, Memcache와 같은 캐시
      4. ElasticSearch와 같은 검색엔진