[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로 수정 했을 때 테이블 생성이 잘 됐음
2-3. 테이블 생성
쿼리 편집기에서 데이터 원본에서 테이블 생성을 선택
그냥 create table로 만들어도 됨
데이터 세트에 버킷 경로를 지정해줌
파일이 있는 하위 폴더까지 지정을 해줘야 함
테이블 유형은 Hive 데이터 형식은 CSV로 지정
열 지정을 해주면 끝
3. 데이터 조회
select * from "test"."test";
테스트 용도로 쓰는 버킷이라 한 폴더에 여러 CSV 파일이 있었는데,
위 사진 처럼 한 폴더 경로에 여러 csv 파일이 있으면 섞여서 나오는 거 같음
쿼리 결과를 저장하는 경로랑 csv파일이 있는 경로를 똑같이 저장해놨더니
실패 결과도 테이블에 저장됐다ㅋㅋ 😅
✔결론
S3에 직접 쿼리를 할 수 있다는 점이 매우 편리함
prefix를 잘 지정해야 할 듯
참조
'💻 CSP > AWS' 카테고리의 다른 글
[AWS] AWS CLI를 사용해 SQS 대기열 관리하기 (0) | 2023.07.02 |
---|---|
[AWS] SQS 모니터링 (0) | 2023.07.01 |
[AWS] S3 & 스토리지 클래스 (0) | 2023.05.30 |
[AWS] Elastic Load Balancer (ELB) (0) | 2023.05.29 |
[AWS] SQS를 다른 AWS 인프라 웹 서비스와 함께 사용 (0) | 2023.05.06 |