
기법① 백필(Back-fill) “과거를 한꺼번에 메우기”- 과거 로그/이력 처음 들여올 때
- 신규 데이터레이크 구축 초기• 기간·ID 범위로 쪼개기(Chunk, Partition)
• 병렬 Fan-out(10~100 개 작업자)
• DB/Bucket에 bulk copy (Postgres COPY, S3 multipart, BigQuery LOAD …)
• 실패 태스크만 재시도할 수 있게 idempotent 설계
② 증분 배치(Micro-batch) “N분마다 새로 들어온 것만”- API에서 since=<last_ts> 지원할 때
- 야간 / 시간별 리포트• 변경 수량 <→ 배치 주기 균형(예: 5 분 빼기)
• upsert or merge 로 델타 적용
• 파티션 단위 INSERT … ON CONFLICT or 스테이징 테이블 → 스왑
③ 스트리밍 / CDC “실시간 파이프라인”- 거래틱, 센서,
Kafka topic
- RDB → Warehouse 동기화• Kafka / Kinesis + Flink/Spark Structured Streaming
• Debezium CDC, logical replication
• Append-only 테이블 + 주기적 compaction
핵심은 “한 번만 로딩해도 같은 결과가 나오도록 설계” (멱등성).
작업이 중간에 끊겨도 동일 청크만 다시 돌리면 전체 상태가 일치해야 합니다.
expand(period=ranges) ⇒ 기간별로 태스크 복제하여 병렬·독립 실행
백필 중 실패해도 멱등성(UNIQUE 키) + Airflow 재시도/클리어 덕분에 “끊긴 곳부터 재개”가 간단.
실무에서는 “청크 → 멱등성 COPY → 필요 시 재Clear” 패턴이 가장 널리 쓰이는 안정적인 대용량 ETL 방식입니다.