Compartir vía


Enriquecimiento de datos mediante flujos de datos

Importante

En esta página se incluyen instrucciones para administrar componentes de Operaciones de IoT de Azure mediante manifiestos de implementación de Kubernetes, que se encuentra en versión preliminar. Esta característica se proporciona con varias limitacionesy no se debe usar para cargas de trabajo 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.

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.

Para cargar datos de muestra en el almacén de estados, use la CLI de almacén de estados.

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 estados de Operaciones de IoT de Azure utilizando un valor clave basado en una condición especificada en la configuración de la asignación. Los nombres de clave del almacén de estados 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 almacén de estados 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 del almacén de estados 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(permissions).NightShift' // - $2
]

Las referencias de entrada usan la clave del conjunto de datos como position o permission. Si resulta inconveniente usar la clave del almacén de estados, 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.