데이터 엔지니어링의 첫 단추는 언제나 "데이터를 어디서, 어떻게 가져오느냐"다. 분석 파이프라인이 아무리 화려해도 원천 데이터가 안정적으로 들어오지 않으면 전부 멈춘다. Week 2는 이 수집(ingestion)을 배치와 스트리밍으로 나눠 다루는데, 오늘은 그중 배치 수집을 본다.
배치 수집은 "정해진 단위(파일·테이블·시간)로 모아서 한꺼번에" 가져오는 방식이다. 실시간성이 필요 없는 야간 적재, 온프레미스 마이그레이션, 대용량 일괄 전송이 여기 속한다. AWS는 데이터의 양과 위치, 네트워크 상황에 따라 서로 다른 도구를 제공한다. 오늘 다룰 4가지는 S3 업로드 패턴, DataSync, Transfer Family, Snow 패밀리다.
대부분의 AWS 분석 파이프라인에서 데이터가 처음 도착하는 곳은 S3다. S3는 사실상 무제한 용량, 11 9's 내구성, 그리고 Athena·Glue·Redshift Spectrum·EMR이 모두 직접 읽을 수 있는 공통 저장소이기 때문이다. 그래서 "배치 수집 = 어떻게든 S3에 파일을 안전하게 올리기"로 단순화해도 크게 틀리지 않는다.
작은 파일은 단순 PutObject로 충분하지만, 큰 파일(수백 MB 이상)은 멀티파트 업로드(Multipart Upload) 를 써야 한다. 파일을 여러 조각으로 나눠 병렬 전송하고, 한 조각이 실패해도 그 조각만 재전송하면 되므로 대용량 전송이 빠르고 견고해진다.