使用 Amazon Athena,您只需按实际用量付费。使用时,不存在预付费用、最低消费承诺,更没有长期合同。费用将在每月月末按实际用量收取。 

为了开始使用,您创建一个工作组,将允许您指定查询引擎,即您在 Amazon Simple Storage Service (S3) 中用于存储执行结果、AWS 身份和访问管理 (IAM) 角色(如需要),以及您的资源标签的工作目录。您可以使用工作组区分用户、团队、应用程序或工作负载,为每个查询或整个工作组可以处理的数据量设置上限,并跟踪费用。根据您创建的工作组,您可以 (a) 运行基于 SQL 的查询并为扫描的字节数支付费用,或 (b) 运行 Apache Spark Python 代码并按小时为执行代码支付费用。

按查询定价

使用列式数据格式、分区及压缩数据可节省更多资金

通过对数据进行压缩、分区或将其转换为列格式,每条查询可以节省 30% 至 90% 的成本并可获得更好的性能。

定价详细信息

使用查询编辑器或 AWS 命令行界面 (CLI) 的基于 SQL 的查询 

您需要按每次查询所扫描的数据量付费。通过对数据进行压缩、分区或将其转换为分列格式,您可以节省大量资金并提高性能,因为这些操作均可以减少 Athena 运行查询所需扫描的数据量。

您需要按 Amazon Athena 扫描的字节数(四舍五入至最接近的兆字节,每条查询至少 10MB)付费。无需为数据定义语言 (DDL) 语句(如 CREATE/ALTER/DROP TABLE)、管理分区语句或失败的查询付费。取消的查询将按扫描的数据量收费。

对数据进行压缩可使 Athena 扫描较少的数据。将数据转换为列格式能够让 Athena 有选择地只读取处理数据所必需的列。Athena 支持 Apache ORC 和 Apache Parquet。对数据进行分区也能限制 Athena 扫描的数据量。这能够节省成本并提高性能。您可以在 Athena 控制台中查看每次查询的扫描数据量。有关详情,请参阅下面的定价示例。

联合查询定价

您需要按跨所有数据源聚合的 Amazon Athena 扫描的字节数(四舍五入至最接近的兆字节,每条查询至少 10MB)付费。

使用笔记本或 AWS CLI 运行 Apache Spark Python 代码

您只需为 Apache Spark 应用程序运行所需的时间付费。我们根据用于运行 Apache Spark 应用程序的数据处理单元(DPU)的数量向您收取小时费率。单个 SU 提供 4 vCPU 和 16 GB 内存。您将按 1 秒的增量计费,四舍五入到最接近的秒数。

当您通过在 Athena 控制台上启动笔记本或使用 Athena API 来启动 Spark 会话时,系统会为您的应用程序预配置两个节点:一个笔记本节点,充当笔记本用户界面的服务器;一个 Spark 驱动程序节点,协调该节点 Spark 应用程序并与所有 Spark Worker 节点通信。Spark Worker 节点负责运行 Spark 应用程序的任务。启动会话后,可以通过在笔记本中执行单元格或使用 start-calculation-execution API 运行 Spark 应用程序。运行 Spark 应用程序时,Amazon Athena 将为应用程序预配置 Spark Worker 节点。当应用程序完成执行后,再释放 Worker 节点。由于 Athena for Apache Spark 为立即自动缩减资源数量,Amazon Athena 能够最大限度节省您需支付的空闲费用。当 Spark 会话完成时,会释放驱动程序、任何 Worker 节点以及笔记本节点。Athena 将在会话期间向您收取驱动程序和 Worker 节点的费用。Amazon Athena 在控制台上提供笔记本作为用户界面,用于创建、提交和执行 Apache Spark 应用程序,并免费提供给您。Athena 不对 Spark 会话期间使用的笔记本节点收费。

额外费用

Amazon Athena 直接从 Amazon S3 中查询数据。使用 Athena 查询数据无需额外支付存储费用。您将按标准 S3 费率支付存储、请求和数据传输费用。默认情况下,查询结果存储在您选择的 S3 存储桶中,也按标准 Amazon S3 费率计费。

