이 카탈로그는 Athena, Redshift Spectrum, EMR, SageMaker, Glue ETL이 공통으로 참조한다. 한 번 등록하면 모든 분석/ML 도구가 같은 스키마를 본다.
저장하는 것
저장하지 않는 것
테이블·컬럼 이름과 타입
실제 데이터 행
S3 위치(Location)
데이터의 복사본
파일 포맷·SerDe
변환 로직
파티션 목록
쿼리 결과
Glue Data Catalog는 Apache Hive의 Metastore를 계승한 개념이다. Hive는 2009년 Facebook이 HDFS 위에서 SQL을 쓰기 위해 만든 시스템인데, 핵심 발상이 "데이터(HDFS 파일)와 스키마(Metastore)를 분리"하는 것이었다. 이 분리가 곧 schema-on-read다. 데이터를 쓸 때 스키마를 강제하는 전통 DB(schema-on-write)와 달리, 데이터 레이크는 일단 원본을 저장하고 읽을 때 스키마를 적용한다. 덕분에 다양한 포맷·소스의 데이터를 유연하게 수용할 수 있다.
크롤러는 같은 폴더에 스키마가 다른 파일들이 섞여 있으면 여러 테이블로 쪼개거나 하나로 합치거나 한다. 이 동작은 크롤러 설정의 "schema change policy"와 "grouping behavior"로 제어한다. 시험 함정: 크롤러를 다시 돌렸을 때 새 컬럼이 추가되면 기본적으로 스키마를 업데이트하지만, 컬럼 삭제는 정책에 따라 무시할 수도 있다. 또한 크롤러가 파티션을 매번 풀스캔하지 않게 "crawl new folders only" 옵션을 쓰면 비용이 준다.
새 파티션을 인식시키는 방법은 크롤러만 있는 게 아니다.
방법
어떻게
언제 유리
Glue Crawler 재실행
경로 스캔 후 자동 등록
스키마도 함께 바뀔 때
MSCK REPAIR TABLE
Athena가 Hive 경로를 훑어 파티션 등록
파티션만 늘어났을 때
ALTER TABLE ADD PARTITION
특정 파티션을 명시적으로 추가
소수의 파티션만 추가
Partition projection
경로 규칙을 미리 정의해 스캔 없이 계산
파티션이 매우 많고 규칙적일 때
⚠️ 함정: "파티션을 추가했는데 Athena가 못 찾는다"는 시나리오에서 무조건 크롤러 재실행을 고르면 비용·시간 면에서 최선이 아닐 수 있다. 스키마 변화 없이 파티션만 늘었다면 MSCK REPAIR TABLE이나 partition projection이 더 가볍다.
Glue Job의 과금 단위는 DPU(Data Processing Unit) — 4 vCPU + 16GB 메모리 — 이고, 실행 시간에 비례한다. 서버리스라 클러스터 프로비저닝이 없다.
Glue ETL의 세 가지 실행 타입 — 데이터 크기가 선택을 가른다.
타입
엔진
적합한 데이터
주의
Spark
분산 Spark
수 GB~TB급 대규모 변환
클러스터 시작 오버헤드
Python Shell
단일 Python 프로세스
수 MB~수백 MB 단순 스크립트
분산 처리 불가
Glue Streaming
Spark Structured Streaming
Kinesis/Kafka 마이크로배치
상시 실행 비용
작은 데이터에 Spark Job을 쓰면 클러스터 시작 오버헤드 때문에 느리고 비싸다. 시험에서 "수 MB의 작은 변환"이면 Python Shell이 더 적합하다.
ETL(Extract-Transform-Load)과 ELT(Extract-Load-Transform)의 차이를 알아 둘 필요가 있다. 전통 ETL은 변환을 먼저 하고 데이터웨어하우스에 적재한다. 클라우드 데이터 레이크에서는 일단 Raw로 적재(Load)한 뒤 변환(Transform)하는 ELT가 흔하다. S3가 싸고, 컴퓨트를 분리할 수 있기 때문이다. Glue는 둘 다 지원하지만, 데이터 레이크 맥락에서는 ELT 패턴이 자주 쓰인다.
데이터 사이언티스트가 Spark 코드를 쓰지 않고 시각적으로 데이터를 정제·변환하고 싶을 때 Glue DataBrew를 쓴다.
250개 이상의 사전 정의 변환: 결측치 처리, 이상치 제거, 원-핫 인코딩, 정규화, 날짜 파싱 등.
데이터 프로파일링: 컬럼별 분포, 결측 비율, 상관관계, 이상치를 자동 리포트.
레시피(recipe): 적용한 변환 단계를 저장해 재사용·스케줄링.
코드 없이 GUI로 작업하고, 결과를 S3에 출력.
구분
Glue ETL Job
Glue DataBrew
인터페이스
코드(PySpark/Scala)
노코드 GUI
사용자
데이터 엔지니어
데이터 분석가/사이언티스트
규모
대규모 분산
중소 규모 + 프로파일링
강점
복잡한 커스텀 로직
빠른 탐색·정제, 시각화
재사용 단위
스크립트
레시피(recipe)
정답 키워드
"대규모 변환", "커스텀 로직"
"노코드", "비기술 사용자", "프로파일링"
DataBrew의 진짜 가치는 ML 전처리에서의 데이터 프로파일링이다. 모델을 만들기 전 "이 컬럼의 결측률이 40%다", "이 피처는 타깃과 상관이 0이다" 같은 사실을 코드 없이 빠르게 발견할 수 있다. 이는 Day 3에서 다룰 EDA(탐색적 데이터 분석)와 직결된다.