Amazon Athena FAQ

일반

Athena는 SQL을 사용해 Amazon Simple Storage Service(S3)의 데이터를 간편하게 분석할 수 있는 대화형 분석 서비스입니다. Athena는 서버리스 서비스이므로 설정하거나 관리할 인프라가 없으며 데이터 분석을 즉시 시작할 수 있습니다. Athena로 데이터를 로드할 필요 없이 Amazon S3에 저장된 데이터를 직접 사용하면 됩니다. Amazon Athena for SQL은 표준 SQL을 완벽하게 지원하는 Trino 및 Presto를 사용하며, CSV, JSON, Apache ORC, Apache Parquet, Apache Avro 등 다양한 표준 데이터 형식과 호환됩니다. Athena for Apache Spark는 SQL을 지원하며 빅 데이터 워크로드에 사용되는 오픈 소스 분산형 처리 시스템인 Apache Spark를 사용할 수 있습니다. 시작하려면 Athena Management Console에 로그인하고 쿼리 편집기 또는 노트북을 사용하여 데이터 상호 작용을 시작합니다.

Athena를 사용하면 온프레미스 데이터 소스 또는 기타 클라우드 시스템을 포함하여 30개 이상의 다양한 데이터 소스와 S3에 저장된 데이터를 분석할 수 있습니다. Athena를 사용하면 데이터를 집계하거나 Athena로 로드할 필요 없이 ANSI SQL 또는 Python을 사용한 대화형 분석을 실행할 수 있습니다. Athena는 비정형, 반정형, 정형 데이터 세트를 처리할 수 있습니다. 예를 들어, CSV, JSON, Avro 또는 열 기반 데이터 형식(예: Parquet 및 ORC)이 여기에 해당됩니다. Amazon Athena for SQL은 데이터를 시각화하거나 대시보드를 생성할 수 있도록 Amazon QuickSight와 통합됩니다. 또한 Athena를 사용하면 보고서를 생성하거나 ODBC 또는 JDBC 드라이버를 통해 연결된 비즈니스 인텔리전스 도구나 SQL 클라이언트로 데이터를 탐색할 수도 있습니다. 

Athena를 시작하려면 Athena용 AWS Management Console에 로그인한 후 콘솔에서 데이터 정의 언어(DDL) 문을 작성하거나 테이블 생성 마법사를 사용하여 스키마를 작성합니다. 그러면 기본 제공된 쿼리 편집기를 사용하여 데이터 쿼리를 시작할 수 있습니다. Athena는 S3에서 직접 데이터를 쿼리하기 때문에 로드할 필요가 없습니다.

Amazon Athena for SQL

Amazon Athena for SQL은 AWS Management Console, AWS SDK 및 CLI 또는 Athena의 ODBC 또는 JDBC 드라이버를 통해 액세스할 수 있습니다. ODBC 또는 JDBC 드라이버를 사용하여 프로그래밍 방식으로 쿼리를 실행하고 테이블 또는 파티션을 추가할 수 있습니다.

Athena for SQL은 표준 SQL을 완벽하게 지원하는 Trino를 사용하며 CSV, JSON, ORC, Avro, Parquet 등 다양한 표준 데이터 형식과 호환됩니다. Athena는 대규모 조인, window 함수 및 배열과 같은 복잡한 분석을 처리할 수 있습니다. Trino에 내장된 Amazon Athena SQL 엔진 버전 3을 사용하여 지속적으로 성능을 높이고 Presto에 내장된 Amazon Athena 엔진 버전 2에 대한 AWS 접근 방식과 유사한 새로운 기능을 제공합니다. v3의 가장 뛰어난 특징 중 하나는, 오픈 소스 소프트웨어 관리에 대한 새로운 지속적인 통합 접근 방식이라는 점입니다. 이를 통해 고객은 Trino와 PrestoDB 프로젝트로 최신 기술을 계속 이용할 수 있습니다. 오픈 소스 Trino 출시를 기준으로 60~90일의 기간 내 지원을 제공하는 것을 목표로 하고 있습니다. Athena 개발 팀은 다시 오픈 소스 코드 베이스에서의 버그 수정 및 보안, 확장성, 성능, 기능 개선에 적극적으로 기여합니다. 이러한 팀의 기여 노력은 Trino, Presto, Apache Iceberg를 사용하는 모든 사용자에게 혜택을 전달해줄 수 있습니다.

Athena for SQL은 S3에 저장된 데이터에 대해 사용자가 생성한 데이터베이스 및 테이블에 관한 정보와 스키마를 저장하기 위해 관리형 AWS Glue 데이터 카탈로그를 사용합니다. AWS Glue가 제공되는 리전에서는 Athena에 데이터 카탈로그를 사용하도록 업그레이드할 수 있습니다. AWS Glue가 제공되지 않는 리전에서는 Athena에 내부 카탈로그가 사용됩니다.

 

DDL 문을 사용하거나 AWS Management Console을 통해 카탈로그를 수정할 수 있습니다. 사용자가 정의하는 모든 스키마는 명시적으로 삭제하지 않는 한, 자동으로 저장됩니다. Athena는 스키마 온 리드 기술을 사용합니다. 즉, 쿼리가 적용될 때 사용자의 테이블 정의가 S3의 데이터에 적용됩니다. 데이터 로드 또는 변환을 수행할 필요가 없습니다. S3에 저장된 기본 데이터에 영향을 주지 않으면서 테이블 정의 및 스키마를 삭제할 수 있습니다.

AWS Glue는 완전 관리형 추출, 전환, 적재(ETL) 서비스입니다. AWS Glue는 3가지 주요 요소로 구성됩니다. 1) 자동으로 데이터 소스를 스캔하고 데이터 형식을 식별하며 스키마를 추론하는 크롤러, 2) 데이터를 변환하고 다양한 대상으로 이동할 수 있는 완전 관리형 ETL 서비스, 3) S3 또는 ODBCJDBC 호환 데이터 스토어에 저장된 데이터베이스 및 테이블에 관한 메타데이터 정보를 저장하는 데이터 카탈로그입니다. AWS Glue를 충분히 활용하기 위해서는 Athena의 내부 데이터 카탈로그를 사용하는 것에서 Glue 데이터 카탈로그를 사용하는 것으로 업그레이드해야 합니다.

