Configurar um destino de fluxo de dados no Azure IoT Operations

O destino é onde um fluxo de dados ou grafo de fluxo de dados envia dados processados. Configura o destino especificando uma referência de endpoint e um destino de dados (tópico, contentor ou tabela).

Esta página aplica-se tanto a fluxos de dados como a grafos de fluxo de dados. Para fluxos de dados, o destino é uma operação no Dataflow recurso. Para grafos de fluxo de dados, o destino é um nó Destination no recurso DataflowGraph.

Importante

Os fluxos de dados suportam todos os tipos de endpoints como destinos: MQTT, Kafka, Azure Data Lake Storage, Microsoft Fabric OneLake, Azure Data Explorer, OpenTelemetry e armazenamento local. Os grafos de fluxo de dados suportam apenas destinos MQTT, Kafka e OpenTelemetry. Para enviar dados para um destino diferente do corretor local do MQTT, crie um endpoint de fluxo de dados. Os pontos de extremidade de armazenamento exigem um esquema para serialização.

Configurar o ponto final de destino

  1. Selecione o ponto de extremidade do fluxo de dados a ser usado como destino.

    Captura de tela usando a experiência de operações para selecionar o ponto de extremidade de destino dos Hubs de Eventos.

    Os pontos de extremidade de armazenamento exigem um esquema para serialização. Se optar por um ponto final de destino Microsoft Fabric OneLake, Azure Data Lake Storage, Azure Data Explorer ou Local Storage, tem de especificar uma referência de esquema.

    Captura de tela usando a experiência de operações para escolher o esquema de saída e o formato de serialização.

  2. Selecione Continuar para configurar o destino.

  3. Insira as configurações necessárias para o destino, incluindo o tópico ou a tabela para a qual enviar os dados. Consulte Configurar o destino dos dados para mais informações.

Configure o destino dos dados (tópico, contentor ou tabela)

Tal como as fontes de dados, os destinos de dados tornam os endpoints de fluxo de dados reutilizáveis através de múltiplos fluxos de dados. Um destino de dados representa o subdiretório na configuração do endpoint de fluxo de dados. Por exemplo, se o endpoint de fluxo de dados for um endpoint de armazenamento, o destino de dados é o contentor. Se o endpoint do fluxo de dados for um endpoint Kafka, então o destino dos dados será o tópico Kafka.

Tipo de ponto final Significado do destino dos dados Descrição
MQTT (ou Event Grid) Tópico O tópico MQTT para onde os dados são enviados. Suporta tanto tópicos estáticos como roteamento dinâmico de tópicos usando variáveis como ${inputTopic} e ${inputTopic.index}. Para obter mais informações, consulte Tópicos de destino dinâmico.
Kafka (ou Hubs de Eventos) Tópico O tópico Kafka para onde os dados são enviados. Apenas tópicos estáticos são suportados, sem curingas. Se o ponto de extremidade for um namespace de Hubs de Eventos, o destino dos dados será o hub de eventos individual contido no namespace.
Azure Data Lake Storage Contentor O contêiner na conta de armazenamento. Não a tabela.
Microsoft Fabric OneLake Tabela ou pasta Corresponde ao tipo de caminho configurado para o ponto de extremidade.
Azure Data Explorer Table A tabela na base de dados Azure Data Explorer.
Armazenamento Local Folder O nome da pasta ou diretório na montagem de volume persistente de armazenamento local. Ao usar Azure Container Storage ativado pelo Azure Arc Cloud Ingest Edge Volumes, este valor deve corresponder ao parâmetro spec.path do subvolume que criou.
OpenTelemetria Tópico O tópico OpenTelemetry para o qual os dados são enviados. Apenas tópicos estáticos são suportados.

Quando utiliza a funcionalidade de operações, interpreta automaticamente o campo de destino dos dados com base no tipo de ponto final. Por exemplo, se o ponto de extremidade do fluxo de dados for um ponto de extremidade de armazenamento, a página de detalhes do destino solicitará que você insira o nome do contêiner. Se o endpoint do fluxo de dados for um endpoint MQTT, a página de detalhes do destino convida-o a introduzir o tópico.

Captura de tela mostrando a experiência de operações solicitando que o usuário insira um tópico MQTT de acordo com o tipo de ponto final.

Tópicos de destino dinâmico

Para os endpoints MQTT, pode-se usar variáveis dinâmicas de tópico no campo dataDestination para encaminhar mensagens baseando-se na estrutura do tópico de origem ou no conteúdo da mensagem.

Encaminhar por tópico de origem

Tanto em fluxos de dados como em grafos de fluxo de dados, use as seguintes variáveis para referenciar segmentos do tópico de origem no dataDestination campo:

  • ${inputTopic}: O tópico original completo de entrada
  • ${inputTopic.index}: Um segmento do tópico de entrada (o índice começa em 1)

Por exemplo, processed/factory/${inputTopic.2} roteia mensagens de factory/1/data para processed/factory/1. Os segmentos temáticos são indexados começando em 1, e barras iniciais ou finais são ignoradas.

Se uma variável de tópico não puder ser resolvida (por exemplo, ${inputTopic.5} quando o tópico de entrada tem apenas três segmentos), a mensagem é descartada e um aviso é registado. Caracteres curinga (# e +) não são permitidos nos tópicos de destino.

Na experiência de operações, introduza a variável dinâmica do tópico no campo Tópico ao configurar o destino. Por exemplo, digite processed/factory/${inputTopic.2}.

Observação

Os caracteres $, {e } são válidos em nomes de tópicos MQTT, portanto, um tópico como factory/$inputTopic.2 é aceitável, mas incorreto se você pretendia usar a variável de tópico dinâmico.

Gráficos de fluxo de dados: encaminhamento por conteúdo da mensagem

Os grafos de fluxo de dados suportam uma abordagem adicional: pode definir o tópico de destino dinamicamente com base no conteúdo da mensagem, combinando uma transformação de mapa com a ${outputTopic} variável:

  1. Numa transformação de mapa, escreve um valor para $metadata.topic com base no conteúdo da mensagem. Por exemplo, use uma expressão como if($1 > 1000, "alerts", "historian").
  2. No destino, referencie o valor com ${outputTopic} no campo dataDestination.

Esta abordagem é mais flexível do que o encaminhamento do tópico de origem porque permite definir o tópico de destino com base em qualquer campo ou valor calculado na mensagem, não apenas na estrutura do tópico de origem.

Para mais informações e exemplos completos, consulte Encaminhar mensagens para diferentes tópicos.

Serializar a saída com um esquema

Se quiser serializar os dados antes de os enviar para o destino, especifique um esquema e um formato de serialização. Caso contrário, o sistema serializa os dados em JSON com os tipos inferidos. Endpoints de Storage como o Microsoft Fabric ou o Azure Data Lake requerem um esquema para garantir a consistência dos dados. Os formatos de serialização suportados são Parquet e Delta.

Sugestão

Para gerar o esquema a partir de um arquivo de dados de exemplo, use o Schema Gen Helper.

Especifique o esquema e o formato de serialização nos detalhes do endpoint do fluxo de dados. Os endpoints que suportam formatos de serialização são Microsoft Fabric OneLake, Azure Data Lake Storage Gen 2, Azure Data Explorer e local storage. Por exemplo, para serializar os dados no formato Delta, faça upload de um esquema para o registo de esquemas e faça referência a ele na configuração do endpoint de destino de fluxo de dados.

Captura de ecrã utilizando a experiência operativa para definir a serialização do ponto final de destino do fluxo de dados.

Para obter mais informações sobre o registro de esquema, consulte Compreender esquemas de mensagem.

Passos seguintes