一般性问题

问:什么是 Amazon Athena?
Athena 是一种交互式分析服务,可以使用 Python 或标准 SQL 更轻松地分析 Amazon Simple Storage Service (S3) 中的数据。Athena 是无服务器式服务,因此您无需设置或管理基础设施即可马上开始分析数据。您甚至无需将数据加载到 Athena 中,因为它可以直接处理 Amazon S3 中存储的数据。Amazon Athena for SQL 使用 Presto 并为标准 SQL 提供完整的支持,可处理 CSV、JSON、Apache ORC、Apache Parquet 和 Apache Avro 等各种标准数据格式。Athena for Apache Spark 支持 Python,并允许您使用 Apache Spark,这是一种用于大数据工作负载的开源分布式处理系统。首先,登录 Athena 管理控制台并开始使用查询编辑器或笔记本与您的数据进行交互。
 
问:Athena 有何用途?
使用 Athena,您可以分析存储在 S3 中的数据。您可以使用 ANSI SQL 或 Python,通过 Athena 运行交互式分析,而无需将数据聚合或加载到 Athena 中。Athena 能够处理非结构化、半结构化和结构化的数据集。示例包括 CSV、JSON、Avro 或列式数据格式,如 Parquet 和 ORC。Amazon Athena for SQL 与 Amazon QuickSight 集成以可视化您的数据或创建控制面板。此外,您还可以使用 Athena 生成报表,或借助商业智能工具或 SQL 客户端(通过 ODBCJDBC 驱动程序进行连接)浏览数据。 
 
问:如何开始使用 Athena?
要开始使用 Athena,您只需登录到 Athena 的 AWS 管理控制台,然后通过在控制台中编写数据定义语言(DDL)语句或使用创建表向导来创建架构即可。然后,您可以使用内置的查询编辑器开始查询数据。Athena 直接从 S3 查询数据,因此无需加载数据。

Amazon Athena for SQL

问:如何访问 Athena?
可以通过 AWS 管理控制台、API、ODBC 或 JDBC 驱动程序访问 Amazon Athena for SQL。您可以使用 ODBCJDBC 驱动程序以编程方式运行查询、添加表或分区。
 
问:Athena 有哪些服务限制?
要了解有关服务限制的更多信息,请查看 Amazon Athena 用户指南: 服务限额
 
问:Athena for SQL 采用了何种基础技术?
Athena for SQL 使用完全支持标准 SQL 的 Presto ,可处理 CSV、JSON、ORC、Avro 和 Parquet 等各种标准数据格式。Athena 能够处理复杂的分析,包括大型联接、开窗函数和数组。Athena 使用 S3 作为基础数据存储,因此具有高可用性和持久性(数据冗余地存储在多个设施和每个设施中的多个设备上)。要了解有关 Presto 的更多信息,请查看 Presto 简介 网页。
 
问:Athena for SQL 如何存储表定义和架构?
Athena for SQL 使用托管的 AWS Glue Data Catalog 来存储有关您为 Amazon S3 中存储的数据创建的数据库和表的信息及架构。在提供 AWS Glue 的区域,您可以升级到将 Data Catalog 与 Athena 结合使用。在不提供 AWS Glue 的区域内,Athena 使用内部目录。
 
您可以使用 DDL 语句或通过 AWS 管理控制台修改目录。您定义的任何架构都会自动保存,除非明确将其删除。Athena 使用读时模式技术,这意味着表定义在应用查询时会应用于您存储在 S3 中的数据。无需加载或转换数据。您可以删除表定义和架构,这不会影响存储在 S3 上的基础数据。
 
问:我为什么应该升级到 Data Catalog?
AWS Glue 是一种完全托管的提取、转换、加载(ETL)服务。AWS Glue 有三个主要组件:1)爬网程序,用于自动扫描数据来源、识别数据格式和推断架构;2)完全托管的 ETL 服务,支持您转换数据并将其移动至多个目标;以及 3)数据目录,用于存储有关 S3 或者符合 ODBCJDBC 规范的数据存储中所存储的数据库和表的元数据信息。要发挥 AWS Glue 的优势,您必须从使用 Athena 的内部 Data Catalog 升级为使用 Glue Data Catalog。
 
