ETL 파이프라인과 데이터 포맷 이해

1. ETL 파이프라인이란?

  • ETLExtract, Transform, Load의 약자입니다.
    → 데이터를 추출 → 변환 → 적재하는 일련의 과정.
  • 주로 **데이터 웨어하우스(DWH)**로 데이터를 옮길 때 사용됩니다.
  • 데이터 레이크에서는 ELT(Extract → Load → Transform) 방식이 더 일반적입니다.

2. Extract (추출)

  • 정의: 원천 시스템에서 데이터를 가져오는 단계
  • 데이터 출처:
    • 데이터베이스 (MySQL, PostgreSQL, Oracle 등)
    • CRM (예: Salesforce)
    • 로그 파일
    • API
    • 스트리밍 데이터 (Kafka, Kinesis 등)
  • 중요 고려사항:
    • 데이터 무결성 보장 (중간에 손실/에러 발생 시 재시도 정책 필요)
    • 처리 방식: 실시간, 근실시간(near real-time), 배치(batch)

3. Transform (변환)

  • 정의: 추출한 데이터를 분석/저장하기 적합한 형태로 변환
  • 주요 작업:
    • 데이터 정제 (중복 제거, 오류 수정)
    • 데이터 보강 (추가 정보 합치기)
    • 포맷 변경 (문자열 → 날짜 형식 변환 등)
    • 집계/계산 (합계, 평균 등)
    • 인코딩/디코딩 (압축 해제, 암호 해제, 컬럼 포맷 변환 등)
    • 결측치 처리 (제거, 평균값 대체, null 값 허용 여부 확인)

시험 포인트:

  • 결측치 처리 방식은 머신러닝 모델 품질과 직결 → 평균/중앙값 대체, 삭제, 예측 기반 보간(imputation) 방법 숙지
  • SageMaker Processing Job, Data Wrangler 같은 서비스 활용법도 시험에 자주 등장

4. Load (적재)

  • 정의: 변환된 데이터를 **목적지(데이터 웨어하우스, 데이터 레이크 등)**에 저장
  • 방법:
    • 배치 적재: 일정 주기로 대량 데이터 적재
    • 스트리밍 적재: 데이터가 들어오는 즉시 적재
  • 중요 고려사항:
    • 적재 시 데이터 무결성 확인
    • 적재 실패 시 복구 전략 필요

5. ETL 파이프라인 관리

ETL 과정은 자동화오케스트레이션이 중요합니다.

  • AWS Glue – ETL 작업 자동화 및 스케줄링
  • AWS Step Functions – 워크플로우 관리
  • Amazon MWAA (Managed Apache Airflow) – 복잡한 데이터 파이프라인 관리
  • Amazon EventBridge – 이벤트 기반 트리거
  • AWS Lambda – 서버리스 기반 데이터 처리

시험 포인트:

  • Glue는 서버리스 ETL 서비스, Spark 기반 동작
  • Step Functions는 상태 기반 워크플로우 관리
  • MWAA는 Apache Airflow 관리형 서비스

6. 주요 데이터 소스 인터페이스

  • JDBC (Java Database Connectivity)
    • 자바 기반, 플랫폼 독립적, 하지만 언어(Java) 종속적
  • ODBC (Open Database Connectivity)
    • 드라이버 필요(플랫폼 종속), 하지만 언어 독립적
  • API – 외부 시스템에서 데이터 가져오기
  • 로그 파일 – 서버 로그, 애플리케이션 로그 등
  • 스트리밍 데이터 – Kafka, Kinesis 등

7. 데이터 포맷 정리

CSV (Comma-Separated Values)

  • 특징: 텍스트 기반, 행 단위 데이터, 구분자는 , 또는 \t
  • 장점: 사람이 읽기 쉬움, 이식성 높음
  • 단점: 대규모 데이터 처리 시 비효율적
  • 시험 포인트: Pandas, R, Excel 등에서 손쉽게 처리 가능

JSON (JavaScript Object Notation)

  • 특징: 키-값 기반, 반정형(semi-structured) 데이터 표현 가능
  • 장점: 유연한 스키마, 중첩 구조 지원
  • 활용: API 응답, 설정 파일, NoSQL DB(MongoDB 등)

Avro

  • 특징: 바이너리 포맷, 데이터와 스키마를 함께 저장
  • 장점: 효율적인 직렬화(Serialization), 스키마 진화(schema evolution) 지원
  • 활용: Kafka, Spark, Flink, Hadoop

Parquet

  • 특징: 컬럼 지향(columnar) 저장 포맷
  • 장점: 특정 컬럼만 읽기 가능 → 대규모 분석에 최적화
  • 활용: Redshift Spectrum, Spark, Hive, Athena
  • 시험 포인트: 분석용 최적화 포맷으로 자주 언급됨

8. 시험 대비 요약

  • ETL vs ELT: DWH는 ETL, Data Lake는 ELT
  • 데이터 포맷 특징 비교: CSV(단순), JSON(유연), Avro(스키마 포함), Parquet(분석 최적화)
  • AWS Glue, Step Functions, MWAA: ETL 관리 핵심 서비스
  • 스키마 온 라이트(schema-on-write) vs 스키마 온 리드(schema-on-read): 시험 단골