

# Conector do Amazon Athena para o Timestream
<a name="connectors-timestream"></a>

O conector do Amazon Athena para o Timestream permite que o Amazon Athena se comunique com [Amazon Timestream](https://aws.amazon.com/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.

Esse conector pode ser registrado como um catálogo federado no Glue Data Catalog. Ele é 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.

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
<a name="connectors-timestream-prerequisites"></a>
+ Implante o conector na sua Conta da AWS usando o console do Athena ou o AWS Serverless Application Repository. Para ter mais informações, consulte [Criar uma conexão de fonte de dados](connect-to-a-data-source.md) ou [Usar o AWS Serverless Application Repository para implantar um conector de fonte de dados](connect-data-source-serverless-app-repo.md).

## Parâmetros
<a name="connectors-timestream-parameters"></a>

Use os parâmetros nesta seção para configurar o conector Timestream.

### Conectores federados do AWS Glue Data Catalog
<a name="connectors-timestream-gc"></a>

Recomendamos que você configure um conector do Timestream usando um objeto de conexão do Glue. Para fazer isso, defina a variável de ambiente `glue_connection` da função do Lambda para o conector do Timestream com o nome da conexão do Glue que deseja usar.

**Propriedades das conexões do Glue**

Use o comando apresentado a seguir para obter o esquema de um objeto de conexão do Glue. Esse esquema contém todos os parâmetros que você pode usar para controlar a conexão.

```
aws glue describe-connection-type --connection-type TIMESTREAM
```

**Propriedades do ambiente do Lambda**

As propriedades do ambiente do Lambda a seguir se aplicam somente quando você usa o conector com uma função do Lambda em sua conta.

**glue\_connection**: especifica o nome da conexão do Glue associada ao conector federado. 

**nota**  
Todos os conectores que usam a conexão federada do AWS Glue Data Catalog devem usar o AWS Secrets Manager para armazenar as credenciais.
O conector para Timestream criado por meio de uma conexão federada do AWS Glue Data Catalog não é compatível com o uso de um manipulador de multiplexação.
O conector para Timestream criado por meio de uma conexão federada do AWS Glue Data Catalog é compatível apenas com `ConnectionSchemaVersion` 2.

### Conectores federados do catálogo de dados do Athena
<a name="connectors-timestream-legacy"></a>

**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 dos parâmetros e suas definições listados abaixo referem-se a conectores de fonte de dados do Athena criados sem uma conexão do Glue associada. Os parâmetros apresentados abaixo devem ser usados somente quando você [implantar manualmente](connect-data-source-serverless-app-repo.md) uma versão anterior de um conector de fonte de dados do Athena ou quando a propriedade de ambiente `glue_connection` não for especificada.

**Propriedades do ambiente do Lambda**
+ **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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html) 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](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) 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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html).
+ **glue\_catalog**: (opcional) use essa opção para especificar um [catálogo do AWS Glue entre contas](data-sources-glue-cross-account.md). 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
<a name="connectors-timestream-setting-up-databases-and-tables-in-aws-glue"></a>

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.

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

### Tipos de dados
<a name="connectors-timestream-data-types"></a>

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.](http://docs.aws.amazon.com/pt_br/athena/latest/ug/images/connectors-timestream-1.png)


## Permissões obrigatórias
<a name="connectors-timestream-required-permissions"></a>

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](https://github.com/awslabs/aws-athena-query-federation/blob/master/athena-timestream/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.

## desempenho
<a name="connectors-timestream-performance"></a>

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
<a name="connectors-timestream-passthrough-queries"></a>

O conector Timestream é compatível com [consultas de passagem](federated-query-passthrough.md). 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
<a name="connectors-timestream-license-information"></a>

O projeto do conector Timestream do Amazon Athena é licenciado sob a [Licença Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0.html).

## Recursos adicionais
<a name="connectors-timestream-additional-resources"></a>

Para obter mais informações sobre esse conector, visite [o site correspondente](https://github.com/awslabs/aws-athena-query-federation/tree/master/athena-timestream) em GitHub.com.