Amazon Athena TPC 基准 DS(TPC-DS)连接器 - Amazon Athena
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

Amazon Athena TPC 基准 DS(TPC-DS)连接器

Amazon Athena TPC-DS 连接器使 Amazon Athena 可以与随机生成的 TPC 基准 DS 数据源通信,用于 Athena Federation 的基准测试和功能测试。Athena TPC-DS 连接器以四种比例因子之一生成符合 TPC-DS 标准的数据库。我们不建议将此连接器用作基于 Amazon S3 的数据湖性能测试的替代方法。

先决条件

参数

使用本节中的 Lambda 环境变量来配置 TPC-DS 连接器。

  • 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 -(可选)默认情况下,将使用经过 AES-GCM 身份验证的加密模式和随机生成的密钥对溢出到 Amazon S3 的任何数据进行加密。要让您的 Lambda 函数使用 KMS 生成的更强的加密密钥(如 a7e63k4b-8loc-40db-a2a1-4d0en2cd8331),您可以指定 KMS 密钥 ID。

  • disable_spill_encryption -(可选)当设置为 True 时,将禁用溢出加密。默认值为 False,此时将使用 AES-GCM 对溢出到 S3 的数据使用进行加密 - 使用随机生成的密钥,或者使用 KMS 生成密钥。禁用溢出加密可以提高性能,尤其是当您的溢出位置使用服务器端加密时。

测试数据库和表

Athena TPC-DS 连接器以四种比例因子之一(tpcds1tpcds10tpcds100tpcds250tpcds1000)生成符合 TPC-DS 标准的数据库。

表格摘要

有关测试数据表和列的完整列表,请运行 SHOW TABLESDESCRIBE 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_return

  24. web_sales

  25. 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

所需权限

查看 athena-tpcds.yaml 文件的 Policies 部分,以获取有关此连接器所需的 IAM 策略的完整详细信息。以下是简短摘要。

  • Amazon S3 写入权限 — 要成功处理大型查询,该连接器需要对 Amazon S3 中的位置具有写入权限。

  • Athena GetQueryExecution – 当上游 Athena 查询终止时,该连接器将使用此权限快速失败。

性能

Athena TPC-DS 连接器尝试根据您选择的比例因子对查询并行化处理。谓词下推在 Lambda 函数中执行。

许可证信息

Amazon Athena TPC-DS 连接器项目已根据 Apache-2.0 许可证获得许可。

另请参阅

有关此连接器的更多信息,请访问 GitHub.com 上的相应站点