💻 CSP/AWS

[AWS] AWS Athena

heywantodo 2023. 6. 2. 17:59
728x90
반응형

[AWS] AWS Athena

Amazon Athena 

오픈소스 프레임워크에 구축된 서버리스 대화형 분석 서비스로 개방형 테이블과 파일 형식을 지원

Athena는 페타바이트 규모의 데이터를 분석할 수 있는 유연한 방식을 제공함 

 

S3 (Simple Storage Service) 데이터 레이크 및 온프레미스, SQL, Python을 사용하는 시스템을 포함하는 

25개 이상의 데이터 소스로부터 데이터를 분석하거나 애플리케이션을 구축할 수 있음

 

Athena는 Trino(Presto) 엔진과 Apache Spark 프레임워크로 구축되었으며,

프로비저닝이나 구성 작업이 필요 없음

 

쿼리 할 데이터 크기가 클수록 스캔 비용이 늘어나므로, 스캔한 데이터 사이즈 최소화가 중요함

 

특징

  • 별 다른 설치 없이 사용이 가능 
  • 쿼리를 병렬로 실행하여 빠르게 결과를 얻을 수 있음
  • 다른 AWS와 강력한 통합을 제공
  • 실제로 실행한 쿼리에 대해서만 비용을 지불 
  • 다양한 데이터 포맷 (Parquet, ORC, CSV, JSON) 등을 지원

 

AWS Athena 사용해보기

S3에 올라와있는 CSV 파일을 조회하는 과정을 진행

S3에 CSV 파일(다른 형식도 가능)이 업로드 되어 있어야 함 

 

1. 로컬에서 S3로 csv 파일 업로드를 해주기

나는 cli로 upload 했지만, 콘솔에서 업로드 해도됨

aws s3 cp test.csv s3://bucket-name

 

2. Athena에서 Database 생성

 

2-1. 쿼리 편집기에서 설정 편집을 선택 후 쿼리 결과를 저장 할 S3 경로 지정

2-2. 데이터 베이스 생성

⚠ 사진에는 데이터 베이스 이름에 " _" 가 들어갔는데 넣으면 Table 생성이 안됨

test_db를 test로 수정 했을 때 테이블 생성이 잘 됐음

생성한 DB로 변경해줌

2-3. 테이블 생성

쿼리 편집기에서 데이터 원본에서 테이블 생성을 선택

그냥 create table로 만들어도 됨

데이터 세트에 버킷 경로를 지정해줌

파일이 있는 하위 폴더까지 지정을 해줘야 함  

테이블 유형은 Hive 데이터 형식은 CSV로 지정 

열 지정을 해주면 끝

 

3. 데이터 조회

select * from "test"."test";

데이터가 다 섞여서 엉망으로 나온다 ㅋㅋ

테스트 용도로 쓰는 버킷이라 한 폴더에 여러 CSV 파일이 있었는데, 

위 사진 처럼 한 폴더 경로에 여러 csv 파일이 있으면 섞여서 나오는 거 같음

 

쿼리 결과를 저장하는 경로랑 csv파일이 있는 경로를 똑같이 저장해놨더니

실패 결과도 테이블에 저장됐다ㅋㅋ 😅

 

✔결론

S3에 직접 쿼리를 할 수 있다는 점이 매우 편리함

prefix를 잘 지정해야 할 듯 

 

참조

https://inpa.tistory.com/entry/AWS-%F0%9F%93%9A-Athena-%EC%82%AC%EC%9A%A9%EB%B2%95-%EC%A0%95%EB%A6%AC-S3%EC%97%90-%EC%A0%80%EC%9E%A5%EB%90%9C-%EB%A1%9C%EA%B7%B8-%EC%BF%BC%EB%A6%AC%ED%95%98%EA%B8%B0

 

728x90
반응형