Athena 1편: S3에서 SQL로 데이터 조회하기
잡학다식의 지식공방

빅데이터 관련 자료

Athena 1편: S3에서 SQL로 데이터 조회하기

carpe08 2025. 4. 12. 09:45
320x100

AWS Athena는 S3에 저장된 데이터를 SQL로 바로 조회할 수 있는 서버리스 쿼리 서비스입니다. 인프라를 직접 구성할 필요 없이 빠르게 분석 작업을 시작할 수 있어, 로그 분석, BI 대시보드, 임시 쿼리에 자주 활용됩니다.


Athena는 어떤 서비스인가요?

  • 서버리스: EC2나 RDS처럼 인스턴스를 띄우지 않아도 됩니다. 쿼리한 만큼만 비용을 지불합니다.
  • SQL 인터페이스: 표준 SQL을 사용하므로 진입 장벽이 낮습니다.
  • S3 기반: S3에 저장된 다양한 포맷(CSV, JSON, Parquet 등)의 데이터를 바로 조회할 수 있습니다.

Athena 기본 아키텍처

  1. S3: 분석 대상 데이터가 저장된 장소
  2. Glue Data Catalog: 테이블 스키마를 저장하는 메타데이터 저장소 (Athena가 참조)
  3. Athena: SQL을 실행하는 콘솔 또는 API 인터페이스
  4. 결과 저장 버킷: 쿼리 결과가 저장되는 지정된 S3 경로

사용 방법 요약

1. S3에 데이터 업로드

  • 예: s3://my-bucket/logs/2024-01-01.csv

2. Glue에서 테이블 생성 (또는 Athena에서 직접)

CREATE EXTERNAL TABLE IF NOT EXISTS logs (
  ip string,
  url string,
  status int,
  timestamp string
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
WITH SERDEPROPERTIES (
  'serialization.format' = ','
)
LOCATION 's3://my-bucket/logs/';

3. Athena에서 SQL 쿼리 실행

SELECT url, COUNT(*) as cnt
FROM logs
WHERE status = 200
GROUP BY url
ORDER BY cnt DESC
LIMIT 10;

Athena 요금 구조

  • 스캔한 데이터 기준 요금 부과 (기본: $5/TB)
  • 따라서 데이터 포맷(Parquet 추천), 파티셔닝, 압축이 매우 중요합니다.

사용 팁

  • Parquet, ORC 형식으로 변환하여 저장하면 최대 30~90% 비용 절감
  • Glue 크롤러를 주기적으로 실행해 테이블 최신화 가능
  • 쿼리 결과가 저장되는 S3 버킷을 주기적으로 정리하거나 수명 주기(Lifecycle) 설정 권장

결국

Athena는 복잡한 인프라 없이도 빠르고 쉽게 데이터를 분석할 수 있는 도구입니다. S3 + Glue + Athena의 조합만 잘 이해하면 로그 분석부터 BI, 머신러닝 전처리까지 다양하게 확장할 수 있어요. 다음 글에서는 Athena 성능 최적화에 대해 소개하겠습니다!

 

 

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

3편: https://carpe08.tistory.com/453

출처: https://carpe08.tistory.com/452 [이서's 잡학다식:티스토리]

320x100
320x100