ETL과 ELT, 데이터 파이프라인

Koo·2023년 8월 21일
post-thumbnail

ETL(Extract, Transform, and Load Process)

데이터가 어떻게 분석 가능한 데이터로 변환되는지를 나타냄
1. 원본 데이터 수집
2. reporting과 분석에 필요한 정보를 추출
3. cleaning, standardizing, transforming을 통해 유용한 데이터 포맷을 만듬
4. 가공한 데이터를 데이터 저장소에 저장

Extract

Batch Processing

  • 지정된 시간마다 데이터를 한 번에 전송하는 방법
  • ETL은 주로 배치 방식을 사용하지만 최근에는 실시간 처리 방식도 사용
  • Stitch, Blendo 등의 툴을 사용 가능

Stream Processing

  • 실시간으로 데이터를 추출, 가공 및 저장하는 방법
  • Apache samza, Apache Storm, Apache Kafka

Transform

  • 데이터 형식 및 측정 단위 표준화
  • 중복 데이터 제거
  • 필터링 - 필요하지 않은 데이터 제거
  • 필요에 맞게 데이터 처리
    • Full name → First name + Last name
  • 테이블 간의 주요 관계 설정
  • 비즈니스 규칙 및 데이터 유효성 검사 적용

Load

  • 초기 적재(Initial Loading) - 데이터 저장소에 있는 모든 데이터를 저장
  • 점증적 적재(Incremental Loading) - 업데이트 및 수정의 주기적 적용
  • Full refresh - 모든 데이터를 삭제하고 새로운 데이터를 다시 저장

데이터 저장 시 검증사항

  • 빠진 값이나 Null 값
  • 서버 성능 검사
  • 저장 실패 여부

ETL 툴

  • IBM InfoSphere
  • AWS Glue
  • improvado
  • skyvia
  • HEVO
  • Informatica

ELT(Extract, Load and Transform Process)

  • ETL과 다르게 데이터를 추출하여 바로 데이터에 저장한 후, 필요에 맞게 데이터를 처리하는 방법
  • 데이터 저장소는 데이터 레이크나 데이터 웨어하우스
  • 장점
    • 데이터 추출과 전송 사이클이 짧아짐
    • 데이터가 생성되었을 때 바로 추출이 가능해짐
    • 분석가 및 데이터 과학자에게 탐색적 데이터 분석을 위한 유연성 제공
    • 특정 분석에 필요한 데이터를 변환하여 여러 번 활용 가능

데이터 파이프라인

  • 한 시스템에서 다른 시스템으로 데이터를 이동하는 전체 과정을 포함합니다
  • ETL과 ELT를 포함하는 개념
  • 배치 방식과 실시간 방식 모두 가능
  • 장시간 실행되는 배치 쿼리와 작은 대화형 쿼리를 모두 지원
  • 주로 데이터 레이크로 저장되지만 이외에도 다양한 저장소에 저장 가능
  • Apache Beam, Apache Airflow, Dataflow ...
profile
스터디를 해보자

0개의 댓글