Sdílet prostřednictvím


Obohacení dat pomocí toků dat

Důležité

Tato stránka obsahuje pokyny ke správě komponent operací Azure IoT pomocí manifestů nasazení Kubernetes, které jsou ve verzi Preview. Tato funkce je poskytována s několika omezeními a neměla by se používat pro produkční úlohy.

Právní podmínky, které platí pro funkce Azure, které jsou ve verzi beta, verzi Preview nebo které zatím nejsou veřejně dostupné, najdete v Dodatečných podmínkách použití pro Microsoft Azure verze Preview.

Data můžete rozšířit pomocí funkce kontextových datových sad. Při zpracování příchozích záznamů můžete tyto datové sady dotazovat na základě podmínek, které se vztahují k polím příchozího záznamu. Tato funkce umožňuje dynamické interakce. Data z těchto datových sad lze použít k doplnění informací ve výstupních polích a účastnit se složitých výpočtů během procesu mapování.

Pokud chcete načíst ukázková data do úložiště stavů, použijte rozhraní příkazového řádku úložiště stavů.

Představte si například následující datovou sadu s několika záznamy reprezentovanými jako záznamy JSON:

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

Mapper přistupuje k referenční datové sadě uložené v úložišti stavů operací Azure IoT pomocí hodnoty klíče na základě podmínky zadané v konfiguraci mapování. Názvy klíčů v úložišti stavů odpovídají datové sadě v konfiguraci toku dat.

datasets: [
  {
    key: 'position',
    inputs: [
      '$source.Position' //  - $1
      '$context.Position' // - $2
    ],
    expression: '$1 == $2'
  }
]

Při zpracování nového záznamu provede mapper následující kroky:

  • Žádost o data: Mapper odešle požadavek do úložiště stavů, aby načetl datovou sadu uloženou pod klíčem Position.
  • Párování záznamů: Mapper pak tuto datovou sadu dotazuje, aby našel první záznam, ve Position kterém pole v datové sadě odpovídá Position poli příchozího záznamu.
{
  inputs: [
    '$context(position).WorkingHours' //  - $1 
  ]
  output: 'WorkingHours'
}
{
  inputs: [
    'BaseSalary' // - - - - - - - - - - - - $1
    '$context(position).BaseSalary' //  - - $2
  ]
  output: 'BaseSalary'
  expression: 'if($1 == (), $2, $1)'
}

V tomto příkladu WorkingHours se pole přidá do výstupního záznamu, zatímco BaseSalary se použije podmíněně pouze v případě, že příchozí záznam neobsahuje BaseSalary pole (nebo hodnota je null , pokud se jedná o pole s možnou hodnotou null). Požadavek na data kontextové vizualizace se neděje s každým příchozím záznamem. Mapper požádá datovou sadu a pak obdrží oznámení ze stavového úložiště o změnách, zatímco používá verzi datové sady uloženou v mezipaměti.

Je možné použít více datových sad:

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'
  }
]

Pak použijte smíšené odkazy:

inputs: [
  '$context(position).WorkingHours'  // - $1
  '$context(permissions).NightShift' // - $2
]

Vstupní odkazy používají klíč datové sady, například position nebo permission. Pokud je klíč v úložišti stavů nevhodný, můžete definovat alias:

datasets: [
  {
    key: 'datasets.parag10.rule42 as position'
    inputs: [
      '$source.Position'  // - $1
      '$context.Position' // - $2
    ],
    expression: '$1 == $2'
  }
]

Konfigurace přejmenuje datovou sadu s klíčem datasets.parag10.rule42 na position.