升级到 Data Catalog 的优势包括:
  • 统一的元数据存储库:AWS Glue 集成在各种 AWS 服务中。AWS Glue 支持存储在 Amazon Aurora、Amazon Relational Database Service (RDS) for MySQL、Amazon RDS for PostreSQL、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 元存储兼容的任何应用程序的开箱即用型集成。
  • 自动架构和分区识别:AWS Glue 可以自动抓取您的数据来源、识别数据格式并提出架构和转换建议。爬网程序可帮助自动创建表并自动加载分区。
  • 易于构建的管道:AWS Glue ETL 引擎生成可自定义、可重用且可移植的 Python 代码。您可以使用您最喜欢的集成式开发环境(IDE)或笔记本编辑代码,并使用 GitHub 将其与其他人共享。ETL 作业准备就绪后,您可以安排它在 AWS Glue 完全托管的扩展 Spark 基础设施上运行。AWS Glue 是一项无服务器服务,因此它可以对运行 ETL 作业所需的资源进行预置、配置和扩展,从而让您能够将 ETL 与工作流程紧密集成。
要了解有关 Data Catalog 的更多信息,请查看 AWS Glue 网页。
 
问:是否有升级到 Data Catalog 的分步流程?
有。有关分步流程,请查看 Amazon Athena 用户指南: 与 AWS Glue 集成
 
问:Athena 在哪些地区可用?
有关按区域划分的 Athena 服务可用性的详细信息,请查看 AWS 区域性服务列表

何时使用 Athena 与其他大数据服务

问:Athena、Amazon EMR 和 Amazon Redshift 之间有什么区别?
查询服务(如 Athena)、数据仓库(如 Amazon Redshift)和复杂的数据处理框架(如 Amazon EMR)都可以满足不同的需求和使用案例。您只需要为作业挑选适当的工具即可。Amazon Redshift 为企业报告和商业智能工作负载提供最快的查询性能,这一点在涉及具有多个联接和子查询的复杂 SQL 查询方面尤为明显。与本地部署相比,Amazon EMR 简化了流程,使运行高度分布式处理框架(例如 Apache Hadoop、Spark 和 Presto)变得经济高效。Amazon EMR 非常灵活 - 您可以运行自定义的应用程序和代码,定义特定的计算、内存、存储和应用程序参数,以增强您的分析需求。Athena 提供了一种简单方式来对 S3 中的数据运行交互式查询,而无需设置或管理任何服务器。
 
问:什么时候该使用 Amazon Redshift 这样功能全面的企业数据仓库?什么时候该使用 Athena 这样的查询服务?
当您需要将来自许多不同来源的数据整合为一种通用格式时,像 Amazon Redshift 这样的数据仓库是您的最佳选择。这些来源可以包括库存系统、财务系统和零售系统。像 Amazon Redshift 这样的数据仓库也是长期存储的首选,可以根据历史数据构建复杂的业务报告。
 
数据仓库从公司的各个位置收集数据,并充当生成和分析报告的“单一信息源”。数据仓库从不同来源提取数据、格式化并组织数据、存储数据,同时支持生成业务报告的复杂、高速查询。Amazon Redshift 中的查询引擎经过强化,在必须运行联接大量大型数据库表的复杂查询使用案例中表现非常出色。TPC-DS 是旨在复制此用例的标准基准,与针对非结构化数据增强的查询服务相比,Amazon Redshift 运行这些查询的速度更快。当必须针对高度结构化的数据运行查询并需要在许多大型表之间进行大量联接时,您应选择 Amazon Redshift。 
 
相比之下,Athena 这样的查询服务可以简化直接在 S3 中对数据运行的交互式查询,而无需担心格式化数据或管理基础设施等问题。例如,如果只需要对某些网络日志运行快速查询以诊断站点上的性能问题,则 Athena 就是一种很好的选择。通过查询服务,您可以迅速开始工作。您需要为数据定义一个表,然后使用标准 SQL 开始查询。  
 
此外,您还可以将两项服务配合使用。如果您在将数据加载到 Amazon Redshift 之前在 S3 上暂存数据,Athena 也可以注册和查询该数据。 
 
问:应在何时使用 Amazon EMR 与 Athena?
Amazon EMR 的功能远不止运行 SQL 查询。借助 Amazon EMR,您可以为机器学习(ML)、图形分析、数据转换、流式处理数据以及您可以编写代码的几乎任何应用程序运行各种横向扩展的数据处理任务。如果需要使用自定义代码通过最新的大数据处理框架(如 Apache HBase、Spark、Hadoop 或 Presto)处理和分析大型数据集,请使用 Amazon EMR。通过 Amazon EMR,您可以全面掌控集群及其上安装的软件的配置。
 