데이터 카탈로그로 업그레이드할 때의 이점은 다음과 같습니다.

  • 통합된 메타데이터 리포지토리: AWS Glue는 다양한 AWS 서비스와 통합됩니다. AWS Glue는 Amazon Aurora, Amazon Relational Database Service(RDS) for MySQL, Amazon RDS for PostgreSQL, Amazon Redshift 및 S3에 저장된 데이터와 Amazon Elastic Compute Cloud(EC2)에서 실행되는 Amazon Virtual Private Cloud(VPC)의 MySQL 및 PostgreSQL 데이터베이스에 저장된 데이터를 지원합니다. AWS Glue는 Athena, Amazon EMR, Amazon Redshift Spectrum 및 Apache Hive Metastore 호환 애플리케이션과 즉시 통합됩니다.
  • 자동 스키마 및 파티션 인식: AWS Glue는 자동으로 데이터 소스를 크롤링하고, 데이터 형식을 파악하며, 스키마와 변환을 제안합니다. 크롤러는 테이블 생성과 파티션 로딩을 자동화하는 데 도움이 됩니다.

데이터 카탈로그에 대해 자세히 알아보려면 AWS Glue 웹 페이지를 검토하십시오.

예. 단계별 프로세스는 Amazon Athena 사용 설명서: AWS Glue와의 통합을 검토하세요.

리전별 Athena 서비스 가용성에 대한 자세한 내용은 AWS 리전 서비스 목록을 검토하세요.

서비스 한도에 대해 자세히 알아보려면 Amazon Athena 사용 설명서: Service Quotas를 검토하세요.

테이블, 데이터 형식 및 파티션 생성

Athena는 Apache Hive DDL을 사용하여 테이블을 정의합니다. Athena 콘솔, ODBC 또는 JDBC 드라이버, API를 통해 또는 Athena 테이블 생성 마법사를 사용하여 DDL 문을 실행할 수 있습니다. Athena와 함께 데이터 카탈로그를 사용하는 경우, AWS Glue 크롤러를 사용하여 스키마와 파티션을 자동으로 추론할 수도 있습니다. AWS Glue 크롤러는 데이터 스토어에 연결하고, 우선순위가 지정된 분류자 목록을 거치면서 데이터 스키마 및 기타 통계를 추출한 후, 이러한 메타데이터로 데이터 카탈로그를 채웁니다. 크롤러는 주기적으로 실행되어 새로운 데이터의 가용성과 기존 데이터에 대한 변경 사항(데이터 정의 변경 등)을 감지할 수 있습니다. 크롤러는 새로운 테이블, 기존 테이블에 새로운 파티션, 새로운 테이블 정의 버전을 자동으로 추가합니다. 자체 파일 유형을 분류하도록 AWS Glue 크롤러를 사용자 지정할 수 있습니다. 

Athena에 새 테이블 스키마를 생성하면 이 스키마는 데이터 카탈로그에 저장되며 쿼리를 실행할 때 사용되지만 S3에 있는 사용자의 데이터를 수정하지는 않습니다. Athena는 스키마 온 리드라는 접근 방식을 사용하는데, 이 방식을 적용하면 쿼리를 실행할 때 스키마를 사용자의 데이터에 투영할 수 있습니다. 따라서 데이터를 로드하거나 변환할 필요가 줄어듭니다. 테이블 생성에 대해 자세히 알아보세요. 

Athena는 CSV, TSV, JSON 또는 Textfiles 등 매우 다양한 데이터 형식들을 지원하며 ORC 및 Parquet 같은 오픈 소스 열 형식도 지원합니다. Athena는 Snappy, Zlib, LZO 및 GZIP 형식으로 압축된 데이터도 지원합니다. 열 형식을 압축, 파티셔닝 및 활용하여 성능을 개선하고 비용을 절감할 수 있습니다. 

Athena는 INTEGER, DOUBLE, VARCHAR 등의 단순 데이터 유형과 MAPS, ARRAY, STRUCT 등의 복합 데이터 유형을 모두 지원합니다.  

Athena는 DDL과 테이블 또는 파티션의 생성, 수정, 삭제에만 Hive를 사용합니다. 지원되는 문의 전체 목록은 Amazon Athena 사용 설명서: DDL 문을 검토하세요. Athena는 S3에서 SQL 쿼리를 실행할 때 Trino 및 Presto를 사용합니다. ANSI 호환 SQL SELECT 문을 실행하여 S3에서 데이터를 쿼리할 수 있습니다.

SerDe는 데이터 형식을 해석하는 방법을 Hive에 알려주는 라이브러리인 Serializer/Deserializer를 나타냅니다. Hive DDL 문을 사용할 때는 SerDe를 지정해야 합니다. 그렇게 해야 사용자가 가리키는 데이터를 시스템에서 해석할 수 있습니다. Athena는 SerDe를 사용하여 S3에서 읽은 데이터를 해석합니다. Athena에서 SerDe의 개념은 Hive에서 사용된 개념과 동일합니다. Amazon Athena에서 지원하는 SerDe를 열거하면 다음과 같습니다.

  • Apache 웹 로그: "org.apache.hadoop.hive.serde2.RegexSerDe"
  • CSV: "org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"
  • TSV: "org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"
  • 사용자 지정 구분 기호: "org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"
  • Parquet: "org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe"
  • Orc: "org.apache.hadoop.hive.ql.io.orc.OrcSerde"
  • JSON: “org.apache.hive.hcatalog.data.JsonSerDe” or "org.openx.data.jsonserde.JsonSerDe"

현재로서는 자체 SerDe를 Athena에 추가할 수 없습니다. 소중한 의견 감사드리며 추가하고 싶은 SerDes가 있다면 Athena 팀(athena-feedback@amazon.com)에 문의하시기 바랍니다.

예. Spark를 통해 생성한 Parquet 및 ORC 파일을 Athena에서 읽을 수 있습니다.

