Amazon Athena TPC基準 DS (TPC-DS) 連接器 - Amazon Athena

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

Amazon Athena TPC基準 DS (TPC-DS) 連接器

Amazon Athena TPC-DS 連接器可讓 Amazon Athena 與隨機產生的TPC基準 DS 資料來源進行通訊,以用於 Athena Federation 的基準和功能測試。Athena TPC-DS 連接器會以四種擴展因素之一產生 TPC-DS 相容資料庫。我們不建議使用此連接器作為 Amazon S3 資料湖效能測試的替代方案。

此連接器無法向 Glue Data Catalog 註冊為聯合型錄。此連接器不支援 Lake Formation 中在目錄、資料庫、資料表、資料欄、資料列和標籤層級定義的資料存取控制。此連接器使用 Glue Connections 來集中 Glue 中的組態屬性。

必要條件

參數

使用本節中的參數來設定 TPC-DS 連接器。

注意

Athena 資料來源連接器於 2024 年 12 月 3 日及之後建立,使用 AWS Glue 連線。

下列參數名稱和定義適用於 2024 年 12 月 3 日之前建立的 Athena 資料來源連接器。這些可能與其對應的AWS Glue 連線屬性不同。自 2024 年 12 月 3 日起,只有在您手動部署舊版 Athena 資料來源連接器時,才能使用下列參數。

  • spill_bucket - 針對超過 Lambda 函數限制的資料,指定 Amazon S3 儲存貯體。

  • spill_prefix - (選用) 預設為指定的 spill_bucket 中名為 athena-federation-spill 的子資料夾。我們建議您在此位置設定 Amazon S3 儲存生命週期,以刪除超過預定天數或小時數的溢出。

  • spill_put_request_headers – (選用) JSON 用於溢出的 Amazon S3 putObject請求的請求標頭和值編碼映射 (例如 {"x-amz-server-side-encryption" : "AES256"})。如需其他可能的標頭,請參閱《Amazon Simple Storage Service API參考PutObject》中的 。

  • kms_key_id – (選用) 根據預設,任何溢灑至 Amazon S3 的資料都會使用 AES-GCM 驗證的加密模式和隨機產生的金鑰進行加密。若要讓您的 Lambda 函數使用KMS類似 產生的更強加密金鑰a7e63k4b-8loc-40db-a2a1-4d0en2cd8331,您可以指定KMS金鑰 ID。

  • disable_spill_encryption - (選用) 當設定為 True 時,停用溢出加密。預設為 ,False以便使用 AES- GCM來加密溢出到 S3 的資料,無論是使用隨機產生的金鑰,還是KMS產生金鑰。停用溢出加密可以提高效能,尤其是如果溢出位置使用伺服器端加密

測試資料庫和資料表

Athena TPC-DS 連接器會以四種縮放係數 tpcds1tpcds10tpcds250tpcds100或 之一產生 TPC-DS 相容資料庫tpcds1000

資料表摘要

如需測試資料表和資料欄的完整清單,請執行 SHOW TABLES 或者 DESCRIBE TABLE 查詢。為了方便起見,提供以下資料表摘要。

  1. call_center

  2. catalog_page

  3. catalog_returns

  4. catalog_sales

  5. customer

  6. customer_address

  7. customer_demographics

  8. date_dim

  9. dbgen_version

  10. household_demographics

  11. income_band

  12. 庫存

  13. item

  14. promotion

  15. reason

  16. ship_mode

  17. 存放

  18. store_returns

  19. store_sales

  20. time_dim

  21. warehouse

  22. web_page

  23. web_returns

  24. web_sales

  25. web_site

如需與此產生的結構描述和資料相容的 TPC-DS 查詢,請參閱 上的 athena-tpcds/src/main/resources/queries/ 目錄 GitHub。

查詢範例

下列 SELECT 查詢範例會查詢特定郡的客戶人口統計的 tpcds 目錄。

SELECT cd_gender, cd_marital_status, cd_education_status, count(*) cnt1, cd_purchase_estimate, count(*) cnt2, cd_credit_rating, count(*) cnt3, cd_dep_count, count(*) cnt4, cd_dep_employed_count, count(*) cnt5, cd_dep_college_count, count(*) cnt6 FROM "lambda:tpcds".tpcds1.customer c, "lambda:tpcds".tpcds1.customer_address ca, "lambda:tpcds".tpcds1.customer_demographics WHERE c.c_current_addr_sk = ca.ca_address_sk AND ca_county IN ('Rush County', 'Toole County', 'Jefferson County', 'Dona Ana County', 'La Porte County') AND cd_demo_sk = c.c_current_cdemo_sk AND exists(SELECT * FROM "lambda:tpcds".tpcds1.store_sales, "lambda:tpcds".tpcds1.date_dim WHERE c.c_customer_sk = ss_customer_sk AND ss_sold_date_sk = d_date_sk AND d_year = 2002 AND d_moy BETWEEN 1 AND 1 + 3) AND (exists(SELECT * FROM "lambda:tpcds".tpcds1.web_sales, "lambda:tpcds".tpcds1.date_dim WHERE c.c_customer_sk = ws_bill_customer_sk AND ws_sold_date_sk = d_date_sk AND d_year = 2002 AND d_moy BETWEEN 1 AND 1 + 3) OR exists(SELECT * FROM "lambda:tpcds".tpcds1.catalog_sales, "lambda:tpcds".tpcds1.date_dim WHERE c.c_customer_sk = cs_ship_customer_sk AND cs_sold_date_sk = d_date_sk AND d_year = 2002 AND d_moy BETWEEN 1 AND 1 + 3)) GROUP BY cd_gender, cd_marital_status, cd_education_status, cd_purchase_estimate, cd_credit_rating, cd_dep_count, cd_dep_employed_count, cd_dep_college_count ORDER BY cd_gender, cd_marital_status, cd_education_status, cd_purchase_estimate, cd_credit_rating, cd_dep_count, cd_dep_employed_count, cd_dep_college_count LIMIT 100

所需的許可

如需此連接器所需IAM政策的完整詳細資訊,請參閱 athena-tpcds.yaml 檔案的 Policies區段。以下清單摘要說明所需的許可。

  • Amazon S3 寫入存取 - 連接器需要 Amazon S3 中某個位置的寫入存取權,以便從大型查詢中溢寫結果。

  • Athena GetQueryExecution – 連接器會在上游 Athena 查詢終止時使用此許可來快速失敗。

效能

Athena TPC-DS 連接器會根據您選擇的縮放係數嘗試平行處理查詢。在 Lambda 函數內執行述詞下推。

授權資訊

Amazon Athena TPC-DS 連接器專案是根據 Apache-2.0 授權進行授權。

其他資源

如需此連接器的詳細資訊,請造訪對應的網站 on.com GitHub。