Compartir a través de


Uso de los últimos valores conocidos en una canalización de versión preliminar del procesador de datos de Azure IoT

Importante

Operaciones de IoT de Azure, habilitado por Azure Arc, está actualmente en VERSIÓN PRELIMINAR. No se debería usar este software en versión preliminar en entornos de producción.

Consulte Términos de uso complementarios para las versiones preliminares de Microsoft Azure para conocer los términos legales que se aplican a las características de Azure que se encuentran en la versión beta, en versión preliminar o que todavía no se han publicado para que estén disponibles con carácter general.

Use la fase de último valor conocido (LKV, por sus siglas en inglés) en una canalización de procesador de datos para mantener un registro actualizado y completo de los datos. La fase de LKV realiza un seguimiento de los últimos valores de los pares clave-valor de los mensajes de la canalización. De este modo, la fase puede enriquecer los mensajes mediante el uso de los últimos valores conocidos (LKV) rastreados. El seguimiento y enriquecimiento del último valor conocido son importantes para los procesos de nivel inferior que dependen de:

  • Varios puntos de datos de serie temporal en una marca de tiempo específica.
  • Cargas que siempre tienen un valor para una clave determinada.

En una canalización de procesamiento de datos, la fase de último valor conocido (LKV) es opcional. Al usar la fase de LKV, puede hacer lo siguiente:

  • Agregar varias fases de LKV a una canalización. Cada fase de LKV puede realizar un seguimiento de varios valores.
  • Enriquecer los mensajes con los últimos valores conocidos almacenados, lo que garantiza que los datos permanezcan completos.
  • Mantener los últimos valores conocidos actualizados automáticamente con los valores más recientes de los mensajes entrantes.
  • Realizar un seguimiento de los últimos valores conocidos para cada partición lógica por separado. La fase de LKV funciona de forma independiente en cada partición lógica.
  • Configurar la hora de expiración de cada último valor conocido rastreado para administrar la duración de su validez. Este control ayuda a garantizar que los mensajes no se enriquezcan con valores obsoletos.

La fase de LKV mantiene la integridad de los datos cronológicos. Esta fase garantiza que los mensajes con marcas de tiempo anteriores no invaliden ni reemplacen los últimos valores conocidos por mensajes que tengan marcas de tiempo posteriores.

La fase de LKV enriquece los mensajes entrantes con los últimos valores conocidos que rastrea. Estos valores enriquecidos representan datos registrados previamente y no son necesariamente valores actuales en tiempo real. Asegúrese de que este comportamiento se alinea con sus expectativas de procesamiento de datos.

Requisitos previos

Para configurar y usar una fase de canalización de agregado, necesita una instancia implementada de Azure IoT Data Processor Preview que incluya el componente opcional del procesador de datos.

Configuración de la fase

La configuración JSON de la fase de LKV define sus detalles. Para crear la fase, puede interactuar con la interfaz de usuario basada en formularios o proporcionar la configuración JSON en la pestaña Opciones avanzadas:

Campo Descripción Necesario Valor predeterminado Ejemplo
Nombre Nombre de la fase definido por el usuario. - lkv1
Descripción Descripción definida por el usuario para la fase. No - lkv1
Propiedades > Ruta de acceso de entrada La ruta de acceso de la clave de la cual se va a realizar un seguimiento. - .payload.temperature
Propiedades > Ruta de acceso de salida La ruta de acceso a la ubicación del mensaje de salida para escribir el último valor conocido. - .payload.temperature_lkv
Propiedades > Fecha de expiración Los últimos valores conocidos rastreados solo son válidos para el intervalo de tiempo definido por el usuario, después del cual el mensaje de salida no se enriquece con el valor almacenado. Se realiza un seguimiento de la expiración de cada clave de LKV. No - 10h
Propiedades > Ruta de acceso de la marca de tiempo La ruta de acceso a la ubicación del mensaje de salida para escribir la marca de tiempo de cuándo se actualizó por última vez el último valor conocido (LKV). No False -

Incluir la ruta de acceso de la marca de tiempo le ayuda a comprender con precisión cuándo se registraron los LKV y mejora la transparencia y la rastreabilidad.

inputPath es igual a outputPath

El mensaje saliente es el valor real del mensaje o el último valor conocido si falta la clave de seguimiento en la carga del mensaje. Cualquier valor entrante tiene prioridad y la fase no lo reemplaza por el último valor conocido. Para identificar si el valor del mensaje es el último valor conocido, use la ruta de acceso de la marca de tiempo. La ruta de acceso de la marca de tiempo solo se incluye en el mensaje saliente si el valor del mensaje es el último valor conocido rastreado.

inputPath no es igual a outputPath

La fase escribe el último valor conocido en outputPath para todos los mensajes entrantes. Use esta configuración para realizar un seguimiento de las diferencias entre los valores de las cargas de mensajes posteriores.

Configuración de ejemplo

A continuación se muestra un mensaje de ejemplo para la fase de LKV con un mensaje que llega a las 10:02 y una carga que contiene el valor .payload.temperature del último valor conocido rastreado:

{ 
  { 
    "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 
    } 
} 

Configuración de LKV:

Campo Value
Ruta de acceso de entrada* .payload.temperature
Ruta de acceso de salida .payload.lkvtemperature
Fecha de expiración 10h
Ruta de acceso de la marca de tiempo .payload.lkvtemperature_timestamp

Los últimos valores conocidos rastreados son:

  • .payload.temperature es 250.
  • La marca de tiempo del último valor conocido es 2023-01-11T10:02:07Z.

Para un mensaje que llega a las 11:05 con una carga que no tiene la propiedad de temperatura, la fase de LKV enriquece el mensaje con los valores rastreados:

Entrada de ejemplo de la fase de LKV a las 11:05:

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

Salida de ejemplo de la fase de LKV a las 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 
    } 
}