본문 바로가기

SW LAB/Cloud

AWS Athena : 소개

Amazon Athena 란 ?

Amazon Athena는 표준 SQL을 사용해 Amazon S3에 저장된 데이터를 간편하게 분석할 수 있는 대화식 쿼리 서비스입니다. Athena는 서버리스 서비스이므로 관리할 인프라가 없으며 실행한 쿼리에 대해서만 비용을 지불하면 됩니다.
Athena는 사용이 쉽습니다. Amazon S3에 저장된 데이터를 가리키고 스키마를 정의한 후 표준 SQL을 사용하여 쿼리를 시작하기만 하면 됩니다. 그러면 대부분 결과가 수 초 이내에 제공됩니다. Athena에서는 데이터 분석을 준비하기 위한 복잡한 ETL 작업이 필요 없습니다. 따라서 SQL을 다룰 수 있는 사람은 누구나 신속하게 대규모 데이터 세트를 분석할 수 있습니다.
Athena는 AWS Glue 데이터 카탈로그와 즉시 통합되므로, 다양한 서비스에 걸쳐 통합된 메타데이터 리포지토리를 생성하고, 데이터 원본을 크롤링하여 스키마를 검색하고 카탈로그를 신규 및 수정된 테이블 정의와 파티션 정의로 채우며, 스키마 버전을 관리할 수 있습니다.

장점

즉각적인 쿼리 시작

*서버리스, ETL 불필요 *
Athena는 서버리스 서비스입니다. 서버나 데이터 웨어하우스를 설정하거나 관리할 필요 없이 데이터 쿼리를 빠르게 실행할 수 있습니다. Amazon S3에 저장된 데이터를 지정하고 스키마를 정의한 다음 기본적으로 제공되는 쿼리 편집기를 사용해 쿼리를 시작하면 됩니다. Amazon Athena는 복잡한 ETL 프로세스를 설정하지 않고도 S3에 저장된 모든 데이터를 이용할 수 있습니다.

쿼리당 비용 지불

*스캔한 데이터에 대해서만 비용 지불 *
Amazon Athena에서는 실행한 쿼리에 대한 비용만 지불합니다. 비용은 쿼리를 실행하면서 스캔한 1테라바이트의 데이터 용량당 5 USD입니다. 데이터를 압축 및 파티셔닝하고 컬럼 형식으로 변환함으로써 쿼리당 비용을 30%에서 90% 절감하고 성능을 더 향상할 수 있습니다. Athena는 Amazon S3에서 직접 데이터 쿼리를 실행합니다. 따라서 S3 외에 별도로 스토리지 비용이 발생하지 않습니다.

개방성, 강력함, 표준

*Presto 기반, 표준 SQL 실행 *
Amazon Athena는 ANSI SQL을 지원하는 Presto를 사용하며, CSV, JSON, ORC, Avro, Parquet 등 다양한 표준 데이터 형식과 호환됩니다. 이 서비스는 빠른 속도의 임시 쿼리에 적합하지만 대용량 조인, 창 함수, 어레이 등 복잡한 분석을 처리하는 데도 손색이 없습니다. 또한 가용성이 뛰어나기 때문에 여러 설비에서, 혹은 단일 설비의 여러 디바이스에서 컴퓨팅 리소스를 사용해 쿼리를 실행하기도 합니다. Amazon Athena는 Amazon S3를 기본 데이터 스토어로 사용하여 데이터 가용성과 내구성이 매우 우수합니다.

매우 빠른 속도

*대용량 데이터세트에서도 대화식 성능 구현 *
Amazon Athena에서는 빠른 속도의 대화식 쿼리 성능을 구현하기 위해 컴퓨팅 리소스가 충분한지 걱정할 필요가 없습니다. Amazon Athena가 병렬 방식으로 쿼리를 자동 실행하기 때문에 대부분 결과가 수 초 만에 반환됩니다.

성능 10가지 TIP

https://aws.amazon.com/ko/blogs/korea/top-10-performance-tuning-tips-for-amazon-athena/

제한 사항

Query

DDL 쿼리 할당량 : 20 DDL (DDL에 Create Table, Create Table Add Partition 포함)
DDL 쿼리 시간 초과 : 600분
DML 쿼리 할당량 : 20 DML (DML에 Select, CTAS 포함)
DML 쿼리 시간 초과 : 30분
Query 문자열 최대 길이 : 262144 바이트

작업 그룹

  • Athena 서비스 할당량은 계정의 모든 작업 그룹 간 공유 됨
  • 한 계정에서 리전별로 생헝할 수 있는 최대 작업 그룹 수는 1,000개
  • 작업 그룹당 최대 태그 수는 50개

S3 Bucket

  • S3에는 계정당 버킷 100개의 기본 서비스 할당량이 있음
  • Athena 에서 결과를 기록하기 위해 별도의 버킷이 필요
  • 계정당 S3 버킷 최대 1,000개의 할당량 증가 요청 가능

계정당 API 호출 할당량

Athena API에는 계정당 API에 호출할 수 있는 수에 다음과 같은 기본 할당량이 있음 (Query가 아님)

API 이름 초당 기본 호출 수 버스트 용량
BatchGetNamedQuery, ListNamedQueries, ListQueryExecutions 5 최대 10개
CreateNamedQuery, DeleteNamedQuery, GetNamedQuerye 5 최대 20개
BatchGetQueryExecution 20 최대 40개
StartQueryExecution, StopQueryExection 20 최대 80개
GetQueryExecution, GetQueryResults 100 최대 200개

예로, StartQueryExecution 가 초당 최대 20회 호출할 수 있고, 4초동안 응답이 없을 시 최대 80회 호출의 버스트 용량이 누적됩니다.
버스트 용량이 초과된 경우, ClientError: An error occurred (ThrottlingException) when calling the <API_name> operation: Rate exceeded와 같이 에러가 발생합니다.

'SW LAB > Cloud' 카테고리의 다른 글

AWS Athena : 최적화  (0) 2020.04.24
AWS CloudFront : 소개  (0) 2020.04.24
AWS Athena : 소개  (0) 2020.04.24
CDN 관련 용어집  (0) 2020.04.24
AWS Networking Cookbook : (1) VPC 구성 (기본편)  (0) 2020.04.24
AWS 용어 정리  (0) 2020.04.24

태그