본문 바로가기
카테고리 없음

Amazon Athena 구성 요소, 쿼리 및 성능 최적화, 활용 사례

by jranke 2025. 3. 11.

Amazon Athena는 서버리스(Serverless) 기반의 대화형 SQL 쿼리 서비스로, 사용자가 직접 인프라를 관리할 필요 없이 S3에 저장된 데이터에 대해 표준 SQL을 사용하여 즉시 분석할 수 있는 기능을 제공합니다. 

 

Amazon Athena Architecture
Amazon Athena Architecture [출처:https://www.xenonstack.com/blog/amazon-athena-quicksight]

Amazon Athena 구성 요소

Amazon Athena는 AWS S3에 저장된 데이터를 직접 분석할 수 있도록 설계된 서버리스 SQL 쿼리 서비스입니다.

 

Amazon Athena의 주요 특징

  • 서버리스(Serverless): 인프라를 직접 설정하거나 관리할 필요 없음
  • S3 데이터 분석: S3에 저장된 다양한 포맷의 데이터를 SQL로 직접 조회 가능
  • 표준 SQL 지원: ANSI SQL을 사용하여 데이터 분석 수행 가능
  • 자동 확장: 요청량에 따라 자동으로 확장되어 성능을 최적화
  • 비용 효율적: 사용한 만큼만 비용이 청구되며, 실행된 쿼리 데이터 양(스캔된 데이터 크기)에 따라 요금 부과

Amazon Athena의 기능을 온전히 활용하려면 데이터 카탈로그(Data Catalog), 테이블(Table), 쿼리(Query) 등 주요 구성요소를 이해해야 합니다.

 

1. 데이터 카탈로그 (AWS Glue Data Catalog)

데이터 카탈로그는 Amazon Athena가 S3의 데이터를 인식하고 분석할 수 있도록 하는 핵심 메타데이터 관리 시스템입니다.

데이터 카탈로그의 역할

  • 테이블 및 데이터베이스 관리
  • 스키마 저장 (데이터의 열(Column) 및 데이터 타입 저장)
  • 데이터 분할(Partitioning) 관리
  • AWS Glue Crawler를 사용하여 S3의 데이터를 자동으로 인식하고 테이블을 생성

2. 테이블 (Table) 및 데이터 저장 형식

Athena는 구조화된 데이터를 테이블 형태로 인식하여 SQL을 사용할 수 있도록 합니다.

지원하는 데이터 형식

  • CSV - 단순한 텍스트 파일, 압축 가능
  • JSON - 비정형 데이터 처리 가능
  • Parquet - 컬럼 기반 저장, 빠른 쿼리 가능 (가장 추천되는 형식)
  • ORC - Parquet과 유사, 빠른 읽기 속도

 

 

쿼리 및 성능 최적화

Athena는 표준 SQL(ANSI SQL)을 지원하여 데이터를 분석할 수 있으며, 쿼리 성능을 최적화하는 것이 매우 중요합니다.

1. 적절한 파일 형식 사용

  • Parquet 및 ORC와 같은 컬럼 형식 파일 사용
  • 압축된 형식의 파일을 사용하여 스캔 데이터 크기 최소화
  • JSON 및 CSV 대신 최적화된 포맷 활용

2. 파티셔닝 및 버킷팅 활용

  • S3 데이터셋을 파티셔닝하여 쿼리 속도 향상
  • 날짜, 지역, 사용자 ID 등의 컬럼을 기준으로 파티션 분할
  • 특정 파티션만 조회하도록 WHERE 절에 파티션 컬럼 포함
  • 버킷팅을 사용하여 데이터 균형 분배 및 성능 개선

3. 최적의 컬럼 선택 및 Projection 적용

  • SELECT * 대신 필요한 컬럼만 조회
  • 컬럼 수를 줄여 불필요한 데이터 스캔 방지
  • AWS Glue Data Catalog의 파티션 Projection 기능 활용

4. 파일 크기 및 개수 최적화

  • 너무 작은 파일 다수 생성 방지 및 병합 수행
  • 128MB~512MB 크기의 파일을 유지하여 성능 최적화
  • S3 파일 수를 줄여 메타데이터 처리 속도 향상

5. 데이터 압축 적용

  • Gzip, Snappy, Zlib 등의 압축 형식 사용
  • Parquet 및 ORC 사용 시 기본 제공 압축 기능 활용
  • 압축된 데이터에서 직접 쿼리 실행하여 성능 향상

6. JOIN 연산 최적화

  • 브로드캐스트 JOIN을 피하고, 키 컬럼을 기준으로 분할
  • 중복 데이터를 제거하고 DISTINCT 및 GROUP BY 연산 최적화
  • 큰 테이블을 작은 테이블과 조인할 때 오른쪽 테이블을 최소화

7. 쿼리 캐싱 및 결과 재사용

  • 동일한 쿼리를 반복 실행할 경우 쿼리 결과 캐시 활용
  • 캐시된 데이터를 사용하여 비용 절감 및 응답 속도 향상
  • 쿼리 실행 결과를 S3에 저장하여 재사용 가능

 

 

활용 사례

1. 로그 분석

  • S3에 저장된 Apache 로그, CloudTrail 로그, ELB 로그 등을 SQL로 분석 가능
  • 빠른 오류 탐색 및 원인 분석 수행
  • 보안 감사 및 비정상적인 접근 기록 탐지
  • 특정 기간의 API 호출 내역 분석
  • 의심스러운 로그인 시도 및 권한 변경 사항 추적

2. 데이터 레이크 구축

  • S3를 데이터 레이크로 활용하여 다양한 소스의 데이터 통합 관리
  • 데이터 웨어하우스 없이 원본 데이터 즉시 분석 가능
  • IoT 기기, 클릭스트림, 애플리케이션 로그 등의 데이터 저장 및 분석
  • 별도의 데이터 변환 없이 다양한 형식의 데이터 조회 가능
  • 데이터 수집부터 분석까지의 시간 단축

3. 비즈니스 인텔리전스(BI) 연동

  • Amazon QuickSight, Tableau, Power BI 등과 연동하여 데이터 시각화 가능
  • 매출 분석, 고객 유지율 분석, 사용자 행동 분석 가능
  • 실시간 데이터 대시보드 구축 가능
  • 마케팅 전략 수립을 위한 고객 구매 패턴 분석 가능
  • 경영진 및 비즈니스 부서의 데이터 해석 지원

4. ETL(Extract, Transform, Load) 작업 간소화

  • AWS Glue와 결합하여 데이터 카탈로그 자동화 가능
  • S3에 저장된 데이터를 직접 분석하여 ETL 과정 간소화
  • 금융 및 트랜잭션 데이터 분석을 통한 이상 거래 감지 가능
  • 데이터 파이프라인 구축 비용 절감 가능
  • 데이터 변환 없이 즉시 SQL 쿼리 실행 가능

Amazon Athena는 서버리스 데이터 분석을 위한 강력한 솔루션으로, 데이터를 직접 저장하지 않고 S3에서 분석할 수 있습니다.