本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon Athena Timestream 連接器
Amazon Athena Timestream 連接器讓 Amazon Athena 能夠與 Amazon Timestream
Amazon Timestream 是快速、可擴展、全受管、專門打造的時間序列資料庫,可讓您每天輕鬆存放和分析數兆個時間序列資料點。Timestream 會將最近的資料保存在記憶體中,並根據使用者定義的政策將歷史資料移到成本最佳化的儲存層,藉此節省您管理時間序列資料生命週期的時間和成本。
如果您的帳戶中啟用了 Lake Formation,則您部署在其中部署的 Athena 聯合 Lambda 連接器的 IAM 角色 AWS Serverless Application Repository 必須具有. AWS Glue Data Catalog
必要條件
使用 Athena 主控台或 AWS Serverless Application Repository,將連接器部署到您的 AWS 帳戶 。如需詳細資訊,請參閱 部署資料來源連接器 或 使用部署 AWS Serverless Application Repository 資料來源連接器 。
參數
使用本節中的 Lambda 環境變數來設定 Timestream 連接器。
-
spill_bucket - 針對超過 Lambda 函數限制的資料,指定 Amazon S3 儲存貯體。
-
spill_prefix - (選用) 預設為指定的
spill_bucket
中名為athena-federation-spill
的子資料夾。我們建議您在此位置設定 Amazon S3 儲存生命週期,以刪除超過預定天數或小時數的溢出。 -
spill_put_request_headers – (選用) 用於溢出的 Amazon S3
putObject
請求的請求標頭和值的 JSON 編碼映射 (例如,{"x-amz-server-side-encryption" : "AES256"}
)。如需其他可能的標頭,請參閱 Amazon 簡單儲存服務 API 參考PutObject中的。 -
kms_key_id - (選用) 依預設,任何溢出到 Amazon S3 的資料都會使用 AES-GCM 驗證加密模式和隨機產生的金鑰進行加密。為了讓您的 Lambda 函數使用 KMS 產生的更強大的加密金鑰,例如
a7e63k4b-8loc-40db-a2a1-4d0en2cd8331
,您可以指定 KMS 金鑰 ID。 -
disable_spill_encryption - (選用) 當設定為
True
時,停用溢出加密。預設為False
,因此溢出 S3 的資料會使用 AES-GCM 進行加密 — 使用隨機產生的金鑰或 KMS 來產生金鑰。停用溢出加密可以提高效能,尤其是如果溢出位置使用伺服器端加密。 -
glue_catalog - (選用) 使用此選項可指定跨帳戶 AWS Glue 目錄。依預設,連接器會嘗試從其自己的 AWS Glue 帳戶取得中繼資料。
設定資料庫和資料表 AWS Glue
您可以選擇性地使用 AWS Glue Data Catalog 作為補充中繼資料的來源。若要啟用與 Timestream 搭配使用的 AWS Glue 表格,您必須擁有一個資料 AWS Glue 庫和表格,其名稱與您要提供補充描述資料的 Timestream 資料庫和表格相符。
注意
為了獲得最佳效能,請僅使用小寫作為資料庫名稱和資料表名稱。使用混合大小寫會導致連接器執行運算密集程度較高的不區分大小寫搜尋。
若要設定 AWS Glue 表格與 Timestream 搭配使用,您必須在 AWS Glue中設定其表格屬性。
若要將 AWS Glue 表格用於補充描述資料
-
在 AWS Glue 主控台中編輯表格,以新增下列表格屬性:
timestream-metadata-flag— 此內容向 Timestream 連接器指示連接器可將表格用於補充中繼資料。您可以為
timestream-metadata-flag
提供任何值,只要timestream-metadata-flag
屬性存在於資料表屬性清單中。-
_view_template - 當您使用 AWS Glue 作為補充中繼資料時,可以使用此資料表屬性,並指定任何 Timestream SQL 作為檢視。Athena Timestream 連接器會使用檢視中的 SQL 以及 Athena 中的 SQL 來執行查詢。如果您想要使用 Athena 中沒有的 Timestream SQL 功能,這會非常有用。
-
請確定您使用本文件中所列適 AWS Glue 用的資料類型。
資料類型
目前,Timestream 連接器僅支援 Timestream 中部份的可用資料類型,尤其是:純量值 varchar
、double
和 timestamp
。
若要查詢 timeseries
資料類型,您必須在 AWS Glue
資料表屬性中設定一個使用 Timestream CREATE_TIME_SERIES
函數的檢視。您還需要為檢視提供結構描述,它使用語法 ARRAY<STRUCT<time:timestamp,measure_value::double:double>>
作為任何時間序列欄的類型。請務必將 double
取代為適合您的資料表的純量類型。
下列影像顯示設定為在時間序列中設定檢視 AWS Glue 表的表格屬性範例。
所需的許可
如需詳細了解此連接器所需的 IAM 政策,請檢閱 athena-timestream.yamlPolicies
部分。以下清單摘要說明所需的許可。
-
Amazon S3 寫入存取 - 連接器需要 Amazon S3 中某個位置的寫入存取權,以便從大型查詢中溢寫結果。
-
Athena GetQueryExecution — 當上游 Athena 查詢終止時,連接器會使用此權限快速失敗。
-
AWS Glue Data Catalog— 時間流連接器需要的唯讀存取權,才能取 AWS Glue Data Catalog 得結構描述資訊。
-
CloudWatch 防護記錄 — 連接器需要存取 CloudWatch 記錄檔以儲存防護記錄。
-
Timestream Access - 用於執行 Timestream 查詢。
效能
建議您使用 LIMIT
子句將傳回的資料 (非掃描的資料) 限制在 256 MB 以下,以確保互動式查詢效能良好。
Athena Timestream 連接器執行述詞下推,以減少查詢掃描的資料。LIMIT
子句可減少掃描的資料量,但是如果未提供述詞,則應預期含有 LIMIT
子句的 SELECT
查詢可掃描至少 16 MB 的資料。選取資料欄子集可大幅加速查詢執行時間,並減少掃描的資料。Timestream 連接器由於並行而對限流保有彈性。
直通查詢
時間流連接器支援傳遞查詢。傳遞查詢使用資料表函數將完整查詢推送至資料來源以進行執行。
若要搭配 Timestream 使用傳遞查詢,您可以使用下列語法:
SELECT * FROM TABLE( system.query( query => '
query string
' ))
下列範例查詢會將查詢向下推送至時間串流中的資料來源。查詢會選取資料customer
表中的所有資料行,將結果限制為 10。
SELECT * FROM TABLE( system.query( query => 'SELECT * FROM customer LIMIT 10' ))
授權資訊
Amazon Athena Timestream 連接器專案是依據 Apache-2.0 License
其他資源
如需有關此連接器的其他資訊,請造訪 GitHub .com 上的對應網站