Share via


Enriquecer dados em um pipeline da versão prévia do Processador de Dados do Azure IoT

Importante

O recurso Pré-visualização de Operações do Azure IoT — habilitado pelo Azure Arc — está atualmente em VERSÃO PRÉVIA. Você não deve usar esse software em versão prévia em ambientes de produção.

Veja os Termos de Uso Complementares para Versões Prévias do Microsoft Azure para obter termos legais que se aplicam aos recursos do Azure que estão em versão beta, versão prévia ou que, de outra forma, ainda não foram lançados em disponibilidade geral.

O estágio enriquecer é um estágio de pipeline opcional e intermediário que permite enriquecer os dados do pipeline com informações contextuais e de referência de armazenamento de dados de referência conjuntos de dados. O estágio de enriquecimento ajuda você a contextualizar dados de fontes de dados diferentes para tornar os dados no pipeline mais significativos e acionáveis.

Você pode unir os dados do pipeline aos dados de um conjunto de dados de referência usando marcas, IDs ou carimbos de data/hora comuns.

Pré-requisitos

Para configurar e usar um estágio de pipeline de enriquecimento, você precisa de uma instância implantada da versão prévia do Processador de Dados do Azure IoT.

Configurar o estágio

A configuração JSON do estágio de enriquecimento define os detalhes do estágio. Para criar o estágio, você pode interagir com a interface do usuário baseada em formulário ou fornecer a configuração JSON na guia Avançado :

Campo Descrição Necessário Opções Exemplo
Nome Um nome a ser mostrado na interface do usuário do Processador de Dados. Sim - ERP Context
Descrição Uma descrição amigável do que o estágio de enriquecimento faz. Não - Enrich with vendor dataset
Dataset Selecione o conjunto de dados com os dados de referência para o enriquecimento. Sim - Vendor dataset
Caminho de saída Caminho para o local na mensagem de saída para colocar os dados de referência. Sim - .payload.erp
Enriquecer como matriz Se for true, a entrada enriquecida é sempre uma matriz. Não No/Yes Yes
Limite Limite as entradas de número retornadas do conjunto de dados de referência. Essa configuração controla o número de registros que são enriquecidos na mensagem. Não - 100
Condições > Operador O operador de condição de junção para enriquecimento de dados. Não Key match/Past nearest/Future nearest Key match
Condições > Caminho de entrada Caminho para a chave a ser usada para corresponder a cada condição. Não - .payload.asset
Condições > Propriedade Nome da propriedade ou carimbo de data/hora para a operação de condição de junção fornecida na configuração do conjunto de dados Não Selecione um nome de propriedade ou carimbo de data/hora na lista suspensa. equipmentName

Operadores de condição

Condição de junção Descrição
Key match Uma junção baseada em ID que une os dados para os quais há uma correspondência exata entre a chave ou o nome da propriedade especificado no estágio de enriquecimento e no armazenamento de dados de referência.
Past nearest Uma junção baseada em carimbo de data/hora que une os dados de referência com o carimbo de data/hora mais próximo no armazenamento de dados de referência em relação ao carimbo de data/hora da mensagem fornecido no estágio de enriquecimento.
Future nearest Uma junção baseada em carimbo de data/hora que une os dados de referência com o carimbo de data/hora futuro mais próximo no armazenamento de dados de referência em relação ao carimbo de data/hora da mensagem fornecido no estágio de enriquecimento.

Observações:

  • Se você não fornecer uma condição, todos os dados de referência do conjunto de dados serão enriquecidos.
  • Se o caminho de entrada fizer referência a um carimbo de data/hora, os carimbos de data/hora deverão estar no formato RFC3339.
  • Key match diferencia maiúsculas de minúsculas.
  • Cada estágio de enriquecimento pode ter até 10 condições.
  • Cada estágio de enriquecimento só pode ter uma condição de junção baseada em tempo: Past nearest ou Future nearest.
  • Se uma junção baseada em ID Key match for combinada com Past nearest ou Future nearest condições de junção baseadas em carimbo de data/hora, o Key match será aplicado primeiro para filtrar as entradas retornadas antes que Past nearest ou Future nearest seja aplicado.
  • Você pode aplicar várias condições de Key match às entradas retornadas. Uma operação de AND lógica é executada entre várias condições de Key match.

