빅데이터 관련 자료

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 크롤러는 없어서는 안 될 필수 도구입니다. 데이터가 바뀔 때마다 수동으로 테이블 정의를 수정하는 대신, 크롤러를 활용해 자동화된 데이터 카탈로그 환경을 구축해보세요.

 

1편: https://carpe08.tistory.com/451

2편: https://carpe08.tistory.com/452

320x100
320x100