Partilhar via


Criar fluxos de dados nas Operações IoT do Azure

Importante

Esta página inclui instruções para gerir componentes do Azure IoT Operations usando manifestos de implementação do Kubernetes, que estão em pré-visualização. Esse recurso é fornecido com várias limitações e não deve ser usado para cargas de trabalho de produção.

Consulte os Termos de Utilização Suplementares das Pré-visualizações do Microsoft Azure para obter os termos legais que se aplicam às funcionalidades do Azure que estão em versão beta, pré-visualização ou ainda não disponibilizadas para disponibilidade geral.

Um fluxo de dados é o caminho que os dados percorrem da origem para o destino com transformações opcionais. Você pode configurar o fluxo de dados criando um recurso personalizado de fluxo de dados ou usando a UI da experiência de operações na Web. Um fluxo de dados é composto por três partes: a origem, a transformação e o destino.

Diagrama de um fluxo de dados mostrando o fluxo da origem para a transformação e depois para o destino.

Para definir a origem e o destino, você precisa configurar os pontos de extremidade de fluxo de dados. A transformação é opcional e pode incluir operações como enriquecer os dados, filtrar os dados e mapeá-los para outro campo.

Importante

Cada fluxo de dados deve ter o ponto de extremidade padrão do agente MQTT local do Azure IoT Operations como origem ou destino.

Você pode usar a experiência de operações no Azure IoT Operations para criar um fluxo de dados. A experiência de operações fornece uma interface visual para configurar o fluxo de dados. Você também pode usar o Bicep para criar um fluxo de dados usando um arquivo Bicep ou usar o Kubernetes para criar um fluxo de dados usando um arquivo YAML.

Continue lendo para saber como configurar a origem, a transformação e o destino.

Pré-requisitos

Você pode implantar fluxos de dados logo que tiver uma instância das Operações do Azure IoT usando o perfil de fluxo de dados padrão e o ponto de extremidade. No entanto, convém configurar perfis de fluxo de dados e pontos de extremidade para personalizar o fluxo de dados.

Perfil de fluxo de dados

Se você não precisar de configurações de dimensionamento diferentes para seus fluxos de dados, use o perfil de fluxo de dados padrão fornecido pelas Operações IoT do Azure. Você deve evitar associar muitos fluxos de dados a um único perfil de fluxo de dados. Se você tiver um grande número de fluxos de dados, distribua-os entre vários perfis de fluxo de dados para reduzir o risco de exceder o limite de tamanho de configuração do perfil de fluxo de dados de 70.

Para saber como configurar um novo perfil de fluxo de dados, consulte Configurar perfis de fluxo de dados.

Pontos finais de fluxo de dados

Os pontos de extremidade de fluxo de dados são necessários para configurar a origem e o destino do fluxo de dados. Para começares rapidamente, podes usar o endpoint padrão de fluxo de dados para o broker MQTT local. Você também pode criar outros tipos de pontos de extremidade de fluxo de dados, como Kafka, Hubs de Eventos, OpenTelemetry ou Armazenamento Azure Data Lake. Para saber como configurar cada tipo de ponto de extremidade de fluxo de dados, consulte Configurar pontos de extremidade de fluxo de dados.

Introdução

Depois de ter os pré-requisitos, você pode começar a criar um fluxo de dados.

  1. Para criar um fluxo de dados na experiência de operações, selecione Fluxo de> dadosCriar fluxo de dados.

  2. Selecione o nome do espaço reservado new-data-flow para definir as propriedades do fluxo de dados. Insira o nome do fluxo de dados e escolha o perfil de fluxo de dados a ser usado. O perfil de fluxo de dados padrão é selecionado por padrão. Para obter mais informações sobre perfis de fluxo de dados, consulte Configurar perfil de fluxo de dados.

    Captura de tela da interface da experiência de operações em que um usuário nomeia o fluxo de dados e seleciona um perfil para ele.

    Importante

    Você só pode escolher o perfil de fluxo de dados ao criar um fluxo de dados. Não é possível alterar o perfil de fluxo de dados depois que o fluxo de dados é criado. Se desejar alterar o perfil de fluxo de dados de um fluxo de dados existente, exclua o fluxo de dados original e crie um novo com o novo perfil de fluxo de dados.

  3. Configure o ponto de extremidade de origem, transformação e destino para o fluxo de dados selecionando os itens no diagrama de fluxo de dados.

    Captura de tela da interface da experiência de operações exibindo um diagrama de fluxo de dados com um ponto de extremidade de origem, estágio de transformação e ponto de extremidade de destino.

