Teilen über


Nachrichtenstruktur in Pipelines der Azure IoT-Datenverarbeitung (Vorschau)

Wichtig

Die von Azure Arc aktivierte Azure IoT Operations Preview befindet sich derzeit in der VORSCHAU. Sie sollten diese Vorschausoftware nicht in Produktionsumgebungen verwenden.

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.

Die Azure IoT-Datenverarbeitung (Vorschau) verarbeitet eingehende Nachrichten, indem sie durch eine Reihe von Pipelinephasen geleitet werden. Jede Stufe in der Pipeline kann die Nachricht umwandeln, bevor sie an die nächste Stufe weitergegeben wird. Dieser Artikel beschreibt die Struktur, die verwendet wird, um die Nachrichten auf ihrem Weg durch die Pipeline darzustellen. Das Verständnis der Nachrichtenstruktur ist wichtig, wenn Sie Pipeline-Stufen zur Verarbeitung Ihrer Telemetrie-Nachrichten konfigurieren.

Das folgende Beispiel zeigt die JSON-Darstellung einer Nachricht, die von einer Pipeline aus Azure IoT MQ Preview gelesen wurde:

{
    "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":[ 
            { 
                "timeStamp":"2022-06-14T16:59:01Z", 
                "tag":"temperature", 
                "numVal":250
            }, 
            { 
                "timeStamp":"2022-06-14T16:59:01Z", 
                "tag":"pressure", 
                "numVal":30 
            }, 
            { 
                "timeStamp":"2022-06-14T16:59:01Z", 
                "tag":"humidity", 
                "numVal":10
            }, 
            { 
                "timeStamp":"2022-06-14T16:59:01Z", 
                "tag":"runningStatus", 
                "boolVal":true
            }
        ] 
    } 
}

Datentypen

Data Processor-Nachrichten unterstützen die folgenden Datentypen:

  • Plan
  • Array
  • Boolean
  • Integer – 64-Bit-Größe
  • Float – 64-Bit-Größe
  • String
  • Binary

System-Daten

Alle Metadaten auf Systemebene werden im systemProperties-Knoten abgelegt:

Eigenschaft Beschreibung des Dataflows type Hinweis
timestamp Ein RFC3339 UTC-Zeitstempel im Millisekundenbereich, der die Zeit angibt, zu der das System die Nachricht erhalten hat. String Dieses Feld wird immer in der Eingabestufe hinzugefügt.
partitionId Die physische Partition der Nachricht. Integer Dieses Feld wird immer in der Eingabestufe hinzugefügt.
partitionKey Der logische Partitionsschlüssel, der in der Eingabestufe definiert wurde. String Dieses Feld wird nur hinzugefügt, wenn Sie einen Partitionsausdruck definiert haben.

Payload

Der Payloadbereich enthält den primären Inhalt der eingehenden Nachricht. Der Inhalt von Abschnitt payload hängt von dem Format ab, das in der Eingabestufe der Pipeline gewählt wurde:

  • Wenn Sie das in der Eingabestufe das Format Raw ausgewählt haben, ist der Payloadinhalt binär.
  • Wenn die Eingabestufe Ihre Daten analysiert, werden die Inhalte der Payload entsprechend dargestellt.

Standardmäßig analysiert die Pipeline die eingehende Payload nicht. Das vorherige Beispiel zeigt analysierte Eingabedaten. Weitere Informationen finden Sie unter Nachrichtenformate.

Metadaten

Alle Metadaten, die nicht Teil der Primärdaten sind, werden zu den wichtigsten Eigenschaften der Nachricht:

Eigenschaft Beschreibung des Dataflows type Hinweis
topic Das Thema, aus dem die Nachricht gelesen wird. String Dieses Feld wird immer bei der Eingabe hinzugefügt.
qos Die Qualität der Dienstebene, die in der Eingabestufe ausgewählt wurde. Integer Dieses Feld wird immer in der Eingabestufe hinzugefügt.
packetId Die Paket-ID der Nachricht. Integer Dieses Feld wird nur hinzugefügt, wenn die Dienstqualität 1 oder 2 ist.
properties Der logische Partitionsschlüssel, der in der Eingabestufe definiert wurde. Plan Der Eigenschaftenbehälter wird immer hinzugefügt.
userProperties Benutzerdefinierte Eigenschaften Array Der Eigenschaftenbehälter wird immer hinzugefügt. Der Inhalt kann leer sein, wenn in der Nachricht keine Benutzereigenschaften vorhanden sind.