本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Step Functions 运行 Athena 查询
您可以 AWS Step Functions 与 Amazon Athena 集成,启动和停止查询执行,并通过 Step Functions 获取查询结果。使用 Step Functions,您可以运行临时或计划数据查询,并检索针对 S3 数据湖的结果。Athena 没有服务器,因此您无需设置或管理任何基础设施,且只需为您运行的查询付费。本页列出了支持的 A APIs thena,并提供了启动 Athena Task
查询的示例状态。
Step Functions 可以直接从 Amazon States Language (ASL) 控制某些 AWS 服务。要了解更多信息,请参阅与其他服务集成和在 Step Functions API 中向服务传递参数。
优化后的 Athena 集成与 Athena 集成有何不同 AWS SDK
-
支持运行作业 (.sync) 集成模式。
-
没有针对请求响应集成模式的优化。
-
不支持等待具有任务令牌的回调集成模式。
要 AWS Step Functions 与亚马逊 Athena 集成,您可以使用所提供的 Athena 服务集成。APIs
服务集成与相应APIs的 Athena APIs 相同。并非所有集成模式都APIs支持所有集成模式,如下表所示。
API | 请求响应 | 运行作业 (.sync) |
---|---|---|
StartQueryExecution |
✓ | ✓ |
StopQueryExecution |
✓ | |
GetQueryExecution |
✓ | |
GetQueryResults |
✓ |
支持的亚马逊 AthenaAPIs:
注意
在 Step Functions 中,任务的最大输入或结果数据大小有一个配额。这样,当您向其他服务发送数据或从其他服务接收数据时,您只能使用 256 KB 的数据作为 UTF -8 编码的字符串。请参阅 与状态机执行相关的配额。
下面包含一个启动 Athena 查询作业的 Task 状态。
"Start an Athena query": { "Type": "Task", "Resource": "arn:aws:states:::athena:startQueryExecution.sync", "Parameters": { "QueryString": "SELECT * FROM \"myDatabase\".\"myTable\" limit 1", "WorkGroup": "primary", "ResultConfiguration": { "OutputLocation": "s3://athenaQueryResult" } }, "Next": "Get results of the query" }
有关在与其他 AWS 服务Step Functions一起使用时如何配置IAM权限的信息,请参阅Step Functions 如何为集成服务生成IAM策略。