Analise as seções a seguir para saber como configurar os tipos de operação do fluxo de dados.

Fonte

Para configurar uma fonte para o fluxo de dados, especifique a referência de ponto de extremidade e uma lista de fontes de dados para o ponto de extremidade. Escolha uma das seguintes opções como a fonte para o fluxo de dados.

Se o ponto de extremidade padrão não for usado como origem, ele deverá ser usado como destino. Para saber mais sobre como usar o ponto de extremidade do corretor MQTT local, consulte Os fluxos de dados devem usar o ponto de extremidade do corretor MQTT local.

Opção 1: Usar o ponto de extremidade padrão do agente de mensagens como origem

  1. Em Detalhes da origem, selecione Agente de mensagens.

    Captura de tela da interface de experiência de operações mostrando a seleção do agente de mensagens como o ponto de extremidade de origem para um fluxo de dados.

  2. Insira as seguintes configurações para a origem do sistema de intermediação de mensagens:

    Configurações Descrição
    Ponto final do fluxo de dados Selecione padrão para usar o endpoint padrão do broker de mensagens MQTT.
    Tópico O filtro de tópico para subscrição para mensagens recebidas. Use Tópico(s)>Adicionar linha para adicionar vários tópicos. Para obter mais informações sobre tópicos, consulte Configurar tópicos MQTT ou Kafka.
    Esquema de mensagem O esquema a ser usado para desserializar as mensagens de entrada. Consulte Especificar esquema para desserializar dados.
  3. Selecione Aplicar.

Como dataSources permite especificar tópicos MQTT ou Kafka sem modificar a configuração do ponto de extremidade, você pode reutilizar o ponto de extremidade para vários fluxos de dados, mesmo que os tópicos sejam diferentes. Para saber mais, consulte Configurar fontes de dados.

Opção 2: Usar ativo como fonte

Você pode usar um recurso como fonte para o fluxo de dados. O uso de um ativo como fonte só está disponível na experiência de operações.

  1. Em Detalhes da fonte, selecione Ativo.

  2. Selecione o ativo que deseja usar como o ponto de extremidade de origem.

  3. Selecione Continuar.

    Uma lista de pontos de dados para o ativo selecionado é exibida.

    Captura de ecrã usando a experiência de operações para selecionar um ativo como o endpoint de origem.

  4. Selecione Aplicar para usar o recurso como o ponto de extremidade de origem.

Ao usar um ativo como origem, a definição de ativo é usada para inferir o esquema para o fluxo de dados. A definição de ativo inclui o esquema para os pontos de dados do ativo. Para saber mais, consulte Gerenciar configurações de ativos remotamente.

Uma vez configurados, os dados do ativo alcançam o fluxo de dados através do broker MQTT local. Assim, ao usar um ativo como fonte, o fluxo de dados usa o ponto de extremidade padrão do broker MQTT local como a fonte de facto.

Opção 3: Usar um endpoint de dados personalizado MQTT ou Kafka como origem

Se criou um endpoint de fluxo de dados MQTT ou Kafka personalizado (por exemplo, para utilizar com o Event Grid ou Event Hubs), poderá utilizá-lo como fonte para o fluxo de dados. Lembre-se de que pontos de extremidade de armazenamento, como o Data Lake ou o Fabric OneLake, não podem ser utilizados como fontes.

  1. Em Detalhes da origem, selecione Agente de mensagens.

    Captura de ecrã utilizando a experiência operacional para selecionar um agente de mensagens personalizado como o ponto de extremidade de origem.

  2. Insira as seguintes configurações para a origem do sistema de intermediação de mensagens:

    Configurações Descrição
    Ponto final do fluxo de dados Use o botão Reselect para selecionar um ponto de extremidade de fluxo de dados MQTT ou Kafka personalizado. Para obter mais informações, consulte Configurar pontos de extremidade de fluxo de dados MQTT ou Configurar Hubs de Eventos do Azure e pontos de extremidade de fluxo de dados Kafka.
    Tópico O filtro de tópico para subscrição para mensagens recebidas. Use Tópico(s)>Adicionar linha para adicionar vários tópicos. Para obter mais informações sobre tópicos, consulte Configurar tópicos MQTT ou Kafka.
    Esquema de mensagem O esquema a ser usado para desserializar as mensagens de entrada. Consulte Especificar esquema para desserializar dados.
  3. Selecione Aplicar.