Kinesis Data Firehose 데이터가 S3에 저장되어 있는 경우 Athena를 사용하여 이 데이터를 쿼리할 수 있습니다. Athena에서 데이터에 대한 스키마를 만든 다음 쿼리를 시작하면 됩니다. 성능을 높이려면 데이터를 파티션으로 구성하는 것이 좋습니다. ALTER TABLE DDL 문을 사용하면 Data Firehose에서 만든 파티션을 추가할 수 있습니다. 데이터 파티셔닝에 대해 자세히 알아보세요. 

예. Athena를 사용하여 모든 열의 데이터를 파티셔닝할 수 있습니다. 파티션을 사용하면 각 쿼리에서 스캔하는 데이터의 양을 제한하여 비용을 절감하고 작업 시간을 단축할 수 있습니다. CREATE TABLE 문의 PARTITIONED BY 절을 사용하여 파티셔닝 스키마를 지정할 수 있습니다. Amazon Athena는 쿼리 계획을 최적화하고 쿼리 런타임을 단축하는 AWS Glue 데이터 카탈로그 파티션 인덱스를 지원합니다. 많은 수의 파티션을 포함한 테이블을 쿼리할 때, Athena는 AWS Glue 데이터 카탈로그에서 사용 가능한 파티션을 검색하고 쿼리에 어떤 것이 필요한지 결정합니다. 신규 파티션이 추가되면 파티션을 검색하는 데 필요한 시간은 증가하고, 이는 쿼리 런타임이 증가하는 원인이 될 수 있습니다. AWS Glue 데이터 카탈로그를 사용하여 고객은 파티션 인덱스를 생성할 수 있으며, 이를 통해 수만, 수십만 개의 파티션을 포함하는 테이블에서 파티션 메타데이터를 검색하고 필터링하는 데 필요한 시간을 줄일 수 있습니다.

데이터를 파티셔닝한 경우 S3에서 새 데이터를 사용할 수 있을 때 파티션을 Athena에 추가하려면 메타데이터 쿼리(ALTER TABLE ADD PARTITION)를 실행해야 합니다. 데이터를 파티셔닝하지 않은 경우 기존 접두사에 새 데이터(또는 파일)를 추가하면 이 데이터가 Athena에 자동으로 추가됩니다. 데이터 파티셔닝에 대해 자세히 알아보세요.

예. Athena를 사용하면 기존 로그 데이터에서 표준 SQL 쿼리를 간편하게 실행할 수 있습니다. Athena는 S3에서 직접 데이터를 쿼리하기 때문에 데이터를 이동하거나 로드할 필요가 없습니다. DDL 문을 사용하여 스키마를 정의하고 데이터 쿼리를 즉시 시작하면 됩니다.

쿼리, 데이터 형식 및 멀티클라우드

Athena는 ANSI SQL 쿼리를 지원합니다. Athena는 오픈 소스 인 메모리 분산 SQL 엔진인 Trino를 사용하며 대규모 조인, window 함수 및 배열을 포함하여 복잡한 분석을 처리할 수 있습니다.

예. Athena는 QuickSight와 통합되므로 S3에 저장된 데이터를 원활하게 시각화할 수 있습니다. 

예. Athena에는 다른 BI 도구 및 SQL 클라이언트와 함께 사용할 수 있는 ODBC 및 JDBC 드라이버가 함께 제공됩니다. Athena에서 ODBC 또는 JDBC 드라이버를 사용하는 방법에 대해 자세히 알아보세요. 

Athena에서 지원하는 함수에 대해 자세히 알아보세요. 

데이터를 압축 및 파티셔닝하거나 열 형식으로 변환하여 쿼리 성능을 향상시킬 수 있습니다. Athena는 Parquet 및 ORC와 같은 오픈 소스 열 데이터 형식을 지원합니다. 데이터를 압축된 열 기반 형식으로 변환하면 Athena가 쿼리를 실행할 때 S3로부터 스캔하는 데이터 양이 줄어들므로 비용이 절감되고 쿼리 성능은 향상됩니다.

예. Athena는 UDF를 지원하므로 사용자 지정 스칼라 함수를 작성하고 SQL 쿼리에서 해당 함수를 호출할 수 있습니다. Athena에서는 기본 제공 함수가 지원되지만 UDF는 데이터 압축 및 압축 해제, 민감한 데이터 삭제 또는 사용자 지정된 복호화 적용 같은 사용자 지정 처리 작업을 수행하는 데 도움이 됩니다.

사용자는 Athena Query Federation SDK를 사용하여 Java로 UDF를 작성할 수 있습니다. Athena에 제출된 SQL 쿼리에 UDF가 사용되면 AWS Lambda에서 호출하여 실행합니다. UDF는 SQL 쿼리의 SELECT 절과 FILTER 절 모두에서 사용할 수 있습니다. 동일한 쿼리에서 여러 UDF를 호출할 수 있습니다. 

Athena Query Federation SDK를 사용하여 UDF를 작성할 수 있습니다. UDF 예제를 검토하세요. 함수를 Lambda에 업로드한 다음 Athena 쿼리에서 호출할 수 있습니다. 시작하려면 Amazon Athena 사용 설명서: Lambda를 사용하여 UDF 생성 및 배포를 참조하세요.

Athena는 성능을 개선하기 위해 일련의 데이터 세트 행에서 배치로 UDF를 호출합니다. 

예. Athena는 데이터를 이동하거나 변환하지 않고도 다른 클라우드 서비스 공급자 및 기타 클라우드 스토리지 서비스의 데이터를 분석하는 데 사용할 수 있는 여러 데이터 소스 커넥터를 제공합니다. 데이터 소스 커넥터는 Azure Synapse, Azure 데이터 레이크 스토리지, Google BigQuery 및 Google 클라우드 스토리지를 비롯한 30개 이상의 데이터 소스에 사용할 수 있습니다. 하이브리드 및 멀티클라우드 환경을 위한 AWS 솔루션에 대해 자세히 알아보세요.

페더레이션 쿼리

