Crie um grafo de fluxo de dados no Operações IoT do Azure

Um grafo de fluxo de dados é um pipeline de processamento componível que transforma os dados à medida que estes se deslocam entre fontes e destinos. Um fluxo de dados padrão segue uma sequência fixa de enriquecimento, filtro e mapa. Um grafo de fluxo de dados permite encadear transformações em qualquer ordem, ramificar em caminhos paralelos e agregar dados ao longo de janelas temporais.

Este artigo explica passo a passo a processo a criação de um gráfico de fluxo de dados. Para uma visão geral dos gráficos de fluxo de dados e das transformadas disponíveis, consulte Visão Geral dos Gráficos de Fluxo de Dados.

Atualmente, os grafos de fluxo de dados suportam apenas os endpoints MQTT, Kafka e OpenTelemetry. Não suportam outros tipos de endpoints como Data Lake, Microsoft Fabric OneLake, Azure Data Explorer e Local Storage.

As transformações utilizam uma linguagem de expressões para calcular valores, condições de teste e campos de referência. Expressões referem-se a entradas por posição, não pelo nome: a primeira entrada na inputs lista é $1, a segunda é $2, e assim sucessivamente. Funções incorporadas como cToF convertem e manipulam esses valores.

Para a lista completa de operadores, funções, tipos de dados e campos de metadados, consulte a referência Expressões.

Pré-requisitos

  • O CLI do Azure instalado na sua máquina de desenvolvimento. Verifique as extensões disponíveis do CLI do Azure para a versão mínima necessária para usar a extensão azure-iot-ops. Utilize az --version para verificar a sua versão e az upgrade para atualizar, se necessário. Para mais informações, consulte Instale o CLI do Azure.

  • A extensão Operações IoT do Azure para a CLI do Azure. Use o seguinte comando para adicionar a extensão ou atualizá-la para a versão mais recente:

    az extension add --upgrade --name azure-iot-ops
    

Os CLI do Azure exemplos deste artigo usam variáveis de ambiente para que possas definir cada valor uma vez e depois copiar e colar os comandos as-is. Se estiver a usar o ambiente Operações IoT do Azure Codespaces do quickstart, estas variáveis já estão definidas para si e pode saltar este passo. Caso contrário, defina as seguintes variáveis de ambiente no seu shell antes de executar os comandos.

Os seguintes scripts definem as variáveis de ambiente mais usadas:

Variável de ambiente Descrição
SUBSCRIPTION_ID O ID da subscrição que contém a sua instância Operações IoT do Azure.
RESOURCE_GROUP O nome do grupo de recursos que contém a sua instância do Operações IoT do Azure.
AIO_INSTANCE_NAME O nome da sua instância do Operações IoT do Azure. Para listar as suas instâncias, execute az iot ops list -o table.
CLUSTER_NAME O nome do cluster Kubernetes com Azure Arc que hospeda a sua instância.
LOCATION A região do Azure deve ser usada para novos recursos, por exemplo eastus.
SUBSCRIPTION_ID=<subscription-id>
RESOURCE_GROUP=<resource-group-name>
AIO_INSTANCE_NAME=<instance-name>
CLUSTER_NAME=<cluster-name>
LOCATION=<region>

Só precisa de definir as variáveis que este artigo utiliza. Este artigo pode usar variáveis adicionais de ambiente para nomes de recursos que escolher. O artigo explica como posicioná-los onde são apresentados.

Este artigo também utiliza as GRAPH_NAME variáveis de ambiente e PROFILE para o gráfico de fluxo de dados e nomes de perfis. Define cada um antes de executares os comandos relacionados.

Criar um grafo de fluxo de dados