Configurar fontes de dados (tópicos MQTT ou Kafka)

Você pode especificar vários tópicos MQTT ou Kafka em uma fonte sem precisar modificar a configuração do ponto de extremidade do fluxo de dados. Essa flexibilidade significa que o mesmo ponto de extremidade pode ser reutilizado em vários fluxos de dados, mesmo que os tópicos variem. Para obter mais informações, consulte Reutilizar endereços de fluxo de dados.

Tópicos MQTT

Quando a origem é um ponto de extremidade MQTT (incluído Event Grid), pode-se usar o filtro de tópico MQTT para subscrever mensagens de entrada. O filtro de tópicos pode incluir curingas para assinar vários tópicos. Por exemplo, thermostats/+/sensor/temperature/# subscreve todas as mensagens do sensor de temperatura dos termostatos. Para configurar os filtros de tópico MQTT:

Nos detalhes da fonte do fluxo de dados de operações, selecione Agente de mensagens e use o campo Tópico(s) para especificar os filtros de tópico MQTT para subscrever mensagens de entrada. Você pode adicionar vários tópicos MQTT selecionando Adicionar linha e inserindo um novo tópico.

Subscrições partilhadas

Para usar assinaturas partilhadas com servidores de mensagens, pode especificar o tópico de assinatura partilhada na forma de $shared/<GROUP_NAME>/<TOPIC_FILTER>.

Em Detalhes da fonte do fluxo de dados da experiência de operações, selecione Agente de mensagens e use o campo Tópico para especificar o grupo e o tópico de assinatura compartilhada.

Se a contagem de instâncias no perfil de fluxo de dados for maior que uma, a assinatura compartilhada será habilitada automaticamente para todos os fluxos de dados que usam uma fonte de agente de mensagens. Nesse caso, o prefixo $shared é adicionado e o nome do grupo de assinatura compartilhada gerado automaticamente. Por exemplo, se você tiver um perfil de fluxo de dados com uma contagem de instâncias de 3 e seu fluxo de dados usar um ponto de extremidade do agente de mensagens como fonte configurado com tópicos topic1 e topic2, eles serão automaticamente convertidos em assinaturas compartilhadas como $shared/<GENERATED_GROUP_NAME>/topic1 e $shared/<GENERATED_GROUP_NAME>/topic2.

Você pode criar explicitamente um tópico nomeado $shared/mygroup/topic em sua configuração. No entanto, adicionar o $shared tópico explicitamente não é recomendado, pois o prefixo $shared é adicionado automaticamente quando necessário. Os fluxos de dados podem fazer otimizações com o nome do grupo se ele não estiver definido. Por exemplo, $share não está definido e os fluxos de dados só precisam operar sobre o nome do tópico.

Importante

Os fluxos de dados que exigem assinatura compartilhada quando a contagem de instâncias é maior que uma são importantes ao usar o agente MQTT da Grade de Eventos como origem , pois ele não oferece suporte a assinaturas compartilhadas. Para evitar mensagens ausentes, defina a contagem de instâncias do perfil de fluxo de dados como uma ao usar o agente MQTT da Grade de Eventos como origem. É quando o fluxo de dados atua como assinante e está a receber mensagens da nuvem.

Tópicos de Kafka

Quando a origem for um ponto de extremidade Kafka (Hubs de Eventos incluídos), especifique os tópicos Kafka individuais a que subscrever para mensagens recebidas. Não há suporte para curingas, portanto, você deve especificar cada tópico estaticamente.

Observação

Ao usar os Hubs de Eventos através do ponto final Kafka, cada hub de evento individual dentro do espaço de nomes é o tópico Kafka. Por exemplo, se você tiver um namespace Hubs de Eventos com dois hubs thermostats de eventos e humidifiers, poderá especificar cada hub de eventos como um tópico Kafka.

Para configurar os tópicos de Kafka:

No fluxo de dados da experiência de operações, nos Detalhes da fonte, selecione Agente de mensagens e utilize o campo Tópico para especificar o filtro de tópicos Kafka a que pretende subscrever para mensagens de entrada.

Observação

