Sdílet prostřednictvím


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
    }
  }
}