S3 이외의 소스에 데이터가 있는 경우 Athena를 사용하여 데이터를 현재 위치에서 쿼리하거나, 여러 데이터 소스에서 데이터를 추출하고 S3에 저장하는 파이프라인을 구축할 수 있습니다. Athena 페더레이션 쿼리를 사용하면 관계형, 비관계형, 객체 및 사용자 지정 데이터 소스에 저장된 데이터에 대해 SQL 쿼리를 실행할 수 있습니다.

조직에서는 조직의 애플리케이션 또는 비즈니스 프로세스의 요구 사항을 충족하는 데이터 소스에 데이터를 저장하는 경우가 많습니다. 예를 들어 S3 데이터 레이크에 데이터를 저장하는 것에 더해 관계형, 키-값, 문서, 인 메모리, 검색, 그래프, 시계열 및 원장 데이터베이스 등에도 데이터를 저장할 수 있습니다. 이와 같이 다양한 소스에서 분석을 수행하는 작업은 복잡하고 시간 소모적일 수 있습니다. 새로운 프로그래밍 언어 또는 데이터베이스 구조를 배워야 하고 분석에 사용할 데이터를 추출, 변환 및 복제하는 복잡한 파이프라인을 구축해야 하기 때문입니다. Athena를 사용하면 데이터가 있는 위치에서 SQL 쿼리를 실행할 수 있으므로 이 복잡성이 줄어듭니다. 잘 알려진 SQL 구성을 사용하여 여러 데이터 소스에 걸쳐 데이터를 쿼리해 신속하게 분석하거나, 예약된 SQL 쿼리를 사용하여 여러 데이터 소스에서 데이터를 추출 및 변환한 후 추가 분석을 위해 S3에 저장할 수 있습니다.

Athena는 Amazon Redshift, Amazon DynamoDB, Google BigQuery, Google 클라우드 스토리지, Azure Synapse, Azure 데이터 레이크 스토리지, Snowflake 및 SAP Hana를 포함하여 30개 이상의 인기 있는 AWS, 온프레미스 및 기타 클라우드 데이터 스토어에 기본 제공 커넥터를 제공합니다. 이 커넥터를 사용하여 정형, 반정형, 객체, 그래프, 시계열 및 기타 데이터 스토리지 유형에서 SQL 분석 사용 사례를 지원할 수 있습니다. 지원되는 소스의 목록은 Athena 데이터 소스 커넥터 사용을 참조하세요.


또한 Athena의 데이터 커넥터 SDK를 사용하여 사용자 지정 데이터 소스 커넥터를 생성하고 Athena를 통해 쿼리할 수 있습니다. 설명서와 예제 커넥터 구현을 검토하여 시작해 보세요.

Athena를 사용할 때는 기존 SQL 지식을 사용하여 다양한 데이터 소스에서 인사이트를 추출할 수 있습니다. 새 언어를 배우거나 데이터를 추출(및 복제)하는 스크립트를 개발하거나 인프라를 관리할 필요가 없습니다. Amazon Athena를 사용하면 다음 태스크를 수행할 수 있습니다.

  • 단일 도구와 SQL 언어를 사용하여 여러 데이터 소스에 분산되어 있는 데이터에 대한 온디맨드 분석을 실행합니다.
  • ODBCJDBC 인터페이스를 통해 Athena의 분산 컴퓨팅 엔진으로 복잡한 다중 소스 조인을 푸시하는 BI 애플리케이션의 데이터를 시각화합니다.
  • Athena를 AWS Step Functions와 통합하여 셀프 서비스 ETL 파이프라인 및 이벤트 기반 데이터 처리 워크플로를 설계합니다.
  • 다양한 데이터 소스를 통합하여 기계 학습 모델 훈련 워크플로를 위한 풍부한 입력 특성을 생성합니다.
  • 데이터 메시 아키텍처의 인사이트를 표면화하는 사용자용 제품형 데이터 애플리케이션을 개발합니다.
  • 조직이 온프레미스 소스에서 AWS로 마이그레이션하는 동안 분석 사용 사례를 지원합니다.

Athena는 쿼리 결과를 S3의 파일에 저장합니다. 따라서 Athena를 사용하여 다른 사용자 및 애플리케이션에 페더레이션 데이터를 제공할 수 있습니다. 기반 소스를 반복적으로 쿼리할 필요 없이 Athena를 사용하여 데이터 분석을 수행하고 싶다면 Athena의 CREATE TABLE AS 함수를 사용합니다. 또한 Athena의 UNLOAD 함수를 사용하여 데이터를 쿼리하고 S3의 특정 파일 형식에 결과를 저장할 수 있습니다.

데이터 소스 커넥터는 Lambda에서 실행되어 대상 데이터 소스와 Athena 사이에서 변환을 수행하는 코드 조각입니다. 데이터 소스 커넥터를 사용하여 데이터 스토어를 Athena에 등록하면 페더레이션 데이터 스토어에서 SQL 쿼리를 실행할 수 있습니다. 페더레이션 소스에서 쿼리를 실행하면 Athena가 Lambda 함수를 호출하고 페더레이션 소스와 관련된 쿼리 일부를 실행하여 처리합니다. 자세히 알아보려면 Amazon Athena 사용 설명서: Amazon Athena 페더레이션 쿼리 사용을 검토하세요. 

기계 학습

Athena의 기계 학습 사용 사례는 다음 예와 같이 여러 산업을 포괄합니다. 재무 위험 데이터 분석가는 가상 분석과 몬테카를로 시뮬레이션을 실행할 수 있습니다. 비즈니스 분석가는 수익을 예측하는 풍부하고 미래 지향적인 비즈니스 대시보드를 만드는 데 도움이 되는 선형 회귀 또는 예측 모델을 실행하여 미래 가치를 예측할 수 있습니다. 마케팅 분석가는 K-평균 클러스터링 모델을 사용하여 서로 다른 고객 세그먼트를 결정할 수 있습니다. 보안 분석가는 로지스틱 회귀 모델을 사용하여 이상 징후를 찾고 로그에서 보안 인시던트를 탐지할 수 있습니다.

