Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Importante
Questa pagina include istruzioni per la gestione dei componenti di Operazioni IoT di Azure usando i manifesti di distribuzione kubernetes, disponibile in ANTEPRIMA. Questa funzionalità viene fornita con diverse limitazioni e non deve essere usata per i carichi di lavoro di produzione.
Vedere le condizioni per l'utilizzo supplementari per le anteprime di Microsoft Azure per termini legali aggiuntivi che si applicano a funzionalità di Azure in versione beta, in anteprima o in altro modo non ancora disponibili a livello generale.
Suggerimento
I grafici del flusso di dati offrono un linguaggio di mapping espanso con funzioni aggiuntive, trasformazioni componibili e funzionalità come il routing condizionale e l'aggregazione basata sul tempo. Per i nuovi progetti che usano endpoint MQTT, Kafka o OpenTelemetry, vedere Trasformare i dati con mapping nei grafici del flusso di dati.
Usare il linguaggio di mapping del flusso di dati per trasformare i dati nelle operazioni IoT di Azure. La sintassi è un modo semplice, ma potente, per definire i mapping che trasformano i dati da un formato a un altro. Questo articolo offre una panoramica del linguaggio di mapping dei flussi di dati e dei concetti chiave.
Il mapping consente di trasformare i dati da un formato all'altro. Si consideri il record di input seguente:
{
"Name": "Grace Owens",
"Place of birth": "London, TX",
"Birth Date": "19840202",
"Start Date": "20180812",
"Position": "Analyst",
"Office": "Kent, WA"
}
Confrontarlo con il record di output:
{
"Employee": {
"Name": "Grace Owens",
"Date of Birth": "19840202"
},
"Employment": {
"Start Date": "20180812",
"Position": "Analyst, Kent, WA",
"Base Salary": 78000
}
}
Nel record di output vengono apportate le modifiche seguenti ai dati del record di input:
-
Campi rinominati: il
Birth Datecampo è oraDate of Birth. -
Campi ristrutturati: sia
NamecheDate of Birthsono raggruppati nella nuovaEmployeecategoria. -
Campo eliminato: Il campo
Place of birthè stato rimosso perché non è presente nell'output. -
Campo aggiunto: il
Base Salarycampo è un nuovo campo nellaEmploymentcategoria. -
Valori dei campi modificati o uniti: il campo di
Positionnell'output combina il campoPositioneOfficedell'input.
Le trasformazioni vengono ottenute tramite mapping, che in genere comporta:
- Definizione di input: identificazione dei campi nei record di input usati.
- Definizione di output: specificazione di dove e come sono organizzati i campi di input nei record di output.
-
Conversione (facoltativo): modifica dei campi di input in modo che si adattino ai campi di output.
expressionè obbligatorio quando più campi di input vengono combinati in un singolo campo di output.
Il mapping seguente è un esempio:
{
inputs: [
'BirthDate'
]
output: 'Employee.DateOfBirth'
}
{
inputs: [
'Position' // - - - - $1
'Office' // - - - - $2
]
output: 'Employment.Position'
expression: '$1 + ", " + $2'
}
{
inputs: [
'$context(position).BaseSalary'
]
output: 'Employment.BaseSalary'
}
Le mappe di esempio:
-
Mapping uno-a-uno:
BirthDateè mappato direttamente aEmployee.DateOfBirthsenza conversione. -
Mappatura molti-a-uno: combina
PositioneOfficein un campoEmployment.Positionsingolo. La formula di conversione ($1 + ", " + $2) unisce questi campi in una stringa formattata. -
Dati contestuali:
BaseSalaryviene aggiunto da un set di dati contestuale denominatoposition.
Riferimenti ai campi
I riferimenti ai campi mostrano come specificare i percorsi nell'input e nell'output usando la notazione del punto come Employee.DateOfBirth o l'accesso ai dati da un set di dati contestuale tramite $context(position).
Proprietà dei metadati
Quando si usa MQTT o Kafka come origine o destinazione, è possibile accedere a proprietà di metadati come argomenti, proprietà utente e intestazioni nei mapping. Per informazioni dettagliate sulla sintassi ed esempi, vedere Campi dei metadati nelle informazioni di riferimento sulle espressioni.
Selettori del set di dati di contestualizzazione
Questi selettori consentono ai mapping di integrare dati aggiuntivi da database esterni, detti set di dati di contestualizzazione. Per informazioni dettagliate, vedere Set di dati di contestualizzazione nelle espressioni di riferimento e Arricchire i dati usando i flussi di dati.
Filtraggio dei record
Il filtraggio dei record comporta l'impostazione di condizioni per selezionare i record da elaborare o eliminare.
Notazione con il punto
I percorsi dei campi del flusso di dati usano la notazione punto per fare riferimento a campi annidati, con l'escape per i caratteri speciali. Per le regole e gli esempi di sintassi completi, vedere Notazione del punto ed escape nei riferimenti alle espressioni.
Evasione
Per le regole sull'escape di punti e caratteri speciali nei percorsi dei campi, vedere Notazione con punti ed escape nel riferimento alle espressioni.
Caratteri jolly
I caratteri jolly usano l'asterisco (*) per trovare la corrispondenza con più campi contemporaneamente, semplificando i mapping quando l'output è simile all'input. Per la sintassi con caratteri jolly completi, le regole di posizionamento, i caratteri jolly multi-input e il comportamento di specializzazione, vedere Caratteri jolly nel riferimento alle espressioni.
Ultimo valore noto
È possibile tenere traccia dell'ultimo valore noto di una proprietà. Aggiungi il suffisso al campo di input con ? $last per acquisire l'ultimo valore noto del campo. Quando una proprietà manca un valore in un payload di input successivo, viene eseguito il mapping dell'ultimo valore noto al payload di output.
Si consideri ad esempio la seguente mappatura:
inputs: [
'Temperature ? $last'
]
output: 'Thermostat.Temperature'
In questo esempio viene rilevato l'ultimo valore noto di Temperature . Se un payload di input successivo non contiene un Temperature valore, nell'output viene usato l'ultimo valore noto.
Contenuti correlati
- Riferimenti alle espressioni : operatori, funzioni, tipi di dati e regole di conversione dei tipi per tutte le trasformazioni del flusso di dati.
- Filtrare i dati in un flusso di dati
- Arricchire dati usando flussi di dati
- Creare un flusso di dati