Uso de los últimos valores conocidos en una canalización de procesador de datos
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.
Tendrá que implementar una nueva instalación de Azure IoT Operations cuando esté disponible una versión disponible con carácter general, no podrá actualizar una instalación en versión preliminar.
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 del procesador de datos 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. | Sí | - | 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. | Sí | - | .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. | Sí | - | .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
}
}