本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon Athena TPC-DS 連接器讓 Amazon Athena 能夠與隨機產生的 TPC Benchmark DS 資料來源通訊,以用於 Athena Federation 的基準化分析和功能測試。Athena TPC-DS 連接器會以四種縮放比例之一產生符合 TPC-DS 規範的資料庫。我們不建議使用此連接器作為 Amazon S3 資料湖效能測試的替代方案。
此連接器無法向 Glue Data Catalog 註冊為聯合型目錄。此連接器不支援 Lake Formation 中在目錄、資料庫、資料表、資料欄、資料列和標籤層級定義的資料存取控制。此連接器使用 Glue Connections 來集中 Glue 中的組態屬性。
先決條件
使用 Athena 主控台或 AWS Serverless Application Repository,將連接器部署到您的 AWS 帳戶 。如需詳細資訊,請參閱 建立資料來源連線 或 使用 AWS Serverless Application Repository 部署資料來源連接器。
參數
使用本節中的參數來設定 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 – (選用) 用於溢出的 Amazon S3
putObject
請求的請求標頭和值的 JSON 編碼映射 (例如,{"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
,因此溢出 S3 的資料會使用 AES-GCM 進行加密 — 使用隨機產生的金鑰或 KMS 來產生金鑰。停用溢出加密可以提高效能,尤其是如果溢出位置使用伺服器端加密。
測試資料庫和資料表
Athena TPC-DS 連接器會以四種縮放比例 (tpcds1
、tpcds10
、tpcds100
、tpcds250
或 tpcds1000
) 之一產生符合 TPC-DS 規範的資料庫。
資料表摘要
如需測試資料表和資料欄的完整清單,請執行 SHOW
TABLES
或者 DESCRIBE TABLE
查詢。為了方便起見,提供以下資料表摘要。
-
call_center
-
catalog_page
-
catalog_returns
-
catalog_sales
-
customer
-
customer_address
-
customer_demographics
-
date_dim
-
dbgen_version
-
household_demographics
-
income_band
-
庫存
-
item
-
promotion
-
reason
-
ship_mode
-
存放
-
store_returns
-
store_sales
-
time_dim
-
warehouse
-
web_page
-
web_returns
-
web_sales
-
web_site
如需與此產生的結構描述和資料相容的 TPC-DS 查詢,請參閱 GitHub 上的 athena-tpcds/src/main/resources/queries/
查詢範例
下列 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.yamlPolicies
部分。以下清單摘要說明所需的許可。
-
Amazon S3 寫入存取 - 連接器需要 Amazon S3 中某個位置的寫入存取權,以便從大型查詢中溢寫結果。
-
Athena GetQueryExecution - 當上游 Athena 查詢終止時,連接器會使用此許可快速失敗。
效能
Athena TPC-DS 連接器會嘗試根據您選擇的比例因數平行處理查詢。在 Lambda 函數內執行述詞下推。
授權資訊
Amazon Athena TPC-DS 連接器專案是依據 Apache-2.0 License
其他資源
如需此連接器的其他資訊,請造訪 GitHub.com 上的相應網站