Compartir por


Enriquecimiento de datos mediante flujos de datos

Importante

Versión preliminar de operaciones de Azure IoT: habilitada 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 haya 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.

Puede enriquecer los datos mediante la función de conjuntos de datos de contextualización. Cuando se procesan los registros entrantes, puede consultar estos conjuntos de datos en función de las condiciones relacionadas con los campos del registro entrante. Esta funcionalidad permite interacciones dinámicas. Los datos de estos conjuntos de datos se pueden usar para complementar la información de los campos de salida y participar en cálculos complejos durante el proceso de asignación.

Por ejemplo, considere el siguiente conjunto de datos con algunos registros, representados como registros JSON:

{
  "Position": "Analyst",
  "BaseSalary": 70000,
  "WorkingHours": "Regular"
},
{
  "Position": "Receptionist",
  "BaseSalary": 43000,
  "WorkingHours": "Regular"
}

El asignador accede al conjunto de datos de referencia almacenado en el almacén de estado distribuido (DSS) de Azure IoT Operations mediante un valor de clave basado en una condición especificada en la configuración de asignación. Los nombres de clave de DSS corresponden a un conjunto de datos en la configuración del flujo de datos.

datasets:
- key: position
  inputs:
    - $source.Position # - $1
    - $context.Position # -$2
  expression: $1 == $2

Cuando se procesa un nuevo registro, el asignador realiza los pasos siguientes:

  • Solicitud de datos: el asignador envía una solicitud al DSS para recuperar el conjunto de datos almacenado en la clave Position.
  • Coincidencia de registros: el asignador consulta este conjunto de datos para buscar el primer registro donde el Position campo del conjunto de datos coincide con el Position campo del registro entrante.
- inputs:
  - $context(position).WorkingHours #  - $1 
  output: WorkingHours

- inputs:
  - BaseSalary   # - - - - - - - - - - - $1
  - $context(position).BaseSalary #  - - $2 
  output: BaseSalary
  expression: if($1 == (), $2, $1)

En este ejemplo, el WorkingHours campo se agrega al registro de salida, mientras que se BaseSalary usa condicionalmente solo cuando el registro entrante no contiene el BaseSalary campo (o el valor es null si es un campo que acepta valores NULL). La solicitud de los datos de contextualización no se produce con todos los registros entrantes. El asignador solicita el conjunto de datos y, a continuación, recibe notificaciones de DSS sobre los cambios, mientras usa una versión almacenada en caché del conjunto de datos.

Es posible usar varios conjuntos de datos:

datasets:
- key: position
  inputs:
    - $source.Position  # - $1
    - $context.Position # - $2
  expression: $1 == $2

- key: permissions
  inputs:
    - $source.Position  # - $1
    - $context.Position # - $2
  expression: $1 == $2

A continuación, use las referencias mixtas:

- inputs:
  - $context(position).WorkingHours  #    - - $1
  - $context(permission).NightShift  #    - - $2

Las referencias de entrada usan la clave del conjunto de datos como position o permission. Si la clave de DSS no es conveniente usar, puede definir un alias:

datasets:
  - key: datasets.parag10.rule42 as position
    inputs:
      - $source.Position  # - $1
      - $context.Position # - $2
    expression: $1 == $2

La configuración cambia el nombre del conjunto de datos con la clave datasets.parag10.rule42 a position.