Apenas um filtro de tópico pode ser especificado na experiência de operações. Para usar vários filtros de tópico, use Bicep ou Kubernetes.

Especificar esquema de origem

Ao usar MQTT ou Kafka como origem, você pode especificar um esquema para exibir a lista de pontos de dados na interface do usuário da Web da experiência de operações. Atualmente, o uso de um esquema para desserializar e validar mensagens de entrada não é atualmente suportado.

Se a origem for um ativo, o esquema será automaticamente inferido a partir da definição de ativo.

Sugestão

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

Para configurar o esquema usado para desserializar as mensagens de entrada de uma fonte:

Em Detalhes da fonte do fluxo de dados da experiência de operações, selecione Agente de mensagens e use o campo Esquema de mensagem para especificar o esquema. Você pode usar o botão Carregar para carregar um arquivo de esquema primeiro. Para saber mais, consulte Compreender esquemas de mensagens.

Para saber mais, consulte Compreender esquemas de mensagens.

Solicitar persistência de disco

A persistência do disco de solicitação permite que os fluxos de dados mantenham o estado durante as reinicializações. Quando você habilita esse recurso, o gráfico recupera o estado de processamento se o broker conectado for reiniciado. Esse recurso é útil para cenários de processamento com monitoração de estado em que a perda de dados intermediários é um problema. Quando você habilita a persistência de disco de solicitação, o broker persiste os dados MQTT, como mensagens na fila de assinantes, no disco. Essa abordagem garante que a fonte de dados do seu fluxo de dados não perca dados durante quedas de energia ou reinicializações do broker. O broker mantém o desempenho ideal porque a persistência é configurada por fluxo de dados, portanto, apenas os fluxos de dados que precisam de persistência usam esse recurso.

O gráfico de fluxo de dados solicita essa persistência durante a assinatura usando uma propriedade de usuário MQTTv5. Esta funcionalidade funciona apenas quando:

  • O fluxo de dados usa o broker ou ativo MQTT como fonte
  • O broker MQTT tem persistência habilitada com o modo de persistência dinâmica definido para Enabled o tipo de dados, como filas de assinantes

Essa configuração permite que clientes MQTT, como fluxos de dados, solicitem persistência de disco para suas assinaturas usando as propriedades do usuário MQTTv5. Para obter detalhes sobre a configuração de persistência do MQTT broker, consulte Configure MQTT broker persistence.

A configuração aceita Enabled ou Disabled. Disabled é o padrão.

Ao criar ou editar um fluxo de dados, selecione Editar e, em seguida, selecione Sim ao lado de Solicitar persistência de dados.

Transformação

A operação de transformação é onde você pode transformar os dados da origem antes de enviá-los para o destino. As transformações são opcionais. Se você não precisar fazer alterações nos dados, não inclua a operação de transformação na configuração do fluxo de dados. Várias transformações são encadeadas em estágios, independentemente da ordem em que são especificadas na configuração. A ordem das etapas é sempre:

  1. Enriquecimento: adicione dados adicionais aos dados de origem com um conjunto de dados e uma condição correspondentes.
  2. Filtrar: filtre os dados com base em uma condição.
  3. Mapear, Calcular, Renomear ou adicionar uma propriedade Novo: mova dados de um campo para outro com uma conversão opcional.

Esta seção é uma introdução às transformações de fluxo de dados. Para obter informações mais detalhadas, consulte Mapear dados usando fluxos de dados, Converter dados usando conversões de fluxo de dados e Enriquecer dados usando fluxos de dados.

Na experiência de operações, selecione Fluxo de> dadosAdicionar transformação (opcional).

Captura de tela da interface da experiência de operações mostrando a adição de um estágio de transformação a um fluxo de dados.

Enriquecimento: Adicionar dados de referência

Para enriquecer os dados, primeiro adicione o conjunto de dados de referência no repositório de estado do Azure IoT Operations. O conjunto de dados é usado para adicionar dados extras aos dados de origem com base em uma condição. A condição é especificada como um campo nos dados de origem que corresponde a um campo no conjunto de dados.

Você pode carregar dados de exemplo no repositório de estado usando a CLI do repositório de estado. Os nomes das chaves no armazenamento de estado correspondem a um conjunto de dados na configuração do fluxo de dados.

Atualmente, o estágio Enrich não é suportado na experiência de operações.

Se o conjunto de dados tiver um registro com o asset campo, semelhante a:

