Conector para TPC Benchmark DS (TPC-DS) de Amazon Athena - Amazon Athena

Conector para TPC Benchmark DS (TPC-DS) de Amazon Athena

El conector de TPC-DS de Amazon Athena permite que este servicio se comunique con un origen de datos de TPC Benchmark DS generados aleatoriamente para usarlo en evaluaciones comparativas y pruebas de funcionamiento de la federación de Athena. El conector Athena TPC-DS genera una base de datos compatible con TPC-DS en uno de cuatro factores de escala. No recomendamos usar este conector como alternativa a las pruebas de rendimiento de lagos de datos basados en Amazon S3.

Requisitos previos

Parámetros

Use las variables de entorno de Lambda de esta sección para configurar el conector de TPC-DS.

  • spill_bucket: especifica el bucket de Amazon S3 para los datos que superen los límites de la función de Lambda.

  • spill_prefix: (opcional) de forma predeterminada, se establece una subcarpeta en la carpeta especificada spill_bucket llamada athena-federation-spill. Le recomendamos configurar un ciclo de vida de almacenamiento de Amazon S3 en esta ubicación para eliminar vertidos de más de un número predeterminado de días u horas.

  • spill_put_request_headers: (opcional) un mapa codificado en JSON de encabezados y valores de solicitudes para la solicitud putObject de Amazon S3 que se usa para el vertidos (por ejemplo, {"x-amz-server-side-encryption" : "AES256"}). Para ver otros encabezados posibles, consulte PutObject en la referencia de la API de Amazon Simple Storage Service.

  • kms_key_id: (opcional) de forma predeterminada, los datos que se vierten a Amazon S3 se cifran mediante el modo de cifrado autenticado AES-GCM y una clave generada aleatoriamente. Para que la función de Lambda use claves de cifrado más seguras generadas por KMS, como a7e63k4b-8loc-40db-a2a1-4d0en2cd8331, puede especificar un ID de clave de KMS.

  • disable_spill_encryption: (opcional) cuando se establece en True, desactiva el cifrado del vertido. El valor predeterminado es False, de modo que los datos que se vierten a S3 se cifran mediante AES-GCM, ya sea mediante una clave generada aleatoriamente o KMS para generar claves. La desactivación del cifrado de vertido puede mejorar el rendimiento, especialmente si su ubicación de vertido usa cifrado del servidor.

Prueba de bases de datos y tablas

El conector de TPC-DS de Athena genera una base de datos compatible con TPC-DS en uno de cuatro factores de escala: tpcds1, tpcds10, tpcds100, tpcds250 o tpcds1000.

Resumen de tablas

Para obtener una lista completa de las tablas y columnas de datos de prueba, ejecute las consultas SHOW TABLES o DESCRIBE TABLE. Se proporciona el siguiente resumen de tablas para mayor comodidad.

  1. call_center

  2. catalog_page

  3. catalog_returns

  4. catalog_sales

  5. cliente

  6. customer_address

  7. customer_demographics

  8. date_dim

  9. dbgen_version

  10. household_demographics

  11. income_band

  12. inventario

  13. elemento

  14. promotion

  15. reason

  16. ship_mode

  17. almacenar

  18. store_returns

  19. store_sales

  20. time_dim

  21. almacén

  22. web_page

  23. web_returns

  24. web_sales

  25. web_site

Para las consultas de TPC-DS que sean compatibles con este esquema y datos generados, consulte el directorio athena-tpcds/src/main/resources/queries/ en GitHub.

Consulta de ejemplo

El siguiente ejemplo de consulta SELECT revisa en el catálogo de tpcds los datos demográficos de clientes de condados específicos.

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

Permisos necesarios

Para obtener información completa sobre las políticas de IAM que requiere este conector, consulte la sección Policies del archivo athena-tpcds.yaml. En la siguiente lista se resumen los permisos requeridos.

  • Acceso de escritura a Amazon S3: el conector requiere acceso de escritura a una ubicación de Amazon S3 para volcar los resultados de consultas de gran tamaño.

  • Athena GetQueryExecution: el conector usa este permiso para fallar rápidamente cuando finaliza la consulta ascendente de Athena.

Rendimiento

El conector de TPC-DS de Athena intenta paralelizar las consultas en función del factor de escala que elija. La inserción de predicados se lleva a cabo dentro de la función de Lambda.

Información sobre licencias

El proyecto de conector de TPC-DS de Amazon Athena está cubierto por la Licencia de Apache-2.0.

Recursos adicionales de

Para obtener más información acerca de este conector, consulte el sitio correspondiente en GitHub.com.