Teilen über


Anreichern von Daten mithilfe von Dataflows

Wichtig

Die von Azure Arc aktivierte Azure IoT Operations Preview befindet sich derzeit in der VORSCHAU. Sie sollten diese Vorschausoftware nicht in Produktionsumgebungen verwenden.

Sie müssen eine neue Installation von Azure IoT Einsatz bereitstellen, wenn ein allgemein verfügbares Release verfügbar ist. Sie können keine Installation der Vorschauversion upgraden.

Die zusätzlichen Nutzungsbestimmungen für Microsoft Azure-Vorschauen enthalten rechtliche Bedingungen. Sie gelten für diejenigen Azure-Features, die sich in der Beta- oder Vorschauversion befinden oder aber anderweitig noch nicht zur allgemeinen Verfügbarkeit freigegeben sind.

Sie können Daten mithilfe der Funktion Kontextualisierungsdatasets anreichern. Bei der Verarbeitung eingehender Datensätze können diese Datasets basierend auf Bedingungen abgefragt werden, die sich auf die Felder des eingehenden Datensatzes beziehen. Diese Funktion ermöglicht dynamische Interaktionen, bei denen Daten aus diesen Datasets verwendet werden können, um Informationen in den Ausgabefeldern zu ergänzen und während des Zuordnungsprozesses an komplexen Berechnungen teilzunehmen.

Betrachten Sie beispielsweise das folgende Dataset mit einigen Datensätzen, dargestellt als JSON-Datensätze:

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

Der Mapper greift auf dieses Dataset über den verteilten Zustandsspeicher (Distributed State Store, DSS) mithilfe eines Schlüsselwerts zu, der auf einer Bedingung basiert, die in der Zuordnungskonfiguration angegeben ist.

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

Wenn ein neuer Datensatz verarbeitet wird, führt der Mapper die folgenden Schritte aus:

  • Datenanforderung: Der Mapper sendet eine Anforderung an den DSS, das unter dem Schlüssel Position gespeicherte Dataset abzurufen.
  • Datensatzabgleich: Der Mapper fragt dann dieses Dataset ab, um den ersten Datensatz zu finden, in dem das Feld Position im Dataset dem Feld Position des eingehenden Datensatzes entspricht.
- inputs:
  - $context(position).WorkingHours #  - $1 
  output: WorkingHours

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

In diesem Beispiel wird das Feld WorkingHours dem Ausgabedatensatz hinzugefügt, während BaseSalary nur bedingt verwendet wird, wenn der eingehende Datensatz nicht das Feld BaseSalary enthält (oder der Wert ist Null, wenn das Feld Nullwerte zulässt). Die Anforderung für die Kontextualisierungsdaten erfolgt nicht bei jedem eingehenden Datensatz. Der Mapper fordert das Dataset an und empfängt dann Benachrichtigungen vom DSS zu den Änderungen, während er eine zwischengespeicherte Version des Datasets verwendet.

Es ist möglich, mehrere Datasets zu verwenden:

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

Verwenden Sie dann die gemischten Verweise:

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

Die Eingabeverweise verwenden den Schlüssel des Datasets wie position oder permission. Wenn der Schlüssel in DSS unpraktisch für die Verwendung ist, kann ein Alias definiert werden:

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

Die Konfiguration benennt das Dataset mit dem Schlüssel datasets.parag10.rule42 in position um.