如果需要对 S3 上的数据运行交互式 SQL 查询,又不想管理任何基础设施或集群,则应该使用 Athena。 
 
问:可以使用 Athena 查询使用 Amazon EMR 处理的数据吗?
可以。Athena 支持许多与 Amazon EMR 相同的数据格式。Athena Data Catalog 与 Hive 元存储兼容。如果您正在使用 Amazon EMR 并且已有 Hive 元存储,则可以在 Athena 上执行 DDL 语句,然后即可开始查询数据,这不会对您的 Amazon EMR 作业产生任何影响。 
 
问:Athena SQL 中的联合查询与其他 AWS 服务有何关联?
Athena 中的联合查询为您提供了一种跨各种关系、非关系和自定义数据来源运行 SQL 查询的统一方式。 
 
问:Athena 中的 ML 与其他 AWS 服务有何关联? 
Athena SQL 查询可以调用 Amazon SageMaker 上部署的 ML 模型。您可以指定它们想要存储这些 Athena SQL 查询结果的 S3 位置。 

创建表、数据格式和分区

问:如何在 S3 上为我的数据创建表和架构?
Athena 使用 Apache Hive DDL 定义表。您可以使用 Athena 控制台、通过 ODBCJDBC 驱动程序、通过 API 或使用 Athena 创建表向导来运行 DDL 语句。如果将 Data Catalog 与 Athena 配合使用,您还可以使用 AWS Glue 爬网程序来自动推断架构和分区。AWS Glue 爬网程序可连接到数据存储,使用分类器的优先级列表来提取数据和其他统计数据的架构,然后使用该元数据填充 Data Catalog。爬网程序可定期运行,以检测新数据的可用性以及现有数据的更改,包括表定义的更改。爬网程序会自动将新表、新分区以及新版本的表定义添加到现有表。您可以自定义 AWS Glue 爬网程序以对自己的文件类型进行分类。 
 
当您在 Athena 中创建新的表架构时,架构将存储在数据目录中,并在运行查询时使用,但不会修改您存储在 S3 中的数据。Athena 采用称作“读时模式”的方法,它在您运行查询时将架构投射到数据。这减少了任何数据加载或转换的需要。了解有关 创建表的更多信息。 
 
问:Athena 支持哪些数据格式?
Athena 支持各种数据格式,如 CSV、TSV、JSON 或文本文件;此外,它还支持开源列格式,如 ORC 和 Parquet。Athena 还支持 Snappy、Zlib、LZO 和 GZIP 格式的压缩数据。您可以通过压缩、分区和使用列格式来提高性能并降低成本。 
 
问:Athena 支持哪些数据类型?
Athena 支持简单数据类型(如 INTEGER、DOUBLE、VARCHAR)及复杂数据类型(如 MAPS、ARRAY、STRUCT)。   
 
问:可以在 Athena 上运行 Hive 查询吗?
Athena 仅将 Hive 用于 DDL 以及表和/或分区的创建/修改和删除。有关受支持语句的完整列表,请查看 Amazon Athena 用户指南: DDL 语句。在 S3 上运行 SQL 查询时,Athena 使用 Presto。您可以运行符合 ANSI 标准的 SQL SELECT 语句来查询 S3 中的数据。
 
问:什么是 SerDe?
SerDe 表示串行器/解串器,它们是告诉 Hive 如何解释数据格式的库。Hive DDL 语句要求您指定 SerDe,以便系统知道如何解释您指向的数据。Athena 使用 SerDes 解释从 S3 读取的数据。SerDes 在 Athena 中的概念与在 Hive 中使用的概念相同。Amazon Athena 支持以下 SerDes:
  • Apache Web 日志:“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”或“org.openx.data.jsonserde.JsonSerDe”
 
问:我可以将自己的 SerDe 添加到 Athena 吗?
目前,您无法向 Athena 添加自己的 SerDe。感谢您的反馈!如果您希望添加任何 SerDes,请与 Athena 团队( athena-feedback@amazon.com)联系。
 
问:如果我使用 Spark/Hive 创建了 Parquet/ORC 文件,我能否在 Athena 中查询它们?
可以。您可以在 Athena 中读取通过 Spark 创建的 Parquet 和 ORC 文件。
 
