Transformace dat v kanálu zpracovatele dat
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.
Pokud je dostupná obecně dostupná verze, budete muset nasadit novou instalaci operací Azure IoT, nebudete moct upgradovat instalaci ve verzi Preview.
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 zpracovatele dat, která zahrnuje volitelnou součást zpracovatele 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
}
}
}