设置数据使用控制限制 - Amazon Athena
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

设置数据使用控制限制

Athena 允许您设置两种类型的成本控制:每个查询限制和每个工作组限制。对于每个工作组,您可以设置一个每个查询限制和多个每个工作组限制。

  • 每个查询控制限制用于指定扫描的每个查询的数据总量。如果工作组中运行的任何查询超出限制值,则该查询将取消。在工作组中您只能创建一个每个查询控制限制,该限制适用于工作组中运行的每个查询。如果您需要进行更改,可编辑限制。有关详细步骤,请参阅创建每个查询数据使用控制

  • 工作组范围内数据使用控制限制用于指定在指定时间段内,针对该工作组中运行的所有查询扫描的数据总量。您可以创建多个每个工作组限制。通过工作组范围内查询限制,您可以对工作组中运行的查询所扫描的数据设置每小时或每日聚合的多个阈值。

    如果扫描的聚合数据量超出阈值,那么您可以选择执行下列操作之一:

    • 在 Athena 控制台中配置 Amazon SNS 警报和操作,以便当达到限制值时通知管理员。有关详细步骤,请参阅创建每个工作组数据使用控制。您还可以从 CloudWatch 控制台,对 Athena 发布的任何指标创建警报和操作。例如,您可以对失败的查询次数设置警报。如果数量超出特定阈值,此警报可以触发向管理员发送电子邮件。如果超出限制值,操作将向指定用户发送 Amazon SNS 警报通知。

    • 调用 Lambda 函数。有关更多信息,请参阅 Amazon Simple Notification Service 开发人员指南 中的使用 Amazon SNS 通知调用 Lambda 函数

    • 禁用工作组,停止运行任何后续查询。

每个查询限制和每个工作组限制是相互独立的。只要超出任一限制,就会执行指定操作。如果两个或多个用户在同一工作组中同时运行查询,那么有可能每个查询未超出任何指定的限制,但扫描的数据总量超出了每个工作组的数据使用限制。在这种情况下,会向用户发送 Amazon SNS 警报。

创建每个查询数据使用控制

每个查询控制限制用于指定扫描的每个查询的数据总量。如果工作组中运行的任何查询超出限制值,则该查询将取消。取消的查询按照 Amazon Athena 定价进行计费。

注意

当查询被取消或失败时,Athena 可能已将部分结果写入 Amazon S3。在这种情况下,Athena 不会从存储结果的 Amazon S3 前缀中删除部分结果。您必须删除包含部分结果的 Amazon S3 前缀。Athena 使用 Amazon S3 分段上传将数据写入 Amazon S3。我们建议您设置存储桶生命周期策略,以便当查询失败时中止分段上传。有关更多信息,请参阅 Amazon Simple Storage Service 开发人员指南 中的使用存储桶生命周期策略中止未完成的分段上传

在工作组中您只能创建一个每个查询控制限制,该限制适用于工作组中运行的每个查询。如果您需要进行更改,可编辑限制。

  1. https://console.amazonaws.cn/athena/ 打开 Athena 控制台。

  2. 选择 Workgroup:<name> (工作组:) 选项卡。

    要为特定工作组中的查询创建数据使用控制,无需切换到该工作组,可以留在其他工作组中。但您需要从列表中选择工作组,并具有编辑工作组的权限。

  3. 从列表中选择工作组,然后选择 View details (查看详细信息)。如果您具有权限,Overview (概览) 选项卡中将显示工作组的详细信息。

  4. 选择 Data usage controls (数据使用控制) 选项卡。将显示 Per Query Data Usage Control (每个查询数据使用控制) 对话框。

    
                        创建每个查询数据使用控制的屏幕截图。
  5. 指定(或更新)字段值,如下所示:

    • 对于 Data limit (数据限制),指定一个介于 10000 KB(最小值)与 7 EB(最大值)之间的值。

      注意

      这些是控制台对工作组内的数据使用控制施加的限制。不表示 Athena 中的任何查询限制。

    • 对于单位,从下拉列表中选择单位值。

    • 检查默认的 Action (操作)。默认的 Action (操作) 是当超出限制值时取消查询。此操作无法更改。

  6. 如果要创建新的限制,则选择 Create (创建);如果要编辑现有限制,则选择 Update (更新)。如果您正在编辑现有限制,请刷新 Overview (概览) 选项卡以查看更新后的限制。

创建每个工作组数据使用控制

工作组范围内数据使用控制限制用于指定在指定时间段内,针对该工作组中运行的所有查询扫描的数据总量。您可以创建多个每个工作组控制限制。如果超出限制值,您可以选择执行操作,例如,向指定用户发送 Amazon SNS 警报通知。

  1. https://console.amazonaws.cn/athena/ 打开 Athena 控制台。

  2. 选择 Workgroup:<name> (工作组:) 选项卡。

    要为特定工作组创建数据使用控制,无需切换到该工作组,可以留在其他工作组中。但您需要从列表中选择工作组,并具有编辑工作组的权限。

  3. 从列表中选择工作组,然后选择 View details (查看详细信息)。如果您具有编辑权限,Overview (概览) 选项卡中将显示工作组的详细信息。

  4. 选择 Data usage controls (数据使用控制) 选项卡并向下滚动。然后选择 Workgroup Data Usage Control (工作组数据使用控制),以创建新的限制或编辑现有限制。将显示 Create workgroup data usage control (创建工作组数据使用控制) 对话框。

    
                        创建每个工作组数据使用控制的屏幕截图。
  5. 指定字段值,如下所示:

    • 对于 Data limits (数据限制),指定一个介于 10000 KB(最小值)与 7 EB(最大值)之间的值。

      注意

      这些是控制台对工作组内的数据使用控制施加的限制。不表示 Athena 中的任何查询限制。

    • 对于单位,从下拉列表中选择单位值。

    • 对于时间段,从下拉列表中选择一个时间段。

    • 对于 Action (操作),从下拉列表中选择 Amazon SNS 主题(如果您已配置)。或者,选择 Create an Amazon SNS topic (创建 Amazon SNS 主题) 直接转至 Amazon SNS 控制台,创建 Amazon SNS 主题,并为您 Athena 账户中的用户之一设置该主题的订阅。有关更多信息,请参阅 Amazon Simple Notification Service 入门指南 中的创建 Amazon SNS 主题

  6. 如果要创建新的限制,则选择 Create (创建);如果要编辑现有限制,则选择 Save (保存)。如果您正在编辑现有限制,请刷新工作组的 Overview (概览) 选项卡以查看更新后的限制。