问:如果我有来自 Amazon Kinesis Data Firehose 的数据,如何使用 Athena 查询它?
如果您的 Kinesis 数据存储在 S3 中,则可以使用 Athena 进行查询。在 Athena 中为您的数据创建架构并开始查询。建议您将数据组织到分区中,以增强性能。您可以使用 ALTER TABLE DDL 语句添加 Data Firehose 创建的分区。了解有关 分区数据的更多信息。 
 
问:Athena 是否支持数据分区?
有。您可以使用 Athena 在任何列上对数据进行分区。分区能够限制查询扫描的数据量,从而节省成本并提高性能。您可以在 CREATE TABLE 语句中使用 PARTITIONED BY 子句指定分区架构。了解有关 分区数据的更多信息。 
 
问:如何在 Athena 中向现有的表添加新数据?
如果您的数据已分区,则当 S3 上有新数据可用后,需要运行元数据查询(ALTER TABLE ADD PARTITION)以将此分区添加到 Athena。如果您的数据未分区,请将新数据(或文件)添加到现有前缀,以将数据自动添加到 Athena。了解有关 分区数据的更多信息。
 
问:如果我在 S3 上已经有大量日志数据,可以使用 Athena 查询吗?
是的,Athena 可以轻松对现有日志数据运行标准 SQL 查询。Athena 直接从 S3 查询数据,因此无需移动或加载数据。使用 DDL 语句定义架构,然后开始查询数据。

查询和数据格式

问:Athena 支持哪些类型的查询?
Athena 支持 ANSI SQL 查询。Athena 使用 Presto(一种开源的内存分布式 SQL 引擎),能够处理复杂的分析,包括大型联接、开窗函数和数组。
 
问:我可以将 QuickSight 与 Athena 配合使用吗?
有。Athena 与 QuickSight 集成,因此您可以无缝可视化存储在 S3 中的数据。 
 
问:Athena 是否支持其他商业智能(BI)工具和 SQL 客户端?
有。Athena 随附 ODBC 和 JDBC 驱动程序,您可以将其与其他 BI 工具和 SQL 客户端配合使用。详细了解如何将 ODBCJDBC 驱动程序与 Athena 配合使用。 
 
问:如何访问 Athena 支持的函数?
了解有关 Athena 支持的 函数的更多信息。 
 
问:如何提高查询性能?
您可以通过压缩、分区或将数据转换为列格式来提高查询性能。Athena 支持开源列数据格式,如 Parquet 和 ORC。将数据转换为压缩的列格式可降低成本,并通过减少 Athena 在运行查询时从 S3 扫描的数据来提高查询性能。
 
问:Athena 支持用户自定义函数(UDF)吗?
有。Athena 支持 UDF,因此您可以编写自定义标量函数并在 SQL 查询中调用它们。虽然 Athena 提供了内置函数,但 UDF 有助于您执行自定义处理,例如压缩和解压数据、编写敏感数据或应用自定义解密。 

您可以使用 Athena Query Federation SDK 在 Java 中编写 UDF。在提交到 Athena 的 SQL 查询中使用 UDF 时,将会在 AWS Lambda 上调用和运行该 UDF。UDF 可用于 SQL 查询的 SELECT 和 FILTER 子句。您可以在同一查询中调用多个 UDF。 
 
问:编写 UDF 时的用户体验是什么?
您可以使用 Athena Query Federation SDK 编写您的 UDF。查看 UDF 示例。您可以将函数上传到 Lambda,然后在 Athena 查询中调用它。要开始使用,请参阅 Amazon Athena 用户指南: 使用 Lambda 创建和部署 UDF
 
Athena 将在一组数据集行上调用 UDF 以增强性能。 

联合查询

问:什么是联合查询?
如果您有 S3 以外的数据来源,可以使用 Athena 就地查询数据或者构建从多个数据来源提取数据并将其存储在 S3 中的管道。使用 Athena 联合查询,您可以跨关系、非关系、对象和自定义数据来源运行 SQL 查询。

