Compartir vía


Filtrado de datos en una canalización de Azure IoT Data Processor Preview

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 una fase de filtro para filtrar los mensajes que no necesita para un procesamiento adicional en la canalización. La fase emite el mensaje original a la fase de filtro sin cambios si se cumplen los criterios de filtro; de lo contrario, la fase quita el mensaje de la canalización.

  • Cada partición de la canalización filtra los mensajes independientemente de las otras particiones.
  • La salida de la fase de filtro es el mensaje original si la fase no lo filtra.

Requisitos previos

Para configurar y usar una fase de canalización de filtro, 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 filtro 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:

NOMBRE Valor Obligatorio Valor predeterminado Ejemplo
Nombre para mostrar Un nombre para mostrar en la interfaz de usuario del procesador de datos. - Filter1
Descripción Una descripción sencilla de lo que hace la fase de filtro. No - Filter out anomalies
Consultar La expresión jq - .payload.temperature > 0 and .payload.pressure < 50

expresión jq

Las consultas de filtro en el procesador de datos usan el lenguaje jq para definir la condición de filtro:

  • La expresión jq proporcionada en la consulta debe ser sintácticamente válida.
  • El resultado de la consulta de filtro debe ser un valor booleano.
  • Los mensajes que se evalúan como true se emiten sin cambios desde la fase de filtro hasta las fases posteriores para un procesamiento adicional. Los mensajes que se evalúan como false se quitan de la canalización.
  • Todos los mensajes para los que el filtro no devuelve un resultado booleano se tratan como un caso de error y se quitan de la canalización.
  • La fase de filtro sigue las mismas restricciones de uso de jq que se definen en la guía de expresiones jq.

A la hora de crear una consulta de filtro para usarla en la fase de filtro:

  • Pruebe la consulta de filtro con los mensajes para asegurarse de que se devuelve un resultado booleano.
  • Configure la consulta de filtro en función de cómo llega el mensaje a la fase de filtro.
  • Para obtener más información sobre cómo crear expresiones de filtro, consulte la guía de expresiones jq.

Configuración de ejemplo

En el siguiente ejemplo JSON se muestra una configuración completa de la fase de filtro:

{ 
    "displayName": "Filter name", 
    "description": "Filter description", 
    "query": "(.properties.responseTopic | contains(\"bar\")) or (.properties.responseTopic | contains(\"baz\")) and (.payload | has(\"temperature\")) and (.payload.temperature > 0)"
}

Este filtro comprueba si hay mensajes en los que .properties.responseTopic contiene bar o baz y la carga del mensaje tiene una propiedad denominada temperature con un valor mayor que 0.