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
ouFuture nearest
. - Se uma junção baseada em ID
Key match
for combinada comPast nearest
ouFuture nearest
condições de junção baseadas em carimbo de data/hora, oKey match
será aplicado primeiro para filtrar as entradas retornadas antes quePast nearest
ouFuture nearest
seja aplicado. - Você pode aplicar várias condições de
Key match
às entradas retornadas. Uma operação deAND
lógica é executada entre várias condições deKey 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
}
}