问:为何应在 Athena 中使用联合查询?
企业经常将数据存储在满足其应用程序或业务流程需要的数据来源中。除了在 S3 数据湖中存储数据之外,这些数据来源可能还包括关系、键值、文档、内存中、搜索、图形、时间序列和分类账数据库。在这些不同的数据来源上执行分析可能是复杂且耗时的,因为它通常需要学习新的编程语言或数据库构造,并在用于分析之前构建复杂的管道来提取、转换和复制数据。Athena 通过允许您对它所在的数据运行 SQL 查询,降低了这种复杂性。您可以跨多个数据来源使用众所周知的 SQL 构造查询数据以实现快速分析,或使用调度的 SQL 查询从多个数据来源提取和转换数据,并将它们存储在 S3 中以用于将来的分析。

问:支持哪些数据来源?
Athena 为几个常见的数据存储提供了内置连接器,包括 Amazon Redshift 和 Amazon DynamoDB。您可以使用这些连接器在结构化、半结构化、对象、图形、时间序列和其他数据存储类型上支持 SQL 分析使用案例。有关受支持来源的列表,请查看 Amazon Athena 用户指南:使用 Athena 数据来源连接器

您还可以使用 Athena 的数据连接器开发工具包创建自定义数据来源连接器并使用 Athena 来查询它。首先查看文档和示例连接器实施。

问:联合查询支持哪些使用案例?
通过 Athena,您可以运用现有的 SQL 知识,从广泛的数据来源中提取洞察,而无需学习一门新的语言,开发脚本来提取(和复制)数据,或管理基础设施。使用 Amazon Athena,您可以执行以下任务:

  • 使用单一工具和 SQL 方言对分布在多个数据存储中的的数据进行按需分析。
  • 可视化 BI 应用程序中的数据,这些应用程序通过 ODBCJDBC 接口将复杂的多源连接向下推送到 Athena 的分布式计算引擎。
  • 通过 Athena 与 AWS Step Functions 的集成,设计自助式 ETL 管道和基于事件的数据处理工作流。
  • 统一多种数据来源,为 ML 模型训练工作流生成丰富的输入功能。
  • 开发面向用户的数据即产品应用程序,提供跨数据网格架构的洞察。
  • 在您的企业将本地部署资源迁移到 AWS 时,支持分析使用案例。

问:我可以将联合查询用于 ETL 吗?
Athena 将查询结果存储在 S3 中的一个文件中。这意味着您可以使用 Athena 让其他用户和应用程序能够使用联合数据。如果您想要使用 Athena 对数据执行分析而不重复查询基础源,请使用 Athena 的 CREATE TABLE AS 函数。您还可以使用 Athena 的 UNLOAD 函数查询数据并将结果以特定文件格式存储在 S3 上。

问:数据来源连接器是如何工作的?
数据来源连接器是运行在 Lambda 上的一段代码,它在目标数据来源和 Athena 之间进行转换。当您使用数据来源连接器向 Athena 注册数据存储时,可以在联合数据存储上运行 SQL 查询。当查询在联合源上运行时,Athena 会调用 Lambda 函数并要求它运行特定于联合源的查询部分。要了解更多信息,请查看 Amazon Athena 用户指南:使用 Amazon Athena 联合查询。 

机器学习

问:Athena 支持哪些嵌入式 ML 用例?
Athena 的 ML 用例跨越多个不同的行业,如以下示例所示。金融风险数据分析师可以运行 what-if 分析和蒙特卡洛模拟。业务分析师可以运行线性回归或预测模型来预测未来价值,帮助他们创建更丰富的、有前瞻性的、能够预测收入的业务仪表板。营销分析师可以使用 K-均值集群模型来帮助确定不同的客户群体。安全分析师可以使用逻辑回归模型,通过对数发现异常和检测安全事故。

问:哪些 ML 模型可以与 Athena 一起使用?
Athena 可以调用 SageMaker 上部署的任何 ML 模型。您可以灵活地使用专有数据训练自己的模型,或使用预先训练好并部署到 SageMaker 上的模型。例如,集群分析很可能是根据您自己的数据训练的,因为您想要将新记录分类到用于先前记录的相同类别中。或者,为了预测真实世界体育赛事,您可以使用公开可用的模型,因为所用的训练数据已经位于公共领域中。领域特定或行业特定预测通常将根据您在 SageMaker 中的数据进行训练,而无差别 ML 需求可能会使用外部模型。