{
  "asset": "thermostat1",
  "location": "room1",
  "manufacturer": "Contoso"
}

Os dados da fonte com o campo deviceId correspondente a thermostat1 têm os campos location e manufacturer disponíveis nas fases de filtro e mapeamento.

Para obter mais informações sobre sintaxe de condição, consulte Enriquecer dados usando fluxos de dados e Converter dados usando fluxos de dados.

Filtrar: filtrar dados com base em uma condição

Para filtrar os dados mediante uma condição, pode usar a etapa filter. A condição é especificada como um campo nos dados de origem que corresponde a um valor.

  1. Em Transformar (opcional), selecione Adicionar filtro>.

    Captura de tela usando a experiência operacional para adicionar uma transformação de filtro.

  2. Insira as configurações necessárias.

    Configurações Descrição
    Condição do filtro A condição para filtrar os dados com base em um campo nos dados de origem.
    Descrição Forneça uma descrição para a condição do filtro.

    No campo de condição do filtro, insira @ ou selecione Ctrl + Espaço para escolher pontos de dados em uma lista suspensa.

    Você pode inserir propriedades de metadados MQTT usando o formato @$metadata.user_properties.<property> ou @$metadata.topic. Você também pode inserir cabeçalhos $metadata usando o formato @$metadata.<header>. A $metadata sintaxe só é necessária para propriedades MQTT que fazem parte do cabeçalho da mensagem. Para obter mais informações, consulte referências de campo.

    A condição pode usar os campos nos dados de origem. Por exemplo, você pode usar uma condição de filtro como @temperature > 20 filtrar dados menores ou iguais a 20 com base no campo de temperatura.

  3. Selecione Aplicar.

Mapa: Mover dados de um campo para outro

Para mapear os dados para outro campo com conversão opcional, você pode usar a map operação. A conversão é especificada como uma fórmula que usa os campos nos dados de origem.

Na experiência de operações, o mapeamento é atualmente suportado usando as transformações Compute, Rename e Propriedade nova.

Computação

Você pode usar a transformação Compute para aplicar uma fórmula aos dados de origem. Esta operação é usada para aplicar uma fórmula aos dados de origem e armazenar o campo de resultado.

  1. Em Transformar (opcional), selecione Computar>Adicionar.

    Captura de tela usando a experiência de operações para adicionar uma transformação de computação.

  2. Insira as configurações necessárias.

    Configurações Descrição
    Selecionar fórmula Escolha uma fórmula existente na lista pendente ou selecione Personalizar para introduzir uma fórmula manualmente.
    Resultado Especifique o nome de exibição da saída para o resultado.
    Fórmula Insira a fórmula a ser aplicada aos dados de origem.
    Descrição Forneça uma descrição para a transformação.
    Último valor conhecido Opcionalmente, use o último valor conhecido se o valor atual não estiver disponível.

    Pode introduzir ou editar uma fórmula no campo Fórmula . A fórmula pode usar os campos nos dados de origem. Insira @ ou selecione Ctrl + Espaço para escolher pontos de dados em uma lista suspensa. Para fórmulas incorporadas, selecione o espaço reservado <dataflow> para ver a lista de dados disponíveis.

    Você pode inserir propriedades de metadados MQTT usando o formato @$metadata.user_properties.<property> ou @$metadata.topic. Você também pode inserir cabeçalhos $metadata usando o formato @$metadata.<header>. A $metadata sintaxe só é necessária para propriedades MQTT que fazem parte do cabeçalho da mensagem. Para obter mais informações, consulte referências de campo.

    A fórmula pode usar os campos nos dados de origem. Por exemplo, você pode usar o temperature campo nos dados de origem para converter a temperatura em Celsius e armazená-la no temperatureCelsius campo de saída.

  3. Selecione Aplicar.

Mudar o nome

