AWS Athena: 알아야 할 모든 것
게시 됨: 2022-05-02AWS Athena는 AWS S3에 저장된 데이터에 대한 유연하고 비용 효율적인 쿼리 서비스입니다.
AWS는 세계에서 가장 큰 클라우드 제공업체 중 하나입니다. 클라우드 스토리지 및 컴퓨팅 요구 사항을 위한 다양한 서비스를 제공합니다. AWS S3는 AWS 플랫폼에서 가장 인기 있는 서비스 중 하나입니다. 클라우드에서 가장 저렴한 스토리지 옵션 중 하나인 동시에 탁월한 내구성과 데이터 가용성을 제공합니다.

다양한 기능과 이론적으로 무한한 스토리지를 감안할 때 S3 버킷에 테라바이트 또는 페타바이트의 데이터를 저장할 수 있습니다. 이러한 데이터를 분석하는 것은 모든 파일을 수동으로 열고 페바이트의 데이터를 읽는 경우 거의 불가능합니다. 여기에서 AWS Athena 서비스가 등장합니다.
간단히 말해서 AWS Athena는 SQL 쿼리를 사용하여 S3 버킷에서 사용 가능한 데이터에 간단히 액세스하여 데이터 분석 서비스로 사용됩니다. 따라서 SQL의 기초도 이해한다면 AWS Athena로 S3 데이터 분석 작업을 시작할 수 있습니다.
짧은 예를 들어 이것을 이해합시다. 조직의 여러 계정에 있는 모든 밸런서에 대한 액세스 로그 버킷으로 버킷 중 하나를 구성했다고 가정하겠습니다. 수년간의 로그 데이터를 쿼리하고 이러한 로그 파일에서 중요한 의미 있는 통찰력을 얻으려면 어떻게 해야 합니까? 정답은 AWS Athena입니다.
AWS Athena의 기능
- SQL 기반 도구: AWS Athena는 사용이 매우 간편한 SQL 기반 서비스입니다. Athena가 버킷 중 하나를 가리키도록 하고 데이터 스키마를 정의한 다음 버킷에서 SQL 쿼리를 사용하기 시작하기만 하면 됩니다.
- 서버리스: AWS Athena를 실행하기 위해 인프라를 유지할 필요가 없습니다. Athena는 서버리스이며 요구 사항에 따라 여러 컴퓨팅 리소스를 자동으로 사용하도록 최적화되어 있습니다.
- 빠르고 최적화됨: Athena는 효율적인 리소스 수를 사용하여 쿼리 결과를 최대한 빨리 제공하도록 최적화되었습니다. S3 데이터의 작고 복잡한 분석에 적합합니다.
- 비용 효율성: Athena는 사용한 만큼만 지불하는 서비스입니다. 즉, AWS Athena 사용에 대한 기본 비용이 없습니다. Athena 서비스에서 실행하는 쿼리에 대해서만 비용을 지불합니다.
- 데이터의 내구성 및 가용성: Athena는 S3 버킷의 데이터에 의존하므로 데이터의 가용성과 내구성이 높으므로 안심할 수 있습니다.
- 지원: Athena는 JSON, CSV, Avro, ORC 등과 같은 여러 파일 형식을 지원합니다.
- 보안: Athena는 IAM, 버킷 정책 및 ACL과 같은 보안 기능을 활용하여 매우 안전합니다.
- Athena 백엔드: Athena는 오픈 소스 Presto를 백엔드로 사용합니다. Presto는 빅 데이터 워크로드를 쿼리하고 분석하기 위한 분산 SQL 엔진입니다.
AWS Athena의 요금 및 최적화
AWS Athena를 사용할 때 AWS Athena를 사용할 때 스캔한 테라바이트당 5$의 요금이 부과됩니다. 이 가격은 일부 AWS 리전에서 약간 다를 수 있습니다.
- 효율적인 쿼리 : SQL에 익숙하다면 SQL을 사용하여 데이터에서 특정 결과를 얻는 방법이 여러 가지가 있다는 것을 알아야 합니다. Athena를 최적화하기 위해 쿼리를 실행하는 데 더 적은 시간이 소요되는 효율적인 쿼리를 사용할 수 있습니다.
- 데이터 변환: 쿼리를 더 최적화하려면 데이터를 압축, 분할 또는 더 작은 데이터 세트로 변환하여 쿼리 실행 시간을 더욱 줄일 수 있습니다. 데이터 변환을 사용하면 쿼리를 최대 90%까지 최적화할 수 있습니다.
- 가상 테이블 조인: 테이블 조인은 SQL의 매우 중요한 기능입니다. 간단한 작업처럼 보이지만 매우 복잡한 작업일 수 있습니다. 왼쪽에는 큰 테이블을, 오른쪽에는 데이터가 적은 테이블을 두는 것이 좋습니다.
AWS Athena와 Redshift Spectrum의 차이점
Redshift Spectrum은 AWS S3 버킷에서 쿼리를 실행하는 데 사용할 수 있는 또 다른 서비스입니다. Redshift Spectrum과 Athena는 모두 서버가 없고 S3에서 복잡한 쿼리를 실행할 수 있으며 처리된 데이터의 테라바이트당 5%로 가격이 책정됩니다. 그렇다면 차이점은 무엇입니까?