Athena는 SageMaker에 배포된 모든 기계 학습 모델을 호출할 수 있습니다. 독점 데이터를 사용하여 자체 모델을 훈련하거나 SageMaker에서 사전 훈련 및 배포된 모델을 사용할 수 있습니다. 예를 들어 새 레코드를 이전 레코드에 사용한 것과 동일한 범주로 분류하려는 경우 자체 데이터로 클러스터 분석을 훈련할 수 있습니다. 또는 실제 스포츠 이벤트를 예측할 때는 사용되는 훈련 데이터가 이미 공공의 자산이 되었을 것이므로 공개적으로 사용 가능한 모델을 사용할 수 있습니다. 일반적으로 도메인별 또는 산업별 예측은 SageMaker에서 자체 데이터로 훈련되며, 기계 학습 요구 사항이 획일적인 경우 외부 모델을 사용할 수 있습니다.

Athena를 사용하여 SageMaker에서 기계 학습 모델을 훈련 및 배포할 수는 없습니다. 기계 학습 모델을 훈련할 수 있고, 아니면 Athena를 사용하여 SageMaker에 배포된 기존의 사전 훈련된 모델을 사용할 수 있습니다. SageMaker의 훈련 단계가 자세히 설명된 문서를 읽어보세요.

Athena는 SageMaker에 배포된 기계 학습 모델만 호출할 수 있습니다. Athena와 함께 사용하고자 하는 다른 서비스가 있다면 언제든지 피드백을 보내주세요. athena-feedback@amazon.com으로 피드백을 보내주세요.

AWS의 기능 및 서비스에는 운영 성능 개선 사항이 지속적으로 추가됩니다. Athena ML 쿼리의 성능을 개선하기 위해 추론 시 SageMaker ML 모델을 호출할 때 행은 배치로 처리됩니다. 현재, 사용자 제공 행 배치 크기 재정의는 지원되지 않습니다.

Athena는 SQL 인터페이스로 래핑된 기계 학습 추론(예측) 기능을 제공합니다. Athena UDF를 호출하여 결과 세트에서 사전 또는 사후 처리 로직을 호출할 수도 있습니다. 입력값에는 열, 레코드 또는 테이블이 포함될 수 있으며, 확장성을 높이기 위해 여러 호출을 배치 처리할 수 있습니다. 선택 단계 또는 필터 단계에서 추론을 실행할 수 있습니다. 자세히 알아보려면 Amazon Athena 사용 설명서: Amazon Athena와 함께 기계 학습(ML) 사용을 참조하세요.

SageMaker는 다양한 기계 학습 알고리즘을 지원합니다. 독점 기계 학습 모델을 만들어 SageMaker에 배포할 수도 있습니다. 예를 들어 새 레코드를 이전 레코드에 사용한 것과 동일한 범주로 분류하려는 경우 자체 데이터로 클러스터 분석을 훈련할 수 있습니다. 또는 실제 스포츠 이벤트를 예측할 때는 사용되는 훈련 데이터가 공공의 자산이 되었을 것이므로 공개적으로 사용 가능한 모델을 사용할 수 있습니다.

도메인 또는 산업별 예측은 일반적으로 SageMaker에서 자체 데이터로 훈련되며, 기계 번역과 같이 기계 학습 요구 사항이 획일적인 경우 외부 모델을 사용할 수 있습니다. 

보안 및 가용성

Amazon Athena는 AWS Lake Formation을 통해 세분화된 액세스 제어를 지원합니다. AWS Lake Formation을 통해 S3 데이터 레이크의 데이터 카탈로그 리소스에 대한 권한 및 액세스 제어를 중앙에서 관리할 수 있습니다. Apache Iceberg, Apache Hudi, Apache Hive 같은 테이블 형식을 사용하여 모든 지원되는 파일 형식에 저장된 데이터에 대해 Athena 쿼리에서 세분화된 액세스 제어 정책을 적용할 수 있습니다. 사용 사례에 가장 적합한 테이블 및 파일 형식을 유연하게 선택하고 Athena를 사용하는 경우 중앙 집중식 데이터 거버넌스의 이점을 활용하여 데이터 액세스를 보호할 수 있습니다. 예를 들어, Lake Formation의 행 수준 보안 필터와 함께 Iceberg 테이블 형식을 사용하여 S3 데이터 레이크에 데이터를 저장함으로써 대규모 쓰기 트랜잭션을 안정적으로 수행할 수 있습니다. 덕분에 서로 다른 국가에 거주하는 데이터 분석가가 규정 요구 사항을 충족하기 위해 해당 국가에 소재한 고객만 데이터에 액세스할 수 있도록 지원할 수 있습니다. 테이블 및 파일 형식에 대해 새롭게 확장된 지원에서는 새로운 기능 및 향상된 쿼리 성능을 제공하는 Athena 엔진 버전 3을 필요로 하며, Lake Formation의 세분화된 액세스 제어 정책을 설정하는 방법을 변경할 필요가 없습니다. 또한, Athena를 사용하면 AWS Identity and Access Management(IAM) 정책, 액세스 제어 목록(ACL) 및 S3 버킷 정책을 사용하여 데이터에 대한 액세스를 제어할 수 있습니다. IAM 정책을 사용해 IAM 사용자에게 S3 버킷에 대한 세분화된 제어 권한을 부여할 수 있습니다. S3에서 데이터에 대한 액세스를 제어하면 사용자들이 Athena를 사용하여 데이터를 쿼리하지 못하도록 제한할 수 있습니다.

예. S3 관리형 암호화 키를 사용한 서버 측 암호화(SSE), AWS Key Management Service(KMS) 관리형 키를 사용한 SSE, AWS KMS로 관리되는 키를 사용한 클라이언트측 암호화(CSE)를 사용하여 암호화된 데이터를 쿼리할 수 있습니다. Athena는 AWS KMS와도 통합되며 결과 세트를 암호화하는 옵션을 제공합니다.

예. Athena는 고가용성이고 여러 시설에서 컴퓨팅 리소스를 사용하여 쿼리를 실행하며 특정 시설에 도달할 수 없는 경우에는 쿼리를 자동으로 라우팅합니다. Athena는 S3를 기본 데이터 스토어로 사용하여 데이터 가용성과 내구성을 높입니다. S3는 중요한 데이터를 저장할 수 있는 내구성 있는 인프라를 제공합니다. 데이터가 여러 시설과 각 시설의 여러 디바이스에 중복 저장됩니다.