Você pode renomear um ponto de dados usando a transformação Renomear . Esta operação é usada para renomear um ponto de dados nos dados de origem para um novo nome. O novo nome pode ser usado nos estágios subsequentes do fluxo de dados.

  1. Em Transformar (opcional), selecione Renomear>Adicionar.

    Captura de ecrã utilizando a experiência operacional para renomear um ponto de informação.

  2. Insira as configurações necessárias.

    Configurações Descrição
    Ponto de dados Selecione um ponto de dados na lista de opções ou insira um cabeçalho $metadata.
    Novo nome de ponto de dados Insira o novo nome para o ponto de dados.
    Descrição Forneça uma descrição para a transformação.

    Você pode inserir propriedades de metadados MQTT usando o formato @$metadata.user_properties.<property> ou @$metadata.topic. Você também pode inserir cabeçalhos $metadata usando o formato @$metadata.<header>. A $metadata sintaxe só é necessária para propriedades MQTT que fazem parte do cabeçalho da mensagem. Para obter mais informações, consulte referências de campo.

  3. Selecione Aplicar.

Nova propriedade

Você pode adicionar uma nova propriedade aos dados de origem usando a transformação New propriedade. Esta operação é usada para adicionar uma nova propriedade aos dados de origem. A nova propriedade pode ser usada nos estágios subsequentes do fluxo de dados.

  1. Em Transformar (opcional), selecione Nova propriedade>Adicionar.

    Captura de tela usando a experiência de operações para adicionar uma nova propriedade.

  2. Insira as configurações necessárias.

    Configurações Descrição
    Chave da propriedade Insira a chave da nova propriedade.
    Valor do imóvel Insira o valor da nova propriedade.
    Descrição Forneça uma descrição para a nova propriedade.
  3. Selecione Aplicar.

Para saber mais, consulte Mapear dados usando fluxos de dados e Converter dados usando fluxos de dados.

Eliminar

Por padrão, todos os pontos de dados são incluídos no esquema de saída. Você pode remover qualquer ponto de dados do destino usando a transformação Remover .

  1. Em Transformar (opcional), selecione Remover.

  2. Selecione o ponto de dados a ser removido do esquema de saída.

    Captura de tela usando a experiência de operações para remover o ponto de dados de peso do esquema de saída.

  3. Selecione Aplicar.

Para saber mais, consulte Mapear dados usando fluxos de dados e Converter dados usando fluxos de dados.

Serializar dados de acordo com um esquema

Se desejar serializar os dados antes de enviá-los para o destino, será necessário especificar um esquema e um formato de serialização. Caso contrário, os dados são serializados em JSON com os tipos inferidos. Pontos de extremidade de armazenamento como o Microsoft Fabric ou o Azure Data Lake exigem 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.

Na experiência em operações, especifique o esquema e o formato de serialização nos detalhes do ponto de extremidade do fluxo de dados. Os pontos de extremidade que oferecem suporte a formatos de serialização são Microsoft Fabric OneLake, Azure Data Lake Storage Gen 2, Azure Data Explorer e armazenamento local. Por exemplo, para serializar os dados no formato Delta, você precisa carregar um esquema no registro do esquema e fazer referência a ele na configuração do ponto de extremidade de destino do fluxo de dados.

Captura de tela utilizando a experiência operacional 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.

Destino

Para configurar um destino para o fluxo de dados, especifique a referência do ponto de extremidade e o destino dos dados. Você pode especificar uma lista de destinos de dados para o endereço de destino.

Para enviar dados para um destino diferente do broker MQTT local, crie um ponto de extremidade de fluxo de dados. Para saber como, consulte Configurar pontos de extremidade de fluxo de dados. Se o destino não for o broker MQTT local, ele deverá ser usado como origem. Para saber mais sobre como usar o ponto de extremidade do corretor MQTT local, consulte Os fluxos de dados devem usar o ponto de extremidade do corretor MQTT local.

Importante

Os pontos de extremidade de armazenamento exigem um esquema para serialização. Para usar o fluxo de dados com o Microsoft Fabric OneLake, o Azure Data Lake Storage, o Azure Data Explorer ou o Armazenamento Local, você deve especificar uma referência de esquema.

  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 você escolher um Microsoft Fabric OneLake, Azure Data Lake Storage, Azure Data Explorer ou ponto de extremidade de destino do Armazenamento Local, deverá especificar uma referência de esquema. Por exemplo, para serializar os dados para um ponto de extremidade do Microsoft Fabric no formato Delta, você precisa carregar um esquema no registro do esquema e fazer referência a ele na configuração do ponto de extremidade de destino do fluxo de dados.

    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 destino de dados (tópico, contêiner ou tabela) para obter mais informações.

Configurar destino de dados (tópico, contêiner ou tabela)

