Conector do Amazon Athena para o Timestream - Amazon Athena

Conector do Amazon Athena para o Timestream

O conector do Amazon Athena para o Timestream permite que o Amazon Athena se comunique com Amazon Timestream, tornando seus dados de séries temporais acessíveis pelo Amazon Athena. Se preferir, use o AWS Glue Data Catalog como uma fonte de metadados complementares.

O Amazon Timestream é um banco de dados de séries temporais rápido, escalável, totalmente gerenciado e criado para fins específicos que facilita o armazenamento e a análise de trilhões de pontos de dados de séries temporais por dia. O Timestream economiza tempo e custo de gerenciamento do ciclo de vida dos dados de séries temporais mantendo os dados recentes na memória e movendo os dados históricos para um nível de armazenamento com otimização de custo conforme as políticas definidas pelo usuário.

Se você tiver o Lake Formation habilitado em sua conta, o perfil do IAM para seu conector Lambda federado para Athena que você implantou no AWS Serverless Application Repository deve ter acesso de leitura ao AWS Glue Data Catalog no Lake Formation.

Pré-requisitos

Parâmetros

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

  • 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 a performance, especialmente se o local do derramamento usar criptografia no lado do servidor.

  • glue_catalog: (opcional) use essa opção para especificar um catálogo do AWS Glue entre contas. Por padrão, o conector tenta obter metadados de sua própria conta do AWS Glue.

Configuração de bancos de dados e tabelas no AWS Glue

Se preferir, use o AWS Glue Data Catalog como uma fonte de metadados complementares. Para habilitar uma tabela do AWS Glue para uso com o Timestream, é preciso ter um banco de dados do AWS Glue e uma tabela com nomes que correspondam ao banco de dados Timestream e à tabela para a qual você deseja fornecer metadados complementares.

nota

Para obter a melhor performance, use somente letras minúsculas para nomes de banco de dados e nomes de tabela. O uso de maiúsculas e minúsculas mistas faz com que o conector execute uma pesquisa que não diferencia maiúsculas de minúsculas e é mais computacionalmente intensiva.

Para configurar a tabela do AWS Glue para uso com o Timestream é preciso definir suas propriedades de tabela em AWS Glue.

Para usar uma tabela do AWS Glue para metadados complementares
  1. Edite a tabela no console do AWS Glue para adicionar as seguintes propriedades da tabela:

    • timestream-metadata-flag: essa propriedade indica ao conector Timestream que o conector pode usar a tabela para metadados complementares. É possível fornecer qualquer valor para timestream-metadata-flag, desde que a propriedade timestream-metadata-flag esteja presente na lista de propriedades da tabela.

    • _view_template: quando você usa o AWS Glue para metadados complementares, é possível usar essa propriedade da tabela e especificar qualquer Timestream SQL como visualização. O conector Timestream do Athena usa o SQL da visualização junto com o SQL do Athena para executar sua consulta. Isso é útil se você quiser usar um recurso do Timestream SQL que, de outra forma, não está disponível no Athena.

  2. Use os tipos de dados apropriados para o AWS Glue, conforme listado neste documento.

Tipos de dados

Atualmente, o conector Timestream oferece suporte somente a um subconjunto dos tipos de dados disponíveis no Timestream, especificamente: os valores escalares varchar, double e timestamp.

Para consultar o tipo de dados da timeseries, é preciso configurar uma visualização nas propriedades da tabela do AWS Glue que use a função CREATE_TIME_SERIES do Timestream. Você também precisa fornecer um esquema para a visualização que use a sintaxe ARRAY<STRUCT<time:timestamp,measure_value::double:double>> como o tipo de qualquer uma de suas colunas de séries temporais. Certifique-se de substituir double pelo tipo escalar apropriado para sua tabela.

A imagem a seguir mostra um exemplo de propriedades da tabela do AWS Glue configuradas para definir uma visualização sobre uma série temporal.

Configuração de propriedades de tabelas no AWS Glue para definir uma visualização de uma série temporal.

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

  • AWS Glue Data Catalog: o conector Timestream requer acesso somente de leitura ao AWS Glue Data Catalog para obter informações do esquema.

  • CloudWatch Logs: o conector requer acesso ao CloudWatch Logs para armazenar registros.

  • Acesso ao Timestream: para executar consultas no Timestream.

Performance

Recomendamos o uso da cláusula LIMIT para limitar os dados retornados (não os dados verificados) a menos de 256 MB com a finalidade de garantir que as consultas interativas tenham uma boa performance.

O conector do Athena para o Timestream realiza a passagem direta de predicados para diminuir os dados examinados pela consulta. As cláusulas LIMIT reduzem a quantidade de dados examinados, mas, se você não fornecer um predicado, deverá esperar que as consultas SELECT com uma cláusula LIMIT examinem, pelo menos, 16 MB de dados. A seleção de um subconjunto de colunas acelera o runtime da consulta e reduz os dados verificados de forma significativa. O conector Timestream é resiliente ao controle de utilização devido à simultaneidade.

Consultas de passagem

O conector Timestream é 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 Timestream, 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 Timestream. 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 Timestream 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.