Conector do Amazon Athena para o Google BigQuery - Amazon Athena

Conector do Amazon Athena para o Google BigQuery

O conector do Amazon Athena para o Google BigQuery permite que o Amazon Athena execute consultas SQL em seus dados do Google BigQuery.

Pré-requisitos

Limitações

  • As funções do Lambda têm um valor máximo de tempo limite de 15 minutos. Cada divisão executa uma consulta no BigQuery e precisa terminar com tempo suficiente para armazenar os resultados para que o Athena leia. Se a função do Lambda atingir o tempo limite, a consulta falhará.

  • O Google BigQuery diferencia maiúsculas e minúsculas. O conector tenta corrigir a capitalização dos nomes dos conjuntos de dados e dos nomes das tabelas, mas não faz nenhuma correção de capitalização nos ID de projetos. Isso é necessário porque o Athena coloca em minúsculas todos os metadados. Essas correções geram muitas chamadas extras para o Google BigQuery.

  • Não há suporte para o tipo de dado binário.

  • Devido à simultaneidade e aos limites de cota do Google BigQuery, o conector pode encontrar problemas de limite de cota do Google. Para evitar esses problemas, imponha o máximo possível de restrições ao Google BigQuery. Para obter informações sobre cotas do BigQuery, consulte Cotas e limites na documentação do Google BigQuery.

Parâmetros

Use as variáveis de ambiente do Lambda nesta seção para configurar o conector Google BigQuery.

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

  • gcp_project_id: o ID do projeto (não o nome do projeto) que contém os conjuntos de dados que o conector deve ler (por exemplo, semiotic-primer-1234567).

  • secret_manager_gcp_creds_name: o nome do segredo no AWS Secrets Manager que contém suas credenciais do BigQuery no formato JSON (por exemplo, GoogleCloudPlatformCredentials).

  • big_query_endpoint: (opcional) o URL de um endpoint privado do BigQuery. Use esse parâmetro quando quiser acessar o BigQuery por meio de um endpoint privado.

Divisões e exibições

Como o conector BigQuery usa a API Storage Read do BigQuery para consultar tabelas, e a API Storage do BigQuery não é compatível com exibições, o conector usa o cliente do BigQuery com uma única divisão para exibições.

Performance

Para consultar tabelas, o conector BigQuery usa a API Storage Read do BigQuery, que usa um protocolo baseado em RPC que fornece acesso rápido ao armazenamento gerenciado do BigQuery. Para obter mais informações sobre a API BigQuery Storage Read, consulte Use the BigQuery Storage Read API to read table data na documentação do Google Cloud.

A seleção de um subconjunto de colunas acelera o runtime da consulta e reduz os dados verificados de forma significativa. O conector está sujeito a falhas de consulta à medida que a simultaneidade aumenta e, de forma geral, é um conector lento.

O conector do Athena para o Google BigQuery executa a passagem direta de predicados para diminuir os dados examinados pela consulta. Cláusulas LIMIT, cláusulas ORDER BY, predicados simples e expressões complexas são passados diretamente ao conector para reduzir a quantidade de dados examinados e o runtime de execução da consulta.

Cláusulas LIMIT

Uma instrução LIMIT N reduz os dados examinados pela consulta. Com a passagem direta de LIMIT N, o conector só retorna N linhas para o Athena.

Principais N consultas

Uma das N principais consultas especifica uma ordenação do conjunto de resultados e um limite no número de linhas retornadas. Você pode usar esse tipo de consulta para determinar os N principais valores máximos ou N principais valores mínimos para os conjuntos de dados. Com os N pushdown principais, o conector só retorna N linhas para o Athena.

Predicados

Um predicado é uma expressão na cláusula WHERE de uma consulta SQL, que avalia para um valor booleano e filtra as linhas com base em várias condições. O conector do Athena para o Google BigQuery pode combinar essas expressões e passá-las diretamente ao Google BigQuery para melhorar a funcionalidade e reduzir a quantidade de dados examinados.

Os seguintes operadores do conector do Athena para o Google BigQuery são compatíveis com a passagem direta de predicados:

  • Booleanos: E, OU, NÃO

  • Igualdade: EQUAL, NOT_EQUAL, LESS_THAN, LESS_THAN_OR_EQUAL, GREATER_THAN, GREATER_THAN_OR_EQUAL, IS_DISTINCT_FROM, NULL_IF, IS_NULL

  • Aritméticos: ADICIONAR, SUBTRAIR, MULTIPLICAR, DIVIDIR, MÓDULO, NEGAR

  • Outros:LIKE_PATTERN, IN

Exemplo de passagem direta combinada

Para ter recursos aprimorados de consulta, combine os tipos de passagem direta, como no seguinte exemplo:

SELECT * FROM my_table WHERE col_a > 10 AND ((col_a + col_b) > (col_c % col_d)) AND (col_e IN ('val1', 'val2', 'val3') OR col_f LIKE '%pattern%') ORDER BY col_a DESC LIMIT 10;

Consultas de passagem

O conector Google BigQuery é compatível com consultas de passagem. As consultas de passagem usam uma função de tabela para enviar sua consulta completa para execução na fonte de dados.

Para usar consultas de passagem com o Google BigQuery, você pode empregar a seguinte sintaxe:

SELECT * FROM TABLE( system.query( query => 'query string' ))

O exemplo de consulta a seguir envia uma consulta para uma fonte de dados no Google BigQuery. A consulta seleciona todas as colunas na tabela customer, limitando os resultados a 10.

SELECT * FROM TABLE( system.query( query => 'SELECT * FROM customer LIMIT 10' ))

Informações de licença

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

Ao usar esse conector, você reconhece a inclusão de componentes de terceiros, cuja lista pode ser encontrada no arquivo pom.xml desse conector, e concorda com os termos das respectivas licenças de terceiros fornecidas no arquivo LICENSE.txt em GitHub.com.

Recursos adicionais do

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