本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Step Functions 调用 Athena
Step Functions 可以直接从 Amazon States Language (ASL) 控制某些 Amazon 服务。要了解更多信息,请参阅使用其他服务和将参数传递给服务 API。
优化后的 Athena 集成与 Athena SDK 集成有何不同 Amazon
-
支持运行作业 (.sync) 集成模式。
-
没有针对请求响应集成模式的优化。
-
不支持等待具有任务令牌的回调集成模式。
通过与 Amazon Athena 的 Amazon Step Functions 服务集成,您可以使用 Step Functions 启动和停止查询执行并获取查询结果。使用 Step Functions,您可以运行临时或计划数据查询,并检索针对 S3 数据湖的结果。Athena 没有服务器,因此您无需设置或管理任何基础设施,且只需为您运行的查询付费。
要 Amazon Step Functions 与亚马逊 Athena 集成,您可以使用提供的雅典娜服务集成 API。
服务集成 API 与相应的 Athena API 相同。并非所有 API 都支持所有集成模式,如下表所示。
API | 请求响应 | 运行作业 (.sync) |
---|---|---|
StartQueryExecution |
✓ | ✓ |
StopQueryExecution |
✓ | |
GetQueryExecution |
✓ | |
GetQueryResults |
✓ |
支持的 Amazon Athena API:
注意
在 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" }
有关在与其他 Amazon 服务Step Functions一起使用时如何配置IAM权限的信息,请参阅集成服务的 IAM 策略。