성능
AWS Athena는 AWS에서 제공하는 리소스 풀의 계산 리소스를 사용합니다. 반면 Redshift 스펙트럼은 Redshift 클러스터 크기에 따라 할당된 리소스를 사용합니다. 이를 통해 Redshift Spectrum 서비스에서 사용 중인 리소스를 더 잘 제어할 수 있으며, 향상된 성능을 원하는 경우 언제든지 Redshift 클러스터의 크기를 늘릴 수 있습니다.
처리할 데이터 로드
두 서비스 모두 데이터에 대한 SQL 쿼리를 실행하기 위해 가상 테이블을 사용합니다. 가상 테이블은 스키마 관리를 위해 Glue 데이터 카탈로그를 사용하여 만들어집니다. Athena는 Glue 데이터 카탈로그 스키마의 데이터를 직접 사용할 수 있지만 Redshift Spectrum을 사용하는 경우 Glue 데이터 카탈로그 스키마에서 외부 테이블을 구성해야 합니다.
이것이 두 서비스 간의 주요 차이점이므로 Redshift 스펙트럼과 Athena 중에서 선택할 때입니다. Redshift 데이터 웨어하우스에 저장된 데이터와 함께 S3의 데이터를 쿼리하거나 S3의 쿼리 성능을 개선하기 위해 더 많은 비용을 지불할 의향이 있는 경우 Redshift Spectrum을 사용해야 합니다. Athena는 모든 데이터가 S3 버킷에만 있는 경우에 유용할 수 있습니다.
AWS Athena와 S3 Select의 차이점
S3 select는 SQL을 사용하여 S3의 데이터를 쿼리하는 AWS의 또 다른 서버리스 서비스입니다. 그러나 S3 Select와 Athena의 주요 차이점은 S3 Select를 사용할 때 SQL SELECT 쿼리만 사용할 수 있는 반면 Athena는 모든 종류의 SQL 쿼리에 사용할 수 있다는 것입니다. S3 선택의 또 다른 제한 사항은 한 번에 하나의 개체에 대해서만 SELECT 작업을 수행할 수 있다는 것입니다.
따라서 요구 사항이 S3 객체에서 데이터 또는 데이터의 하위 집합만 가져오는 것이라면 S3 Select를 사용해야 합니다. JOIN과 같은 복잡한 쿼리 및 작업의 경우 또는 전체 S3 버킷의 데이터를 처리하려면 AWS Athena를 사용해야 합니다.
AWS Athena 사용의 이점
- Athena를 사용하면 데이터에 대해 복잡하고 값비싼 데이터 분석 도구를 개발할 필요가 없습니다.
- Athena는 서버리스이므로 상당히 사용하기 쉬운 서비스입니다. 인프라를 유지 관리할 필요가 없습니다.
- AWS는 Athena 쿼리를 실행한 후 몇 초 이내에 쿼리 결과를 검색할 수 있도록 Athena를 최적화했습니다.
- Athena는 서버리스이므로 Athena 서비스에 대한 비용을 지불할 필요가 없습니다. 실행하기로 선택한 쿼리에 대해서만 비용을 지불합니다. 쿼리를 취소하더라도 전체 쿼리가 아닌 처리된 데이터에 대해서만 비용이 청구됩니다.
- Athena는 다른 AWS 서비스와 쉽게 통합할 수 있습니다. AWS Athena에 대한 가장 중요하고 가치 있는 통합 중 하나는 AWS Glue 서비스와의 통합입니다. AWS Glue는 데이터를 더 효율적이고 읽기 쉬운 형식으로 변환하는 데 사용할 수 있는 ETL 서비스로, AWS Athena로 분석할 수 있습니다.
- Athena를 사용하면 여러 쿼리를 동시에 실행할 수 있습니다.
AWS Athena의 제한 사항
- 행 크기: 가상 AWS Athena 테이블의 행 크기는 32MB를 초과해서는 안 됩니다. 이 제한은 CSV 및 JSON 파일의 경우 최대 100MB로 매우 제한된 경우 증가할 수 있지만 원치 않는 오류를 방지하려면 행 크기를 32MB로 제한하는 것이 좋습니다.
- 숨겨진 파일: 이름이 밑줄(_) 또는 점(.)으로 시작하는 파일은 Athena 서비스에서 숨겨진 파일로 처리됩니다. 원치 않는 파일 처리를 방지하기 위한 기능으로 사용할 수 있습니다.
- Athena는 S3 Glacier 또는 S3 Glacier Deep Archive에서 데이터를 처리할 수 없습니다 . 이러한 스토리지 클래스는 데이터 보관 옵션 전용이며 검색 시간은 몇 분에서 몇 시간이므로 AWS Athena가 이러한 클래스에서 데이터를 검색할 수 없는 경우 이해합니다.
- Athena는 저장 프로시저 를 지원하지 않습니다.
- Athena 버전 1 은 매개변수화된 쿼리를 지원하지 않습니다 . 이것은 Athena 버전 2에서 지원됩니다.
- MERGE, UPDATE, CREATE TABLE LIKE,
DESCRIBE INPUT
및DESCRIBE OUTPUT
과 같은 문은 지원되지 않습니다.
결론
이 기사에서는 AWS Athena의 데이터 분석 도구, 그 기능, 장점 및 몇 가지 제한 사항에 대해 논의했습니다. Athena는 S3 버킷의 데이터를 처리하고 분석하기 위한 가장 강력한 도구 중 하나입니다. 서비스의 제한 사항조차도 매우 간단하며 필요한 경우 해결할 수 있습니다.
AWS S3 스토리지를 보호하기 위한 몇 가지 모범 사례를 살펴볼 수도 있습니다.