예. S3에 대한 크로스 계정 액세스를 제공할 수 있습니다.

요금 및 결제

Athena를 사용할 때는 스캔한 데이터를 기반으로 하거나 쿼리에 필요한 컴퓨팅을 기반으로 쿼리당 비용을 지불하도록 선택할 수 있습니다. 쿼리당 요금은 쿼리에서 스캔된 데이터의 양을 기준으로 하며 쿼리당 테라바이트(TB)로 부과됩니다. 다양한 형식으로 S3에 데이터를 저장할 수 있습니다. 데이터를 압축 및 파티셔닝하거나 열 기반 저장 형식으로 변환하면 쿼리에서 스캔되는 데이터의 양이 줄어들어 비용이 절감됩니다. 데이터를 열 형식으로 변환하면 Athena에서 쿼리를 처리하는 데 필요한 열만 읽습니다. 프로비저닝된 용량을 사용하면 검색된 데이터가 아닌 쿼리 처리 용량에 대한 시간당 요금이 부과됩니다. 동일한 계정 내에서 쿼리당 청구와 컴퓨팅 기반 청구를 사용할 수 있습니다. 자세한 내용은 Amazon Athena 요금 페이지를 검토하세요.

쿼리당 청구를 사용하면 각 쿼리에서 스캔된 데이터 양을 기준으로 Athena 요금이 부과됩니다. 데이터를 압축하면 Athena가 스캔하는 데이터가 줄어듭니다. 데이터를 열 형식으로 변환하면 Athena가 필요한 열만 선택적으로 읽어 데이터를 처리할 수 있습니다. 또한 데이터를 파티셔닝하면 Athena는 스캔된 데이터의 양을 제한할 수도 있습니다. 그 결과, 비용은 절감되고 성능은 향상됩니다. 자세한 내용은 Amazon Athena 요금 페이지를 검토하세요.

쿼리당 청구를 사용하면 데이터를 압축 및 파티셔닝하고 열 형식으로 변환하여 쿼리당 30%~90%를 절감하고 성능을 개선할 수 있습니다. 이러한 작업을 수행할 때마다 스캔되는 데이터의 양과 실행에 필요한 시간이 줄어듭니다. 프로비저닝된 용량을 사용할 때도 이러한 작업을 수행하는 것이 좋습니다. 쿼리 실행에 소요되는 시간이 줄어드는 경우가 많기 때문입니다.

쿼리당 요금을 사용하면 실패한 쿼리에 대한 요금이 청구되지 않습니다.

예. 쿼리를 취소하면 이 쿼리를 취소한 시점까지 스캔된 데이터의 양에 대한 요금이 부과됩니다.

Athena는 S3에서 직접 데이터를 쿼리하기 때문에 사용자의 소스 데이터는 S3 요금으로 청구됩니다. Athena는 쿼리를 실행할 때 쿼리 결과를 고객이 선택한 S3 버킷에 저장합니다. 이러한 결과 세트에는 표준 S3 요금이 적용됩니다. 유지되는 데이터의 양을 제어하려면 이러한 버킷을 모니터링하고 수명 주기 정책을 사용하는 것이 좋습니다.

예. 데이터 카탈로그 사용 요금이 별도로 부과됩니다. 데이터 카탈로그 요금에 대해 자세히 알아보려면 AWS Glue 요금 페이지를 검토하세요. 

Amazon Athena for Apache Spark

Athena는 데이터 분석가 및 데이터 엔지니어가 완전관리형 Athena의 대화형 경험을 이용할 수 있도록 Apache Spark 프레임워크를 지원합니다. Apache Spark는 크기에 관계없이 모든 데이터를 대상으로 고속 분석 워크로드를 실행할 수 있도록 개선된 인기 오픈 소스 분산 처리 시스템으로, 풍부한 오픈 소스 라이브러리 시스템을 제공합니다. 이제 Athena 콘솔에서 또는 Athena API를 통해 간소화된 노트북 경험을 활용하여 Python과 같은 표현 언어로 Spark 애플리케이션을 구축할 수 있습니다. 다양한 소스의 데이터를 쿼리하고 여러 계산을 하나로 결합하며 분석 결과를 시각화할 수 있습니다. 대화형 Spark 애플리케이션의 경우 Athena를 사용하면 1초 이내에 애플리케이션을 실행할 수 있으므로 대기 시간을 줄이고 생산성을 개선할 수 있습니다. 고객은 버전 업그레이드, 성능 튜닝 및 다른 AWS 서비스와의 통합을 위해 필요한 작업을 취소화하는 간소화된 목적별 Spark 경험을 이용할 수 있습니다.

대화형 및 완전 관리형 분석 경험이 필요하고 AWS 서비스와 긴밀하게 통합해야 하는 경우 Athena for Apache Spark를 사용합니다. Athena에서 Spark를 사용하여 Python과 같은 익숙한 표현 언어와 성장하는 Spark 패키지 환경을 활용하여 분석을 수행할 수 있습니다. 또한, 기반 인프라를 설정하고 튜닝하지 않고도 Athena API를 통해 Spark 애플리케이션을 시작하거나 Athena 콘솔에서 간소화된 노트북을 시작하고 1초 이내에 Spark 애플리케이션을 실행할 수 있습니다. Athena의 SQL 쿼리 기능과 마찬가지로, Athena는 완전관리형 Spark 경험을 제공하고 성능 튜닝, 머신 구성 및 소프트웨어 패치를 자동으로 처리하므로 버전 업그레이드를 통해 최신 상태를 유지해야 한다는 걱정에서 벗어날 수 있습니다. 또한, Athena는 AWS 시스템의 다른 분석 서비스(예: 데이터 카탈로그)와도 긴밀하게 통합됩니다. 따라서 데이터 카탈로그의 테이블을 참조하여 S3 데이터 레이크의 데이터를 기반으로 Spark 애플리케이션을 생성할 수 있습니다.

