

Para recursos semelhantes aos do Amazon Timestream para, considere o Amazon Timestream LiveAnalytics para InfluxDB. Ele oferece ingestão de dados simplificada e tempos de resposta de consulta de um dígito em milissegundos para análises em tempo real. Saiba mais [aqui](https://docs.aws.amazon.com//timestream/latest/developerguide/timestream-for-influxdb.html).

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# AWS IoT Core
<a name="IOT-Core"></a>

 Você pode coletar dados de dispositivos de IoT usando o[AWS IoT Core](https://docs.aws.amazon.com/iot/latest/developerguide/iot-gs.html) e rotear os dados para o Amazon Timestream por meio de ações de regras do IoT Core. AWS As ações de regra do IoT especificam o que fazer quando uma regra é acionada. Você pode definir ações para enviar dados para uma tabela do Amazon Timestream, um banco de dados do Amazon DynamoDB e invocar uma função do Lambda AWS. 

 A ação Timestream nas Regras de IoT é usada para inserir dados de mensagens recebidas diretamente no Timestream. A ação analisa os resultados da instrução SQL do [IoT Core](https://docs.aws.amazon.com/iot/latest/developerguide/iot-sql-reference.html) e armazena dados no Timestream. Os nomes dos campos do conjunto de resultados SQL retornado são usados como a medida: :nome e o valor do campo é a measure::value. 

 Por exemplo, considere a instrução SQL e o exemplo de carga útil da mensagem de exemplo: 

```
SELECT temperature, humidity from 'iot/topic'
```

```
{
  "dataFormat": 5, 
  "rssi": -88,
  "temperature": 24.04,    
  "humidity": 43.605,    
  "pressure": 101082,    
  "accelerationX": 40,    
  "accelerationY": -20,    
  "accelerationZ": 1016,    
  "battery": 3007,    
  "txPower": 4,    
  "movementCounter": 219,    
  "device_id": 46216,
  "device_firmware_sku": 46216   
}
```

 Caso uma ação de regra do IoT Core para Timestream seja criada com a instrução SQL mencionada, dois registros serão inseridos no Timestream com os nomes das medidas sendo temperatura e umidade, e os valores das medidas sendo 24,04 e 43,605, respectivamente. 

 É possível modificar o nome da medida de um registro que está sendo adicionado ao Timestream usando o operador AS na instrução SELECT. A instrução SQL abaixo criará um registro com o nome da mensagem temp em vez de temperature. 

 O tipo de dados da medida é inferido a partir do tipo de dados do valor da carga útil da mensagem. Os tipos de dados JSON, como inteiro, duplo, booleano e string, são mapeados para os tipos de dados Timestream de BIGINT, DOUBLE, BOOLEAN e VARCHAR, respectivamente. Os dados também podem ser forçados a tipos de dados específicos usando a função [cast ()](https://docs.aws.amazon.com/iot/latest/developerguide/iot-sql-functions.html#iot-sql-function-cast). É possível especificar a data e hora da medida. Se estiver em branco, a hora em que a entrada foi processada será usada. 

É possível consultar a [documentação de ação das regras do Timestream para obter detalhes adicionais](https://docs.aws.amazon.com/iot/latest/developerguide/timestream-rule-action.html).

 Para criar uma ação de regra do IoT Core para armazenar dados no Timestream, siga as etapas abaixo: 

**Topics**
+ [Pré-requisitos](#prereqs)
+ [Utilizar o console](#using-console)
+ [Uso da CLI](#using-cli)
+ [Aplicação de exemplo](#sample-app)
+ [Vídeo de tutorial](#video-tutorial)

## Pré-requisitos
<a name="prereqs"></a>

1. Crie um banco de dados no Amazon Timestream usando as instruções descritas em [Criar um banco de dados](console_timestream.md#console_timestream.db.using-console).

1. Crie uma tabela no Amazon Timestream usando as instruções descritas em [Criar uma tabela](console_timestream.md#console_timestream.table.using-console).

## Utilizar o console
<a name="using-console"></a>

1. Use o console de gerenciamento AWS do AWS IoT Core para criar uma regra clicando em **Gerenciar** > **Roteamento de mensagens** > **Regras** seguido por **Criar regra**.

1. Defina o nome da regra para um nome de sua escolha e o SQL para o texto mostrado abaixo

   ```
   SELECT temperature as temp, humidity from 'iot/topic' 
   ```

1. Selecione Timestream na lista de ações

1. Especifique os nomes do banco de dados, da tabela e da dimensão do Timestream juntamente com a função para gravar dados no Timestream. Se a função não existir, é possível criá-la clicando em Criar funções

1. Para testar a regra, siga as instruções apresentadas [aqui](https://docs.aws.amazon.com/iot/latest/developerguide/iot-ddb-rule.html#test-db-rule).

## Uso da CLI
<a name="using-cli"></a>

 Se você não instalou a Interface de Linha de AWS Comando (AWSCLI), faça isso [aqui](https://aws.amazon.com/cli/). 

1. Salve a carga útil da regra a seguir em um arquivo JSON com o nome de timestream\$1rule.json. Substitua *arn:aws:iam: :123456789012:role/TimestreamRole* por sua função arn, que concede acesso à IoT para armazenar dados no Amazon Timestream AWS

   ```
   { 
       "actions": [ 
               { 
                   "timestream": { 
                       "roleArn": "arn:aws:iam::123456789012:role/TimestreamRole", 
                       "tableName": "devices_metrics", 
                       "dimensions": [ 
                           { 
                               "name": "device_id", 
                               "value": "${clientId()}" 
                           }, 
                           { 
                               "name": "device_firmware_sku", 
                               "value": "My Static Metadata" 
                           } 
                       ], 
                       "databaseName": "record_devices" 
                   } 
               } 
       ], 
       "sql": "select * from 'iot/topic'", 
       "awsIotSqlVersion": "2016-03-23", 
       "ruleDisabled": false 
   }
   ```

1. Crie uma regra de tópico usando o comando a seguir.

   ```
   aws iot create-topic-rule --rule-name timestream_test --topic-rule-payload file://<path/to/timestream_rule.json> --region us-east-1 
   ```

1. Recupere detalhes da regra do tópico usando o seguinte comando

   ```
   aws iot get-topic-rule --rule-name timestream_test 
   ```

1. Salve a seguinte carga útil de mensagem em um arquivo chamado timestream\$1msg.json

   ```
   {
     "dataFormat": 5, 
     "rssi": -88,
     "temperature": 24.04,    
     "humidity": 43.605,    
     "pressure": 101082,    
     "accelerationX": 40,    
     "accelerationY": -20,    
     "accelerationZ": 1016,    
     "battery": 3007,    
     "txPower": 4,    
     "movementCounter": 219,    
     "device_id": 46216,
     "device_firmware_sku": 46216   
   }
   ```

1. Execute o teste usando o seguinte comando.

   ```
   aws iot-data publish --topic 'iot/topic' --payload file://<path/to/timestream_msg.json>
   ```

## Aplicação de exemplo
<a name="sample-app"></a>

 Para ajudar você a começar a usar o Timestream com o AWS IoT Core, criamos um aplicativo de amostra completamente funcional que cria os artefatos necessários no AWS IoT Core e no Timestream para criar uma regra de tópico e um aplicativo de amostra para publicar dados no tópico. 

1.  Clone o repositório do GitHub para o [aplicativo de amostra](https://github.com/awslabs/amazon-timestream-tools/blob/master/integrations/iot_core) para integração com o AWS IoT Core seguindo as instruções do [GitHub](https://docs.github.com/en/free-pro-team@latest/github/creating-cloning-and-archiving-repositories/cloning-a-repository)

1. Siga as instruções no [README](https://github.com/awslabs/amazon-timestream-tools/blob/master/integrations/iot_core) para usar um modelo do AWS CloudFormation para criar os artefatos necessários no Amazon Timestream AWS e no IoT Core e publicar mensagens de exemplo a respeito do tópico.

## Vídeo de tutorial
<a name="video-tutorial"></a>

Este [vídeo](https://youtu.be/00Wersoz2Q4) explica de que forma o IoT Core funciona com o Timestream.