问:如何使用 Athena 训练我的 ML 模型?
您不能使用 Athena 在 SageMaker 上训练和部署您的 ML 模型。您可以训练 ML 模型,或使用通过 Athena 在 SageMaker 上部署的预先训练好的现有模型。阅读详细记录 SageMaker 上的训练步骤的文档。

问:我可以在其他服务(如 Comprehend、Forecasting)上部署的模型或我自己的 EC2 集群上部署的模型上运行推理吗?
Athena 仅支持调用 SageMaker 上部署的 ML 模型。我们欢迎您提供反馈,告诉我们您想要将哪些服务与 Athena 结合使用。请将您的反馈通过电子邮件发送至 athena-feedback@amazon.com

问:使用 Athena 查询进行 SageMaker 推理会对性能产生什么影响?
我们会持续向功能和服务增加工作性能改进。为增强 Athena ML 查询的性能,在您调用 SageMaker ML 模型进行推理时,我们会对行进行批处理。目前不支持覆盖用户提供的行批量大小。

问:Athena ML 支持哪些功能?
Athena 提供由 SQL 接口封装的 ML 推理(预测)功能。您还可以调用 Athena UDF,以对结果集调用预处理或后处理逻辑。输入可以包含任何列、记录或表,多个调用可以打包在一起以提高可扩展性。您可以在 Select 阶段或 Filter 阶段运行推理。要了解更多信息,请参阅 Amazon Athena 用户指南:将机器学习(ML)与 Amazon Athena 结合使用

问:我可以使用哪些 ML 模型?
SageMaker 支持各种 ML 算法。您还可以创建自己的专有 ML 模型并将其部署到 SageMaker。例如,集群分析很可能是根据您自己的数据训练的,因为您想要将新记录分类到用于先前记录的相同类别中。在另一方面,为了预测真实世界体育赛事,您可以使用公开可用的模型,因为所用的训练数据将位于公共领域中。

根据我们的预期,特定于领域或行业的预测通常将根据您在 SageMaker 中的数据进行训练,而无差别 ML 需求(如,机器翻译)可能会使用外部模型。 

安全和可用性

问:如何控制对我的数据的访问?
Amazon Athena 允许您通过使用 AWS Identity and Access Management (IAM) 策略、访问控制列表(ACL)和 S3 存储桶策略来控制对数据的访问。通过 IAM 策略,您可以授予 IAM 用户对 S3 存储桶的细化控制权。通过控制对 S3 中数据的访问,您可以限制用户使用 Athena 对其进行查询。

问:Athena 可以查询 S3 中的加密数据吗?
可以。您可以查询使用 S3 托管加密密钥在服务器端加密(SSE)的数据、使用 AWS Key Management Service (KMS) 托管密钥在服务器端加密的数据以及使用 AWS KMS 托管的密钥在客户端加密(CSE)的数据。Athena 还与 AWS KMS 实现了集成,支持加密您的结果集。

问:Athena 是否具有高可用性?
可以。Athena 具有高可用性,它会利用跨多个设施的计算资源运行查询,如果特定设施无法访问,它会适当地自动路由查询。Athena 使用 S3 作为基础数据存储,可确保您的数据具有高可用性和高持久性。S3 提供持久的基础设施来存储重要数据。您的数据将跨多个设施和在各个设施的多个设备间冗余存储。

问:我可以提供对他人 S3 存储桶的跨账户访问权限吗?
可以。您可以提供对 S3 的跨账户访问权限。

定价与计费

问:Athena 如何定价?
Amazon Athena 按查询定价,并基于查询扫描的数据量收费。您可以在 S3 上以各种格式存储数据。如果您压缩数据、分区或将其转换为列式存储格式,则由于扫描的数据较少,您需要支付的费用也会减少。将数据转换为列格式能够让 Athena 只读取必须处理查询的列。有关更多详细信息,请查看 Amazon Athena 定价页面。

问:为什么使用列格式时收费较少?
Athena 根据查询扫描的数据量收取费用。对数据进行压缩可使 Athena 扫描较少的数据。将数据转换为列格式能够让 Athena 有选择地只读取处理数据所必需的列。对数据进行分区也能限制 Athena 扫描的数据量。这能够节省成本并提高性能。有关更多详细信息,请查看 Amazon Athena 定价页面。

问:如何降低成本?
通过压缩、分区和将数据转换为列格式,可以节省 30%-90% 的查询成本,同时获得更好的性能。这几项操作都能减少 Athena 为运行查询而必须扫描的数据量。Athena 支持 Parquet 和 ORC 这两种最为流行的开源列格式。您可以在 Athena 控制台中查看每次查询的扫描数据量。

