Conector do Amazon Athena para o TPC Benchmark DS (TPC-DS) - Amazon Athena

Conector do Amazon Athena para o TPC Benchmark DS (TPC-DS)

O conector TPC-DS no Amazon Athena permite que o Amazon Athena se comunique com uma fonte de dados do TPC Benchmark DS gerada aleatoriamente para uso em benchmarking e testes funcionais do Athena Federation. O conector TPC-DS no Athena gera um banco de dados compatível com TPC-DS em um dos quatro fatores de escala. Não recomendamos o uso desse conector como alternativa aos testes de desempenho de data lake baseados no Amazon S3.

Esse conector não pode ser registrado como um catálogo federado no Glue Data Catalog. Esse conector não é compatível com controles de acesso a dados definidos no Lake Formation nos níveis de catálogo, banco de dados, tabela, coluna, linha e tag. Esse conector usa o Glue Connections para centralizar as propriedades de configuração no Glue.

Pré-requisitos

Parâmetros

Use os parâmetros nesta seção para configurar o conector do TPC-DS.

nota

Os conectores de fonte de dados do Athena criados a partir de 3 de dezembro de 2024 usam conexões do AWS Glue.

Os nomes e definições dos parâmetros listados abaixo são para conectores de fonte de dados do Athena criados antes de 3 de dezembro de 2024. Eles podem diferir de suas propriedades de conexão do AWS Glue correspondentes. A partir de 3 de dezembro de 2024, use os parâmetros abaixo somente ao implantar manualmente uma versão anterior de um conector de fonte de dados do Athena.

  • spill_bucket: especifica o bucket do Amazon S3 para dados que excedem os limites da função do Lambda.

  • spill_prefix: (opcional) assume como padrão uma subpasta no spill_bucket especificado chamado athena-federation-spill. Recomendamos que você configure um ciclo de vida de armazenamento do Amazon S3 neste local para excluir derramamentos anteriores a um número predeterminado de dias ou horas.

  • spill_put_request_headers: (opcional) um mapa codificado em JSON de cabeçalhos e valores de solicitações para a solicitação putObject do Amazon S3 usada para o derramamento (por exemplo, {"x-amz-server-side-encryption" : "AES256"}). Para outros cabeçalhos possíveis, consulte PutObject na Referência da API do Amazon Simple Storage Service.

  • kms_key_id: (opcional) por padrão, todos os dados transmitidos para o Amazon S3 são criptografados usando o modo de criptografia autenticado AES-GCM e uma chave gerada aleatoriamente. Para que sua função do Lambda use chaves de criptografia mais fortes geradas pelo KMS, como a7e63k4b-8loc-40db-a2a1-4d0en2cd8331, é possível especificar um ID de chave do KMS.

  • disable_spill_encryption: (opcional) quando definido como True, desativa a criptografia do derramamento. É padronizado como False, para que os dados transmitidos para o S3 sejam criptografados usando o AES-GCM — usando uma chave gerada aleatoriamente ou o KMS para gerar chaves. Desativar a criptografia do derramamento pode melhorar o desempenho, especialmente se o local do derramamento usar criptografia no lado do servidor.

Teste de bancos de dados e tabelas

O conector TPC-DS no Athena gera um banco de dados compatível com TPC-DS em um dos quatro fatores de escala tpcds1, tpcds10, tpcds100, tpcds250 ou tpcds1000.

Resumo de tabelas

Para obter uma lista completa de tabelas e colunas de dados de teste, execute a consulta SHOW TABLES ou DESCRIBE TABLE. O resumo de tabelas a seguir é fornecido para sua conveniência.

  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. Inventário do 

  13. item

  14. promotion

  15. razão

  16. ship_mode

  17. armazenamento

  18. store_returns

  19. store_sales

  20. time_dim

  21. warehouse

  22. web_page

  23. web_returns

  24. web_sales

  25. web_site

Para consultas do TPC-DS que sejam compatíveis com esse esquema e dados gerados, consulte o diretório athena-tpcds/src/main/resources/query no GitHub.

Consulta de exemplo

O exemplo de consulta SELECT a seguir consulta o catálogo tpcds para dados demográficos de clientes em países 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

Permissões obrigatórias

Os detalhes completos sobre as políticas do IAM exigidas por esse conector podem ser encontrados na seção Policies do arquivo athena-tpcds.yaml. A lista a seguir resume as permissões necessárias.

  • Acesso de gravação do Amazon S3: o conector requer acesso de gravação a um local no Amazon S3 para mostrar resultados de grandes consultas.

  • Athena GetQueryExecution: o conector usa esta permissão para falhar rapidamente quando a consulta upstream do Athena é encerrada.

Performance

O conector TPC-DS do Athena tenta paralelizar as consultas com base no fator de escala que você escolher. A redução de predicados é realizada dentro da função do Lambda.

Informações de licença

O projeto do conector TPC-DS do Amazon Athena é licenciado sob a Licença Apache-2.0.

Recursos adicionais

Para obter mais informações sobre esse conector, visite o site correspondente em GitHub.com.