Criar um encaminhamento de mensagens para o armazenamento de blobs do Azure

Concluído

A arquitetura do nosso sistema de monitorização de vibração precisa que os dados sejam enviados para dois destinos: armazenamento e análise. O Azure IoT fornece um excelente método de direcionamento de dados para o serviço certo, através do encaminhamento de mensagens.

Configurar o encaminhamento de mensagens

O encaminhamento de mensagens permite que os dados sejam enviados para vários pontos finais. Estes pontos finais incluem o armazenamento de blobs e o Hubs de Eventos. O armazenamento de blobs é claramente para o arquivamento de dados. Os Hubs de Eventos são uma plataforma de fluxo de dados. Não enfatizamos a largura de banda dos Hubs de Eventos neste módulo, com apenas uma mensagem de telemetria a cada dois segundos. Os Hubs de Eventos podem lidar com milhões de leituras de telemetria por segundo.

Enviar dados para o armazenamento na cloud

No nosso cenário, precisamos de um encaminhamento para o armazenamento, que vamos manter simples e utilizar o armazenamento de blobs do Azure (apesar do armazenamento no Data Lake também estar disponível). A principal funcionalidade do encaminhamento de mensagens é a filtragem dos dados de entrada. O filtro, escrito em SQL, apenas transmite saídas ao longo do encaminhamento quando certas condições são cumpridas.

Uma das maneiras mais fáceis de filtrar os dados é através de numa propriedade de mensagens, e é por isso que adicionamos estas duas linhas ao nosso código:

    ...
    telemetryMessage.Properties.Add("sensorID", "VSTel");
    ...
    loggingMessage.Properties.Add("sensorID", "VSLog");

Uma consulta SQL incorporada no nosso encaminhamento de mensagens pode testar o valor sensorID.

Analisar os dados quanto a anomalias ocultas à vista de todos

O segundo encaminhamento será para um Hub de Eventos, dado que o Hub de Eventos é uma entrada conveniente para o Stream Analytics. E, o Stream Analytics é uma forma conveniente de lidar com a deteção de anomalias.

As anomalias nos dados incluem a vibração excessiva que estamos à procura no nosso cenário. As anomalias também incluem coisas como deteção de fraudes, identificação de valores atípicos e identificação de tendências ocultas. Assim como, qualquer cenário no qual algo não está certo, mas o problema pode estar oculto na quantidade elevada de dados.

Para além do armazenamento e dos Hubs de Eventos, as mensagens podem ser encaminhadas para as Filas do Azure Service Bus e para os Tópicos do Azure Service Bus. Não utilizamos estas funcionalidades neste módulo, mas os Service Buses podem ser utilizados para desacoplar aplicações e serviços. Este desacoplamento permite situações, como: o serviço e o cliente da aplicação não estarem online ao mesmo tempo. Além disso, pode existir um fornecedor de dados, mas muitos subscritores para esses dados. O diferimento de mensagens para análise posterior é outra possível utilização dos Service Buses.

Criar uma tarefa do Azure Stream Analytics

O Azure Stream Analytics é um serviço para analisar os volumes dos dados que um Hub IoT ou Hub de Eventos consegue emitir. O Stream Analytics pode analisar as entradas de um ficheiro. No entanto, o Stream Analytics tem tudo a ver com tempo real (ou, na realidade, quase em tempo real).

Uma tarefa do Stream Analytics utiliza uma ou mais entradas, executa os dados através de uma consulta SQL e devolve os resultados para uma ou mais saídas.

Armazenar dados em ficheiros de registo, como estamos a fazer agora, encontra-se na parte aborrecida do que uma tarefa do Stream Analytics pode fazer. Aborrecido, mas necessário.

Exemplos das partes divertidas daquilo que o Stream Analytics pode fazer incluem, análise geoespacial de frotas de camiões ou talvez, veículos sem condutor. Análise em tempo real dos dados do ponto de venda, para otimização do controlo de inventário e maximização das vendas. Monitorização remota da maquinaria para manutenção preditiva. As previsões são feitas por algoritmos de aprendizagem automática que utilizam os dados telemétricos. Devido ao poder das consultas SQL, existe realmente um fornecimento ilimitado de cenários possíveis.

Avance um passo de cada vez

É preferível criar e testar os encaminhamentos de mensagens um de cada vez. Para compilar um encaminhamento de armazenamento, todas as funcionalidades estão no portal do Azure. Vamos chamar a este encaminhamento de encaminhamento de “registo” e envolve aprofundar o processo de criação dos recursos do Azure.