如果您将 AWS Glue Data Catalog 与 Athena 结合使用,则需要按标准数据目录费率支付费用。有关详细信息,请访问 AWS Glue 定价页面

此外,我们还将对与 Athena 一起使用的 AWS 服务(如 Amazon S3、AWS Lambda、AWS Glue 和 Amazon SageMaker)按标准费率收费。例如,对于存储、请求和区域间数据传输,我们将按照 S3 费率收费。默认情况下,查询结果存储在您选择的 S3 存储桶中,也按标准 Amazon S3 费率计费。如果您使用 AWS Lambda,我们将根据您函数的请求数量和持续时间,以及代码运行花费的时间向您收费。

联合查询在您的账户中调用 AWS Lambda 函数,需要按照标准费率向您收取 Lambda 使用费。联合查询调用的 Lambda 函数可适用 Lambda 免费套餐。有关详细信息,请访问 AWS Lambda 定价页面

定价示例

示例 1 - SQL 查询

设想一个具有 4 个同样大小列的表,以未压缩的文本文件形式存储在 Amazon S3 上,总大小为 3TB。如果运行查询以从该表的一个列中获取数据,则需要 Amazon Athena 扫描整个文件,因为文本格式无法拆分。

  • 上述查询的费用为:15 USD。(所扫描的 3TB 数据的费用为:3 * 5 USD/TB = 15 USD)

如果使用 GZIP 将文件压缩,则可以得到 3:1 的压缩比。就本例而言,您可以获得一个大小为 1TB 的压缩文件。对这个文件运行同样的查询,费用为 5 USD。Athena 仍需要扫描整个文件,但是由于文件大小缩小为原来的三分之一,因此您只需支付原来费用的三分之一即可。如果您压缩文件并将其转换为列格式(如 Apache Parquet)以实现 3:1 的压缩比,则您仍可以在 Amazon S3 上获得 1TB 大小的数据。但是,就本例而言,由于 Parquet 是列式,因此 Amazon Athena 只能够读取与正在执行的查询相关的列。 由于所谈到的查询仅参考一个列,因此 Athena 只需读取该列,而不必读取另外四分之三的文件。由于 Athena 只需读取四分之一的文件,因此它只需从 S3 扫描 0.25TB 的数据。

  • 上述查询的费用为:1.25 USD。压缩可以将费用降低到原来的三分之一,而只读取一列又可以将费用进一步降低到四分之一。 
    (文件大小 = 3TB/3 = 1TB。读取一个列时扫描的数据 = 1TB/4 = 0.25TB。0.25TB 数据的费用 = 0.25 * 5 USD/TB = 1.25 USD)

示例 2 - Apache Spark 应用程序

请想象这样一个场景:在 Amazon Athena 控制台中使用笔记本提取上一季度的销售数据,并将这些数据图表化以创建报告。您使用笔记本启动一个会话。您的会话持续了 1 个小时,会话中提交了 6 次计算。每次运行计算需要 20 个 1-DPU Worker 节点,持续时间 1 分钟。

  • Worker DPU-小时 = 计算次数 * 每次计算使用的 DPU 数量 * 计算的执行时间 = 6 次计算 * 每次计算 20 个 DPU * 每次计算持续 (1/60) 小时 = 2.0 DPU-小时
  • 驱动程序 DPU-小时 = 每个会话使用的 DPU 数量 * 会话时间 = 每个会话 1 DPU * 每个会话 1 小时 = 1.0 DPU-小时
  • 总计 DPU-小时 = Worker DPU-小时 + 驱动程序 DPU-小时 = 2.0 DPU-小时 + 1.0 DPU-小时 = 3.0 DPU-小时
  • Spark 应用程序费用 = 每 DPU-小时 0.35 USD * 3.0 DPU-小时 = 1.05 USD

请注意:S3 会单独向您收费才能存储和读取您的数据,以及您的执行结果。

其他定价资源

AWS 定价计算器

轻松计算 AWS 的月度费用

获取定价协助

联系 AWS 专家获取个性化报价

访问入门页面

了解如何开始使用 Amazon Athena。

了解更多 »
开始在控制台中构建

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

登录 »
联系专家

探索 Amazon Athena 支持选项。

联系我们 »