使用 Step Functions 呼叫 Athena - AWS Step Functions

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Step Functions 呼叫 Athena

Step Functions 可以直接從Amazon States Language(ASL)控制某些 AWS 服務。如需了解詳細資訊,請參閱 使用其他 服務將參數傳遞至服務 API

最佳化的 Athena 整合與 Athena AWS SDK 整合有何不同

與 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 政策