Se o pod do pipeline falhar inesperadamente, há a possibilidade de que a junção com o pipeline de dados de eventos backlogged esteja usando valores inválidos ou futuros do conjunto de dados do armazenamento de dados de referência. Essa situação pode levar ao enriquecimento indesejado de dados. Para resolver esse problema e filtrar esses dados, use a condição Past nearest.

Usando a condição Past nearest no estágio de enriquecimento, somente valores passados dos dados de referência são considerados para enriquecimento. Essa abordagem garante que os dados ingressados não incluam valores futuros do conjunto de dados do armazenamento de dados de referência. A condição Past nearest filtra valores futuros, permitindo um enriquecimento de dados mais preciso e confiável.

Exemplo de configuração

Na configuração do estágio de enriquecimento, você define as seguintes propriedades:

Campo Exemplo
Nome enriquecimento
Descrição enriquecer com dados de equipamento
Dataset equipment
Caminho de saída .payload
Enriquecer como matriz Sim
Condição > Operador Key match
Condição > Caminho de entrada .payload.assetid
Condição > Propriedade equipment name

A junção usa uma condição que corresponde ao valor assetid na mensagem de entrada com o campo equipment name no conjunto de dados de referência. Essa configuração enriquece a mensagem com os dados relevantes do conjunto de dados. Quando o estágio de enriquecimento aplica a condição de junção, ele adiciona os dados contextuais do conjunto de dados de referência à mensagem à medida que flui pelo pipeline.

Exemplo

Este exemplo baseia-se no exemplo de conjuntos de dados de referência. Você deseja enriquecer os dados de série temporal que um pipeline recebe dados de uma instalação de fabricação com dados de referência usando o estágio de enriquecimento. Este exemplo usa um conteúdo de entrada semelhante ao seguinte JSON:

payload: {
      { 
        "assetid": "Oven", 
        "timestamp": "T05:15:00.000Z", 
        "temperature": 120, 
        "humidity": 99 
    }, 
      { 
        "assetid": "Oven", 
        "timestamp": "T05:16:00.000Z", 
        "temperature": 127, 
        "humidity": 98 
    }, 
      { 
        "AssetID": "Mixer", 
        "timestamp": "T05:17:00.000Z", 
        "temperature": 89, 
        "humidity": 95 
    }, 
      { 
        "AssetID": "Slicer", 
        "timestamp": "T05:19:00.000Z", 
        "temperature": 56, 
        "humidity": 30 
    } 
} 

O JSON a seguir mostra um exemplo de uma mensagem de saída enriquecida com base na configuração anterior:

payload: {
      { 
        "assetid": "Oven", 
        "timestamp": "2023-05-25T05:15:00.000Z", 
        "temperature": 120, 
        "humidity": 99, 
        "location": "Seattle", 
        "installationDate": "2002-03-05T00:00:00Z",  
        "isSpare": false  
    }, 
      { 
        "assetid": "Oven", 
        "timestamp": "2023-05-25T05:16:00.000Z", 
        "temperature": 127, 
        "humidity": 98, 
        "location": "Seattle", 
        "installationDate": "2002-03-05T00:00:00Z",  
        "isSpare": false  
    }, 
      { 
        "assetid": "Mixer", 
        "timestamp": "2023-05-25T05:17:00.000Z", 
        "temperature": 89, 
        "humidity": 95, 
        "location": "Tacoma",  
        "installationDate": "2005-11-15T00:00:00Z",  
        "isSpare": false  
    }, 
      { 
        "assetid": "Slicer", 
        "Timestamp": "2023-05-25T05:19:00.000Z", 
        "Temperature": 56, 
        "humidity": 30, 
        "location": "Seattle",  
        "installationDate": "2021-04-25T00:00:00Z",  
        "isSpare": true  
    } 
}