Anreichern von Daten mithilfe von Dataflows
Wichtig
Diese Seite enthält Anweisungen zum Verwalten der Komponenten von Azure IoT Einsatz mithilfe von Kubernetes-Bereitstellungsmanifesten. Diese Option befindet sich in der Vorschau. Dieses Feature wird mit einigen Einschränkungen bereitgestellt und sollte nicht für Produktionsworkloads verwendet werden.
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 Sie diese Datasets basierend auf Bedingungen abfragen, die sich auf die Felder des eingehenden Datensatzes beziehen. Diese Funktion ermöglicht dynamische Interaktionen. Daten aus diesen Datasets können verwendet werden, um Informationen in den Ausgabefeldern zu ergänzen und während des Zuordnungsprozesses an komplexen Berechnungen teilzunehmen.
Um Beispieldaten in den Zustandsspeicher zu laden, verwenden Sie die Zustandsspeicher-CLI.
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 das Referenzdataset, das im Zustandsspeicher von „Azure IoT Einsatz“ gespeichert ist, mithilfe eines Schlüsselwerts zu, der auf einer Bedingung basiert, die in der Zuordnungskonfiguration angegeben ist. Die Schlüsselnamen im Zustandsspeicher entsprechen einem Dataset in der Datenflusskonfiguration.
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 Zustandsspeicher, der 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 FeldPosition
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 null
ist, 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 Zustandsspeicher 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(permissions).NightShift' // - $2
]
Die Eingabeverweise verwenden den Schlüssel des Datasets wie position
oder permission
. Wenn der Schlüssel im Zustandsspeicher unpraktisch für die Verwendung ist, können Sie ein Alias definieren:
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.