问:查询失败时,Athena 是否会收费?
否。如果查询失败,系统不会向您收取费用。

问:如果取消查询,Athena 是否会收费?
可以。如果手动取消查询,您需要为取消查询前已扫描的数据量付费。

问:Athena 还有其他收费项目吗?
Athena 直接从 S3 查询数据,因此,系统会针对您的源数据按 S3 费率收费。当 Athena 运行查询时,它会将结果存储在您选择的 S3 存储桶中。然后,您需要为这些结果集按标准 S3 费率付费。建议您监控这些存储桶,使用生命周期策略来控制保留多少数据。

问:使用 AWS Glue 数据目录是否需要付费?
可以。您需要单独支付使用 Data Catalog 的费用。要了解有关 Data Catalog 定价的更多信息,请查看 AWS Glue 定价页面。 

Amazon Athena for Apache Spark

问:什么是 Amazon Athena for Apache Spark?
Athena 正在扩展以支持 Spark,以便数据分析师和数据工程师可以获得 Athena 的交互式、完全托管体验,但除了 SQL 之外,也可以使用 Spark。Spark 是一种热门的开源分布式处理系统,经过增强,适用于任何数据规模的快速分析工作负载,可提供丰富的开源库系统。现在,您可以在 Athena 控制台中使用简化的笔记本体验或通过 Athena API,以富有表现力的语言(例如 Python)构建 Spark 应用程序。您可以查询来自各种来源的数据,将多个计算链接在一起,并可视化其分析结果。对于交互式 Spark 应用程序,您的等待时间更短,效率更高,因为 Athena 可以在一秒钟内开始运行应用程序。此外,与今天的 Athena 一样,客户可以获得简化的、专门构建的 Spark 体验,最大限度地减少版本升级、性能调整和与其他 AWS 服务集成所需的工作。

问:为什么我应该使用 Athena for Apache Spark?
如果您需要交互式、完全托管的分析体验以及与 AWS 服务的紧密集成,请使用 Athena for Apache Spark。您现在可以使用 Spark 在 Athena 中使用熟悉的、富有表现力的语言(例如 Python)和不断增长的 Spark 资源包环境执行分析。您现在还可以通过 Athena API 进入他们的 Spark 应用程序,或者进入 Athena 控制台中的简化笔记本,并在一秒钟内开始运行 Spark 应用程序,而无需设置和调整底层基础设施。与 Athena 的 SQL 查询功能一样,Athena 也可以提供完全托管的 Spark 体验,并能自动处理性能调优、机器配置和软件补丁,因此您无需担心与版本升级保持同步的问题。此外,Athena 还与 AWS 系统中的其他分析服务(如 Data Catalog)紧密集成。因此,您可以通过引用 Data Catalog 中的表在 S3 数据湖中的数据上创建 Spark 应用程序。

问:如何开始使用 Athena for Apache Spark?
要开始使用 Athena for Apache Spark,您可以在 Athena 控制台中启动笔记本或使用 AWS Command Line Interface (CLI) 或 Athena API 来启动会话。在您的笔记本中,您可以开始使用 Python 进入和关闭 Spark 应用程序。Athena 还与 Data Catalog 集成,因此您可以使用目录中引用的任何数据来源,包括直接在 S3 数据湖中的数据。借助笔记本,您现在可以查询来自各种来源的数据,将多个计算链接在一起,并可视化他们的分析结果。在您的 Spark 应用程序上,您可以在 Athena 控制台中检查执行状态并查看日志和执行历史记录。

问:Athena 基于哪个 Spark 版本?
Athena for Apache Spark 基于稳定的 Spark 3.2 版本。作为一个完全托管的引擎,Athena 将提供 Spark 的自定义版本,并将以向后兼容的方式自动处理大多数 Spark 版本更新,无需您的参与。

Amazon Athena 定价
了解有关 Amazon Athena 定价的更多信息

探索 Amazon Athena 提供的所有定价选项。

了解更多 
注册 AWS 账户
注册免费账户

立即享受 AWS 免费套餐。 

注册 
使用 Amazon Athena 开始构建
开始在控制台中构建

在 AWS 管理控制台中开始使用 Amazon Athena 进行构建。

登录