Athena for Apache Spark를 시작하려면 Athena 콘솔에서 노트북을 시작하거나 AWS Command Line Interface(CLI) 또는 Athena API를 사용하여 세션을 시작하면 됩니다. 노트북에서 Python을 사용하여 Spark 애플리케이션을 시작하고 종료할 수 있습니다. Athena는 데이터 카탈로그와도 통합되므로 S3 데이터 레이크의 데이터를 직접 사용하는 것을 포함하여 카탈로그에 참조된 모든 데이터 소스를 작업에 사용할 수 있습니다. 이제 노트북을 사용하여 다양한 소스의 데이터를 쿼리하고 여러 계산을 하나로 결합하며 분석 결과를 시각화할 수 있습니다. Spark 애플리케이션에서 Athena 콘솔을 사용하여 실행 상태를 확인하고 로그 및 실행 기록을 검토할 수 있습니다.

Athena for Apache Spark는 안정적인 Spark 3.2 릴리스에 기반을 둡니다. Athena는 완전관리형 엔진으로, Spark의 사용자 지정 빌드를 제공하며 대부분의 Spark 버전 업데이트를 이전 버전과 호환되는 방식으로 자동으로 처리하므로 사용자 개입이 필요하지 않습니다.

Apache Spark 애플리케이션을 실행하는 데 걸린 시간에 대한 비용만 지불하면 됩니다. Apache Spark 애플리케이션을 실행하는 데 사용된 데이터 처리 단위(DPU)의 수에 따라 시간당 비용이 부과됩니다. 단일 DPU에서 vCPU 4개와 16GB 메모리를 제공합니다. 증분 단위는 1초이며, 시간은 반올림되어 비용이 청구됩니다.

Athena 콘솔에서 노트북을 시작하거나 Athena API를 사용하여 Spark 세션을 시작하는 경우 애플리케이션에 대해 두 개의 노드가 프로비저닝됩니다. 하나는 노트북 노드로, 노트북 사용자 인터페이스에서 서버 역할을 합니다. 다른 노드는 Spark 드라이버 노드로, 해당 Spark 애플리케이션에 맞게 조율되며 모든 Spark 워커 노드와 통신합니다. Athena는 세션이 지속되는 동안 드라이버 및 워커 노드에 대한 비용을 청구합니다. Amazon Athena는 Apache Spark 애플리케이션을 생성, 제출, 실행하기 위한 사용자 인터페이스로 콘솔에서 노트북을 추가 비용 없이 제공합니다. Athena는 Spark 세션 중에 사용한 노트북 노드에 대한 비용은 청구하지 않습니다.

Athena와 여타 빅 데이터 서비스의 사용 사례 비교

Athena 같은 쿼리 서비스, Amazon Redshift 같은 데이터 웨어하우스 및 Amazon EMR 같은 정교한 데이터 처리 프레임워크는 모두 서로 다른 요구와 사용 사례를 처리합니다. 작업에 적합한 도구를 선택하기만 하면 됩니다. Amazon Redshift는 엔터프라이즈 보고 및 비즈니스 인텔리전스 워크로드, 그 중에서도 특히 여러 조인 및 하위 쿼리가 포함된 복잡한 SQL과 관련된 워크로드에 대해 가장 빠른 쿼리 성능을 제공합니다. Amazon EMR을 사용하면 프로세스가 간소화되며 Apache Hadoop, Spark, Presto와 같은 고도로 분산된 처리 프레임워크를 온프레미스 배포 환경보다 비용 효율적으로 실행할 수 있습니다. Amazon EMR은 유연합니다. 사용자 지정 애플리케이션 및 코드를 실행하고 특정 컴퓨팅, 메모리, 스토리지 및 애플리케이션 파라미터를 정의하여 분석 요구 사항을 개선할 수 있습니다. Athena는 서버를 설정하거나 관리할 필요 없이 S3의 데이터에 대한 대화형 쿼리를 실행하는 간소화된 방법을 제공합니다.

Amazon Athena와 Amazon Redshift Serverless는 모두 서버리스 서비스이고 SQL 사용자를 지원하지만 해결할 수 있는 요구 사항과 사용 사례가 서로 다릅니다.

스토리지와 컴퓨팅 및 기계 학습 주도 자동 최적화 기능을 분리하는 MPP(Massively Parallel Processing) 아키텍처를 기반으로 Amazon Redshift(서버리스 또는 프로비저닝됨)와 같은 데이터 웨어하우스는 복잡한 BI 및 분석 워크로드를 처리하기 위해 모든 규모에서 최고의 가격 대비 성능을 필요로 하는 고객에게 탁월한 선택입니다. Redshift는 확장된 분석과 대규모의 구조화된 정형 및 반전형 데이터 세트를 처리하는 데 가장 적합합니다. 엔터프라이즈 보고 및 비즈니스 인텔리전스 워크로드, 특히 여러 조인 및 하위 쿼리가 포함된 매우 복잡한 SQL과 관련된 경우에 가장 효과적입니다. Redshift는 AWS 데이터베이스, 분석, ML 서비스와의 심층적인 통합을 지원하므로, 고객은 최소의 ETL과 코드가 필요 없는 방법을 통해 현재 위치에서 데이터를 액세스하거나 고성능 분석을 처리하도록 웨어하우스로 손쉽게 이전할 수 있습니다. 페더레이션된 쿼리 기능, Amazon Redshift Spectrum, Amazon Aurora와의 통합, AWS Data Exchange, 스트리밍 데이터 서비스 등을 활용하여 Redshift는 여러 소스에서 데이터를 사용하고 웨어하우스에서 데이터를 결합하며 무엇보다도 분석과 기계 학습을 수행할 수 있도록 지원합니다. Redshift는 인프라를 관리하지 않고도 손쉽게 분석을 시작하는 프로비저닝된 옵션과 서버리스 옵션을 모두 제공합니다.

