Para recursos semelhantes aos do Amazon Timestream para LiveAnalytics, considere o Amazon Timestream 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.
AWS IoT Core
Você pode coletar dados de dispositivos de IoT usando oAWS IoT Core 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 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 (). É 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.
Para criar uma ação de regra do IoT Core para armazenar dados no Timestream, siga as etapas abaixo:
Pré-requisitos
-
Crie um banco de dados no Amazon Timestream usando as instruções descritas em Criar um banco de dados.
-
Crie uma tabela no Amazon Timestream usando as instruções descritas em Criar uma tabela.
Utilizar o console
-
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.
-
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' -
Selecione Timestream na lista de ações
-
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
-
Para testar a regra, siga as instruções apresentadas aqui.
Uso da CLI
Se você não instalou a Interface de Linha de AWS Comando (AWSCLI), faça isso aqui
-
Salve a carga útil da regra a seguir em um arquivo JSON com o nome de timestream_rule.json. Substitua
arn:aws:iam: :123456789012:role/TimestreamRolepor 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 } -
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 -
Recupere detalhes da regra do tópico usando o seguinte comando
aws iot get-topic-rule --rule-name timestream_test -
Salve a seguinte carga útil de mensagem em um arquivo chamado timestream_msg.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 } -
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
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.
-
Clone o repositório do GitHub para o aplicativo de amostra
para integração com o AWS IoT Core seguindo as instruções do GitHub -
Siga as instruções no README
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
Este vídeo