Semelhante às fontes de dados, o destino de dados é um conceito usado para manter os pontos de extremidade de fluxo de dados reutilizáveis em vários fluxos de dados. Essencialmente, ele representa o subdiretório na configuração do ponto de extremidade do fluxo de dados. Por exemplo, se o ponto de extremidade do fluxo de dados for um ponto de extremidade de armazenamento, o destino dos dados será a tabela na conta de armazenamento. Se o ponto de extremidade do fluxo de dados for um ponto de extremidade Kafka, 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 tópicos estáticos e tradução dinâmica 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 Tabela A tabela no banco de dados do Azure Data Explorer.
Armazenamento Local Pasta de Arquivos O nome da pasta ou diretório na montagem de volume persistente de armazenamento local. Ao usar o Armazenamento de Contêiner do Azure habilitado pelo Azure Arc Cloud Ingest Edge Volumes, isso deve corresponder ao spec.path parâmetro para o subvolume que você criou.
OpenTelemetry Tópico O tópico OpenTelemetry para o qual os dados são enviados. Apenas tópicos estáticos são suportados.

Para configurar o destino dos dados:

Ao usar a experiência de operações, o campo de destino de dados é interpretado automaticamente 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 ponto de extremidade do fluxo de dados for um ponto de extremidade MQTT, a página de detalhes do destino solicitará que você insira o tópico e assim por diante.

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 pontos de extremidade MQTT, você pode usar variáveis de tópico dinâmico no dataDestination campo para rotear mensagens com base na estrutura do tópico de origem. Estão disponíveis as seguintes variáveis:

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

Por exemplo, processed/factory/${inputTopic.2} roteia mensagens de factory/1/data para processed/factory/1. Os segmentos de tópico são indexados por 1 e as barras à esquerda/à direita 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 tiver apenas três segmentos), a mensagem será descartada e um aviso será registrado. Caracteres curinga (# e +) não são permitidos nos tópicos de destino.

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.

Exemplo

O exemplo a seguir é uma configuração de fluxo de dados que usa o ponto de extremidade MQTT para a origem e o destino. A fonte filtra os dados do tópico azure-iot-operations/data/thermostatMQTT. A transformação converte a temperatura em Fahrenheit e filtra os dados onde a temperatura multiplicada pela humidade é inferior a 100000. O destino envia os dados para o tópico MQTT factory.

Captura de tela mostrando o exemplo de fluxo de dados da experiência de operações com um ponto de extremidade de origem, transformações e um ponto de extremidade de destino.

Para ver mais exemplos de configurações de fluxo de dados, consulte API REST do Azure - Fluxo de dados e o Bicep de início rápido.

Verificar se um fluxo de dados está funcionando

Siga o tutorial: Ponte MQTT bidirecional para a Grelha de Eventos do Azure para verificar se o fluxo de dados está a funcionar.

Exportar configuração de fluxo de dados

Para exportar a configuração de fluxo de dados, pode utilizar a experiência operacional ou exportar o recurso personalizado do fluxo de dados.

Selecione o fluxo de dados que deseja exportar e selecione Exportar na barra de ferramentas.

Captura de tela da interface de experiência de operações mostrando a opção de exportação para um fluxo de dados configurado.

Configuração adequada do fluxo de dados

Para garantir que o fluxo de dados esteja funcionando conforme o esperado, verifique o seguinte:

  • O ponto de extremidade de fluxo de dados MQTT padrão deve ser usado como origem ou destino.
  • O perfil de fluxo de dados existe e é referenciado na configuração de fluxo de dados.
  • Source é um endpoint MQTT, um endpoint Kafka ou um ativo. Os pontos finais de armazenamento não podem ser usados como origem.
  • Ao usar a Grade de Eventos como origem, a contagem de instâncias do perfil de fluxo de dados é definida como 1 porque o agente MQTT da Grade de Eventos não oferece suporte a assinaturas compartilhadas.
  • Ao usar Hubs de Eventos como origem, cada hub de eventos no namespace é um tópico Kafka separado e deve ser especificado como a fonte de dados.
  • A transformação, se utilizada, é configurada com a sintaxe adequada, incluindo o escape adequado de caracteres especiais.
  • Ao usar pontos de extremidade de tipo de armazenamento como destino, um esquema é especificado.
  • Ao usar tópicos de destino dinâmico para pontos de extremidade MQTT, certifique-se de que as variáveis de tópico façam referência a segmentos válidos.

Próximos passos