Athena는 사용하기 쉬운 SQL 구문을 사용하여 확장 가능한 커넥터 프레임워크(애플리케이션 및 온프레미스 또는 기타 클라우드 분석 시스템을 위한 30개가 넘는 기본 제공 커넥터 포함)를 통해 Amazon Simple Storage Service(S3) 또는 모든 데이터 소스에 있는 데이터의 대화형 분석 및 데이터 탐색에 매우 적합합니다. Amazon Athena는 Spark, Presto 및 Apache Iceberg와 같은 오픈 소스 엔진 및 프레임워크에 구축되어 고객에게 Python 또는 SQL을 사용하거나 개방형 데이터 형식으로 작업할 수 있는 유연성을 제공합니다. 고객이 오픈 소스 프레임워크와 데이터 형식을 사용하여 대화형 분석을 수행하려는 경우 Amazon Athena에서 시작하는 것이 좋습니다. 완전히 서버리스 제품이므로, 인프라를 관리하거나 설정하지 않아도 됩니다. Athena의 오픈 지원을 통해 뛰어난 데이터 이식성을 지원하므로 고객은 여러 애플리케이션, 프로그램, 심지어 클라우드 서비스 공급자 사이에서 데이터를 이전할 수 있습니다. 최근 오픈 소스 소프트웨어 관리에 대한 새로운 지속적인 통합 접근 방식을 채택하여, Trino, PrestoDB, Apache Iceberg 프로젝트의 최신 기능을 지속적으로 통합할 수 있습니다.

Amazon EMR은 SQL 쿼리를 실행하는 것 이외에도 상당히 많은 작업을 수행합니다. Amazon EMR을 사용하면 기계 학습(ML), 그래프 분석, 데이터 변환, 스트리밍 데이터 및 코딩할 수 있는 거의 모든 작업 등 애플리케이션의 다양한 확장 데이터 처리 작업을 실행할 수 있습니다. 사용자 지정 코드를 사용하여 매우 방대한 양의 데이터 세트를 Apache HBase, Spark, Hadoop 또는 Presto 같은 최신 빅 데이터 처리 프레임워크로 처리 및 분석하는 경우 Amazon EMR을 사용합니다. Amazon EMR을 사용하면 클러스터 구성 및 클러스터에 설치된 소프트웨어를 완벽하게 제어할 수 있습니다.

인프라 또는 클러스터를 관리할 필요 없이 S3의 데이터에 대해 대화형 SQL 쿼리를 실행하려면 Athena를 사용해야 합니다.

EMR Serverless는 클라우드에서 Spark 및 Hive 애플리케이션을 실행하는 가장 쉬운 방법이며, 업계에서 유일한 서버리스 Hive 솔루션이기도 합니다. EMR Serverless를 사용하면 튜닝, 올바른 크기 조정, 보안, 패치, 클러스터 관리와 같은 운영 오버헤드에서 벗어날 수 있으며, 애플리케이션이 실제로 사용하는 리소스에 대한 비용만 지불하면 됩니다. EMR의 성능에 최적화된 런타임을 통해 표준 오픈 소스보다 2배 이상 더 빠른 성능을 지원할 수 있으므로 애플리케이션을 더 빨리 실행하고 컴퓨팅 비용을 줄일 수 있습니다. EMR의 성능에 최적화된 런타임은 표준 오픈 소스와의 API 호환성을 완벽하게 지원하므로 EMR에서 실행하기 위해 애플리케이션을 다시 작성하지 않아도 됩니다. 또한, 기본적으로 켜져 있기 때문에 이 제품을 켜기 위해 전문적인 Spark 지식은 필요하지 않습니다. EMR은 EMR 클러스터, EKS 클러스터 또는 EMR Serverless에서 애플리케이션을 실행하는 옵션을 제공합니다. EMR 클러스터는 애플리케이션 실행 방법에 대한 최대한의 제어와 유연성을 필요로 하는 고객에게 적합합니다. 고객은 EMR 클러스터를 사용하여 EC2 인스턴스 유형을 선택하고 Amazon Linux AMI를 사용자 지정하며 EC2 인스턴스 구성을 사용자 지정하고 오픈 소스 프레임워크를 사용자 지정 및 확장하며 추가 사용자 지정 소프트웨어를 클러스터 인스턴스에 설치할 수 있습니다. EKS 기반 EMR은 EKS를 기반으로 표준화하여 애플리케이션 전체의 클러스터를 관리하거나 동일한 클러스터에서 다른 버전의 오픈 소스 프레임워크를 사용하려는 고객에게 적합합니다. EMR Serverless는 클러스터를 관리하거나 운영하지 않으면서 오픈 소스 프레임워크를 사용하여 간편하게 애플리케이션을 실행하려는 고객에게 적합합니다.

고객이 Amazon Athena를 사용하는 대화형 SQL 기반 쿼리 경험과 비슷한 즉각적인 대화형 경험을 원하는 경우 Amazon Athena for Apache Spark를 선택할 수 있습니다. Athena에서 고객의 경험은 짧은 런타임과 1초 이내의 시작 시간을 필요로 하는 대화형 애플리케이션에 최적화되어 있습니다. Amazon Athena는 고객 개입 없이 성능 튜닝, 구성, 소프트웨어 패치 및 업데이트를 자동으로 처리합니다. 즉각적인 대화형 분석 실행과 데이터 탐색에 관심이 있으며 PySpark 프로그래밍 언어를 심층적으로 사용하는 데이터 분석가와 개발자를 위해 Amazon Athena for Apache Spark는 사용하기 쉬운 경험을 제공합니다.

예. Athena는 Amazon EMR과 동일한 데이터 형식의 상당 부분을 지원합니다. Athena 데이터 카탈로그는 Hive Metastore와 호환됩니다. 현재 Amazon EMR을 사용하고 있고 Hive Metastore가 이미 있는 경우 Athena에서 DDL 문을 실행한 다음 Amazon EMR 작업에 영향을 주지 않고 데이터 쿼리를 즉시 시작할 수 있습니다. 

Athena의 페더레이션 쿼리를 사용하면 다양한 관계형, 비관계형 및 사용자 지정 데이터 소스에 대해 통합된 방식으로 SQL 쿼리를 실행할 수 있습니다.

Athena SQL 쿼리는 Amazon SageMaker에 배포된 기계 학습 모델을 호출할 수 있습니다. 사용자는 이 Athena SQL 쿼리의 결과를 저장할 S3 위치를 지정할 수 있습니다.