Um grafo de fluxo de dados contém três tipos de elementos: fontes que trazem dados, transformações que os processam e destinos que os enviam. Liga-os na ordem em que queres que os dados fluam.

  1. Na experiência de operações, vá à sua instância Operações IoT do Azure.

  2. Selecionar grafo >Criar grafo de fluxo de dados.

    Captura de ecrã da experiência operacional que mostra o gráfico de fluxo de dados.

  3. Introduza um nome para o gráfico de fluxo de dados e selecione um perfil de fluxo de dados. O perfil padrão é selecionado automaticamente.

    Captura de ecrã da experiência operacional para criar um diálogo que mostra o campo de nome e a lista pendente do perfil.

  4. Construa o seu pipeline adicionando elementos à tela:

    1. Adicionar uma fonte: Selecione o endpoint de origem e configure os tópicos a subscrever para as mensagens recebidas.

      Captura de ecrã do painel de configuração da fonte da experiência de operações mostrando o menu suspenso do endpoint e o campo de entrada do tópico.

    2. Adicionar transformações: Selecione uma ou mais transformações para processar os dados. As transformações disponíveis são map, filter, branch, concatenate, window e throttle. Para detalhes sobre cada tipo de transformação, consulte Visão Geral dos Gráficos de Fluxo de Dados.

      Captura de ecrã do menu de seleção de transformação da experiência operacional mostrando os tipos de transformação disponíveis.

      Captura de ecrã da experiência operacional mostrando um exemplo de configuração de transformação de ramos.

    3. Adicionar um destino: Selecione o endpoint de destino e configure o tópico ou caminho para onde enviar os dados processados.

      Captura de ecrã da experiência operacional mostrando um exemplo de destino.

  5. Liga os elementos pela ordem em que queres que os dados fluam.

    Captura de ecrã do quadro da experiência operacional a mostrar uma fonte conectada, um fluxo de trabalho de transformação e um destino.

  6. Selecione Guardar para implementar o gráfico de fluxo de dados.

Configurar a origem

A fonte define onde os dados entram no pipeline. Especifique uma referência de endpoint e um ou mais tópicos.

No editor de grafos de fluxo de dados, selecione o elemento de origem e configure:

Configuração Descrição
Ponto final O ponto final de fluxo de dados a usar. Selecione o padrão para o corretor local do MQTT.
Tópicos Um ou mais tópicos para subscrever para mensagens recebidas.

Adicionar transformações

Transforma os dados do processo entre a origem e o destino. Cada transformação faz referência a um artefacto incorporado e tem regras de configuração.

As transformações incorporadas disponíveis são:

Transformar Artefacto Descrição
Mapa azureiotoperations/graph-dataflow-map:1.0.0 Renomear, reestruturar, calcular e copiar campos.
Filtro azureiotoperations/graph-dataflow-filter:1.0.0 Descartar mensagens que correspondam a uma condição.
Sucursal azureiotoperations/graph-dataflow-branch:1.0.0 Encaminhe cada mensagem para um caminho true ou false com base numa condição.
Concatenate azureiotoperations/graph-dataflow-concatenate:1.0.0 Una dois ou mais caminhos num único caminho.
Janela azureiotoperations/graph-dataflow-window:1.0.0 Recolhe mensagens ao longo de um intervalo de tempo e depois agregue.
Throttle azureiotoperations/graph-dataflow-throttle:1.0.0 Limite a taxa de mensagens por padrão de tópico MQTT.

Para mais informações sobre como enriquecer mensagens com dados externos, consulte Enriquecer com dados externos.

No editor de grafos de fluxo de dados, selecione Adicionar transformação e escolha o tipo de transformação. Configura as regras no editor visual.

Transformadas múltiplas em cadeia

Encadeia qualquer número de transformações. Liga-os na nodeConnections secção pela ordem em que queres que os dados fluam:

Arraste as ligações entre transformações na tela para definir a ordem de processamento.

Configurar o destino

O destino define para onde vão os dados processados. Especifique uma referência de endpoint e um tópico ou caminho.

Selecione o elemento de destino e configure:

Configuração Descrição
Ponto final O ponto final do fluxo de dados para envio.
Topic O tópico ou caminho para publicar dados processados.

Para encaminhamento dinâmico de tópicos com base no conteúdo da mensagem, veja Encaminhar mensagens para diferentes tópicos.

Verifique se o gráfico de fluxo de dados está a funcionar

Depois de implementar um gráfico de fluxo de dados, verifique se está a correr:

Na experiência de operações, selecione o seu gráfico de fluxo de dados para ver o seu estado. Um gráfico saudável mostra um estado em execução.