Compartilhar via


Usar os últimos valores conhecidos em um pipeline de Visualização do Processador de Dados da Internet das Coisas do Azure

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.

Use o último estágio de valor conhecido (LKV) em um pipeline de processador de dados para manter um registro atualizado e completo de seus dados. O estágio LKV rastreia os valores mais recentes de pares chave-valor para mensagens no pipeline. O estágio pode enriquecer mensagens usando os valores LKV rastreados. O último acompanhamento e enriquecimento de valor conhecidos são importantes para processos downstream que dependem de:

  • Vários pontos de dados de série temporal em um carimbo de data/hora específico.
  • Cargas que sempre têm um valor para uma chave específica.

Em um pipeline de processamento de dados, o estágio LKV é opcional. Ao usar o estágio LKV, você pode:

  • Adicionar vários estágios LKV a um pipeline. Cada estágio LKV pode acompanhar vários valores.
  • Enriquecer mensagens com os valores LKV armazenados, garantindo que os dados permaneçam completos e abrangentes.
  • Manter os LKVs atualizados automaticamente com os valores mais recentes das mensagens de entrada.
  • Acompanhar LKVs separadamente para cada partição lógica. O estágio LKV opera independentemente em cada partição lógica.
  • Configurar o tempo de expiração para cada LKV acompanhado para gerenciar a duração em que ele permanece válido. Esse controle ajuda a garantir que as mensagens não sejam enriquecidas com valores obsoletos.

O estágio LKV mantém a integridade dos dados cronológicos. O estágio garante que as mensagens com carimbos de data/hora anteriores não substituam ou substituam LKVs por mensagens que tenham carimbos de data/hora posteriores.

O estágio LKV enriquece as mensagens de entrada com os últimos valores conhecidos que ele rastreia. Esses valores enriquecidos representam dados registrados anteriormente e não são necessariamente os valores atuais em tempo real. Verifique se esse comportamento está alinhado com suas expectativas de processamento de dados.

Pré-requisitos

Para configurar e usar um estágio de pipeline agregado, você precisa de uma instância implantada da Visualização do Processador de Dados da Internet das Coisas do Azure que inclua o componente Processador de Dados opcional.

Configurar o estágio

A configuração JSON do estágio LKV 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 Obrigatório Padrão Exemplo
Nome Nome definido pelo usuário para o estágio. Sim - lkv1
Descrição Descrição definida pelo usuário para o estágio. Não - lkv1
Caminho de Entrada das propriedades > O caminho da chave a ser acompanhada. Sim - .payload.temperature
Caminho de Saída das propriedades > O caminho para o local na mensagem de saída para gravar o LKV. Sim - .payload.temperature_lkv
Tempo de expiração das propriedades > Os LKVs rastreados são válidos apenas para o intervalo de tempo definido pelo usuário, após o qual a mensagem de saída não é enriquecida com o valor armazenado. A expiração é controlada para cada chave LKV. Não - 10h
Caminho do carimbo de data/hora das propriedades > O caminho para o local na mensagem de saída para gravar o carimbo de data/hora de quando o LKV foi atualizado pela última vez. Não Falso -

Se você incluir o caminho do carimbo de data/hora, ele ajudará você a entender com precisão quando os LKVs foram gravados e aprimora a transparência e a rastreabilidade.

inputPath é igual a outputPath

A mensagem de saída é o valor real da mensagem ou LKV se a chave rastreada estiver ausente do conteúdo da mensagem. Qualquer valor de entrada tem prioridade e o estágio não o substitui por um LKV. Para identificar se o valor da mensagem é um valor LKV, use o caminho do carimbo de data/hora. O caminho do carimbo de data/hora só será incluído na mensagem de saída se o valor na mensagem for o LKV rastreado.

inputPath não é igual a outputPath

O estágio grava o LKV para o outputPath para todas as mensagens de entrada. Use essa configuração para acompanhar a diferença entre os valores nos conteúdos de mensagens subsequentes.

Exemplo de configuração

O exemplo a seguir mostra uma mensagem de exemplo para o estágio LKV com a mensagem chegando às 10:02 e com um conteúdo que contém o valor LKV rastreado .payload.temperature :

{ 
  { 
    "systemProperties":{ 
        "partitionKey":"pump", 
        "partitionId":5, 
        "timestamp":"2023-01-11T10:02:07Z" 
    }, 
    "qos":1, 
    "topic":"/assets/pump/#" 
    }, 
    "payload":{ 
        "humidity": 10, 
        "temperature":250, 
        "pressure":30, 
        "runningState": true 
    } 
} 

Configuração do LKV:

Campo Valor
Caminho de Entrada* .payload.temperature
Caminho de Saída .payload.lkvtemperature
Hora de expiração 10h
Caminho do carimbo de data/hora .payload.lkvtemperature_timestamp

Os valores LKV rastreados são:

  • .payload.temperature é 250
  • O carimbo de data/hora do LKV é 2023-01-11T10:02:07Z

Para uma mensagem que chega às 11:05 com uma carga que não tem a propriedade de temperatura, o estágio LKV enriquece a mensagem com os valores rastreados:

Entrada de exemplo para o estágio LKV às 11:05:

{ 
    "systemProperties":{ 
        "partitionKey":"pump", 
        "partitionId":5, 
        "timestamp":"2023-01-11T11:05:00Z" 
    }, 
    "qos":1, 
    "topic":"/assets/pump/#" 
    }, 
    "payload":{ 
        "runningState": true 
    } 
} 

Saída de exemplo do estágio LKV às 11:05:

{ 
    "systemProperties":{ 
        "partitionKey":"pump", 
        "partitionId":5, 
        "timestamp":"2023-01-11T11:05:00Z" 
    }, 
    "qos":1, 
    "topic":"/assets/pump/#" 
    }, 
    "payload":{ 
        "lkvtemperature":250, 
        "lkvtemperature_timestamp"":"2023-01-11T10:02:07Z" 
        "runningState": true 
    } 
}