빅데이터 관련 자료
Athena 3편: Glue 크롤러로 Athena 테이블 자동 생성하기
carpe08
2025. 4. 14. 09:48
320x100
Athena에서 데이터를 쿼리하려면 테이블(스키마 정보)이 먼저 정의되어 있어야 합니다. 이때 AWS Glue의 크롤러(Crawler)를 활용하면 S3에 있는 데이터를 자동으로 분석해서 Athena에서 바로 사용할 수 있는 테이블로 등록해줍니다.
이 글에서는 Glue 크롤러를 사용해 Athena 분석 환경을 자동화하는 방법을 단계별로 알아보겠습니다.
1. Glue 크롤러란?
Glue 크롤러는 S3의 데이터를 스캔해서:
- 파일 구조와 포맷을 분석하고
- 컬럼 및 타입 정보를 추출하여
- Glue Data Catalog에 테이블을 자동 생성하는 서비스입니다.
Athena는 이 Glue Catalog를 참조해서 테이블처럼 쿼리를 수행합니다.
2. Glue 크롤러 생성 단계
① 크롤러 생성 시작
- AWS Glue 콘솔 → Crawlers → "Create crawler"
② 데이터 소스 설정
- S3 경로 입력 (예: s3://my-logs/year=2024/)
- IAM Role 선택 (S3 및 Glue 접근 권한 필요)
③ 데이터베이스 및 테이블명 지정
- 크롤링 결과가 저장될 Glue Database 지정
- 테이블명은 자동 생성되며, 나중에 수정 가능
④ 크롤러 주기 설정 (선택)
- 수동 실행 또는 주기적으로 실행 (스케줄 지정 가능)
3. 크롤러 실행 결과 확인
크롤러 실행 후:
- Glue Catalog > Tables 메뉴에서 자동 생성된 테이블 확인 가능
- Athena 콘솔 → Database 선택 → 자동 생성된 테이블로 쿼리 가능
SELECT * FROM logs_parquet WHERE year = '2024' LIMIT 10;
4. 크롤러 + 파티셔닝
크롤러는 S3 경로를 분석해 자동으로 파티셔닝도 인식할 수 있습니다.
예:
s3://my-logs/year=2024/month=04/day=01/
→ 자동으로 year, month, day 컬럼이 파티션으로 인식됩니다.
주의: 기존 테이블에 새 파티션이 추가된 경우, 크롤러를 재실행하거나 MSCK REPAIR TABLE 명령어 사용 필요.
5. 실무 활용 팁
- Glue 크롤러를 CloudWatch Events 또는 Step Functions와 연동해 자동화하면, 새로운 데이터가 들어올 때마다 테이블을 최신 상태로 유지 가능
- ETL 파이프라인의 시작점으로도 유용함
- 동일한 S3 경로에 포맷이 다른 파일이 섞이면 오류 발생 가능 → 저장 형식 관리 중요
마무리
Athena를 정기적으로 사용한다면, Glue 크롤러는 없어서는 안 될 필수 도구입니다. 데이터가 바뀔 때마다 수동으로 테이블 정의를 수정하는 대신, 크롤러를 활용해 자동화된 데이터 카탈로그 환경을 구축해보세요.
320x100
320x100