Transformace dat v kanálu Azure IoT Data Processor Preview
Důležité
Azure IoT Operations Preview – Služba Azure Arc je aktuálně ve verzi PREVIEW. Tento software ve verzi Preview byste neměli používat v produkčních prostředích.
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.
Pomocí fáze transformace můžete provádět strukturální transformace zpráv v kanálu, například:
- Přejmenování značek a vlastností
- Unbatch data
- Přidání nových vlastností
- Přidání počítaných hodnot
Fáze transformace používá jq k podpoře transformace dat:
- Každý oddíl kanálu transformuje zprávy nezávisle na sobě.
- Fáze vypíše transformovanou zprávu na základě zadaného výrazu jq.
- Vytvořte výraz jq, který transformuje zprávu na základě struktury příchozí zprávy do fáze.
Požadavky
Pokud chcete nakonfigurovat a použít fázi kanálu transformace, potřebujete:
- Nasazená instance procesoru dat Azure IoT Preview, která zahrnuje volitelnou komponentu Zpracovatel dat.
- Pochopení výrazů jq
Konfigurace fáze
Konfigurace JSON fáze transformace definuje podrobnosti fáze. Pokud chcete fázi vytvořit, můžete pracovat s uživatelským rozhraním založeným na formuláři nebo zadat konfiguraci JSON na kartě Upřesnit :
Jméno | Hodnota | Požaduje se | Příklad |
---|---|---|---|
Název | Název, který se má zobrazit v uživatelském rozhraní zpracovatele dat. | Ano | Transform1 |
Popis | Uživatelsky přívětivý popis toho, co fáze transformace dělá. | No | Rename Tags |
Dotaz | Výraz jq transformace. | Ano | .payload.values |= (map({(.tag): (.numVal // .boolVal)}) | add) |
Vzorová konfigurace
Následující příklad transformace převede pole značek ve vstupní zprávě na objekt, který obsahuje všechny značky a jejich hodnoty:
{
"displayName": "TransformInput",
"description": "Make array of tags into one object",
"query": ".payload.values |= (map({(.tag): (.numVal // .boolVal)}) | add)"
}
Výstup z fáze transformace vypadá jako v následujícím příkladu:
{
"systemProperties": {
"partitionKey": "foo",
"partitionId": 5,
"timestamp": "2023-01-11T10:02:07Z"
},
"qos": 1,
"topic": "/assets/foo/tags/bar",
"properties": {
"responseTopic": "outputs/foo/tags/bar",
"contentType": "application/json",
"payloadFormat": 1,
"correlationData": "base64::Zm9v",
"messageExpiry": 412
},
"userProperties": [
{
"key": "prop1",
"value": "value1"
},
{
"key": "prop2",
"value": "value2"
}
],
"payload": {
"values": {
"temperature": 250,
"pressure": 30,
"humidity": 10,
"runningStatus": true
}
}
}