https://vutr.substack.com/p/i-spent-6-hours-learning-aws-glue
AWS Glue 개요
- 여러 소스(DB, 파일, 스트리밍 등)에서 데이터를 추출·변환·적재(ETL)하고, 메타데이터를 통합 관리하기 위한 서버리스 데이터 통합 서비스.
- Athena, Redshift, S3 등 다양한 AWS 서비스와 긴밀하게 연동해 데이터 레이크나 데이터 웨어하우스로의 파이프라인을 손쉽게 구성하도록 지원함.
- AWS Glue는 ETL, 메타데이터, 오케스트레이션 기능을 하나의 서비스로 제공해, 데이터 엔지니어링 복잡도를 낮춤.
- 스키마 충돌, 확장성, 파티션 관리 등 현실적인 문제들을 자동화와 서버리스 접근으로 해결해, 사용자는 ETL 로직과 데이터 품질에 집중 가능.
- 지속적인 기능 개선(클라우드 셔플, 벡터화 리더, 파티션 인덱스 등)을 통해 대규모·다양한 데이터 처리를 지원하며, 데이터 레이크·웨어하우스 구축을 간소화함.
ETL 스택(Glue Studio, DynamicFrame, 실행 환경 등)

- 서버리스 실행 & 오토스케일링: Glue 2.0+부터 시작 속도를 대폭 줄이고(수초 이내), 작업 중에도 클러스터 사이즈를 동적으로 조정.
- Glue Studio: 시각적 인터페이스에서 노드(소스·변환·싱크)를 연결하면, 자동으로 Spark 스크립트를 생성해 코드 수정을 최소화.
- DynamicFrame: 스키마를 엄격히 요구하지 않고 반정형·중첩 데이터도 유연하게 처리.
- Avro·Parquet 같은 포맷은 파일 헤더에 스키마 정보가 들어있으므로, 데이터를 전부 읽지 않고도 스키마 파악이 용이합니다. 반면 JSON은 별도의 스키마 정보가 없기 때문에, 파일 전체를 살펴봐야 “어떤 필드들이 존재하는지, 각 필드 타입은 무엇인지”를 알 수 있습니다.
- Spark DataFrame은 처리 시작 전(또는 초기에) 전체 스키마를 확정해야 하는데, DynamicFrame은 각 레코드를 읽을 때 바로 개별 필드 구조를 트리 구조로 기록하고, 전체 스키마는 모든 레코드를 한꺼번에 통합하는 과정을 필요할 때 까지 지연(lazy)시킨다고 볼 수 있습니다.
- DynamicFrame은 union type으로 다른 data type을 임시 관리할 수 있고, 최종적으로 어떻게 처리할지는 사용자가 변환 로직에서 결정할 수 있음 (필터링, 타입 변환, 에러 처리 등).

-
Parquet Writer: 스키마 변화를 감지해 자동으로 파일을 분할 생성하므로, 새로운 필드가 생겨도 대응 가능.
-
클라우드 셔플 & 벡터화 리더: Spark 작업 중 발생하는 대규모 데이터 셔플을 S3 등에 저장해 확장성을 높이고, SIMD 기반 파싱으로 CSV·JSON 처리 성능 향상.
- C++ 기반 리더와 Apache Arrow 형태의 컬럼 메모리 구조 사용으로 처리 효율 향상.

Data Catalog(메타데이터 관리)
- Hive Metastore와 호환되는 AWS managed 카탈로그로, 테이블·파티션 등 스키마 정보를 중앙에서 관리.
- 파티션이 수백만 개 이상인 대규모 테이블에 대해 인덱싱 기능을 제공해, 특정 파티션만 빠르게 조회 가능.
- 공개 AWS API를 통해 메타데이터를 CRUD 방식으로 저장·조회.