本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Step Functions 呼叫 Athena
Step Functions 可以直接從Amazon States Language(ASL)控制某些 AWS 服務。如需了解詳細資訊,請參閱 使用其他 服務 和 將參數傳遞至服務 API。
最佳化的 Athena 整合與 Athena AWS SDK 整合有何不同
-
支援執行任務 (.sync)整合模式。
-
請求回應整合模式沒有最佳化。
-
不支援等候傳回任務字符的回呼整合模式。
與 Amazon Athena 的 AWS Step Functions 服務整合可讓您使用 Step Functions 來啟動和停止查詢執行,以及取得查詢結果。使用 Step Functions 數,您可以執行臨機操作或排程的資料查詢,以及擷取以 S3 資料湖為目標的結果。Athena 沒有伺服器,所以不需設定和管理基礎設施,而且您只需支付執行的查詢費用。
若要 AWS Step Functions 與 Amazon Athena 整合,您可以使用提供的 Athena 服務整合 API。
服務整合 API 與對應的 Athena API 相同。並非所有 API 都支援所有整合模式,如下表所示:
API | 請求回應 | 執行任務 (.sync) |
---|---|---|
StartQueryExecution |
✓ | ✓ |
StopQueryExecution |
✓ | |
GetQueryExecution |
✓ | |
GetQueryResults |
✓ |
支援的 Amazon Athena API:
注意
「Step Functions 數」中的工作有最大輸入或結果資料大小的配額。當您傳送至其他服務或從其他服務接收資料時,這會將您限制為 256 KB 的資料,做為 UTF-8 編碼字串。請參閱與狀態機器執行相關的配額。
以下內容包含啟動 Athena 查詢的工作狀態。
"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" }
如需Step Functions與其他 AWS 服務搭配使用時如何設定IAM權限的相關資訊,請參閱整合式服務的 IAM 政策。