Grundlegendes zu Nachrichtenschemas
Die Schemaregistrierung, ein Feature, das von der Azure-Geräteregistrierung Preview bereitgestellt wird, ist ein synchronisiertes Repository in der Cloud und am Edge. In der Schemaregistrierung werden die Definitionen von Nachrichten gespeichert, die von Edgeobjekten stammen, und anschließend wird eine API für den Zugriff auf diese Schemas am Edge verfügbar gemacht.
Der Connector für OPC UA kann Nachrichtenschemas erstellen und sie der Schemaregistrierung hinzufügen, oder Kunden können Schemas in die Webbenutzeroberfläche für Vorgänge hochladen oder ARM-/Bicep-Vorlagen verwenden.
Edgedienste verwenden Nachrichtenschemas, um Nachrichten zu filtern und zu transformieren, während sie über Ihr Industrial Edge-Szenario geleitet werden.
Schemas sind Dokumente, die das Format einer Nachricht und deren Inhalt beschreiben, um die Verarbeitung und Kontextualisierung zu ermöglichen.
Nachrichtenschemadefinitionen
Die Schemaregistrierung erwartet die folgenden erforderlichen Felder in einem Nachrichtenschema:
Pflichtfeld | Definition |
---|---|
$schema |
Entweder http://json-schema.org/draft-07/schema# oder Delta/1.0 . In Datenflüssen werden JSON-Schemas für Quellendpunkte und Delta-Schemas für Zielendpunkte verwendet. |
type |
Object |
properties |
Die Nachrichtendefinition. |
Beispielschemas
Die folgenden Beispielschemas enthalten Beispiele zum Definieren von Nachrichtenschemas in jedem Format.
JSON:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"name": "foobarbaz",
"description": "A representation of an event",
"type": "object",
"required": [ "dtstart", "summary" ],
"properties": {
"summary": {
"type": "string"
},
"location": {
"type": "string"
},
"url": {
"type": "string"
},
"duration": {
"type": "string",
"description": "Event duration"
}
}
}
Delta:
{
"$schema": "Delta/1.0",
"type": "object",
"properties": {
"type": "struct",
"fields": [
{ "name": "asset_id", "type": "string", "nullable": false, "metadata": {} },
{ "name": "asset_name", "type": "string", "nullable": false, "metadata": {} },
{ "name": "location", "type": "string", "nullable": false, "metadata": {} },
{ "name": "manufacturer", "type": "string", "nullable": false, "metadata": {} },
{ "name": "production_date", "type": "string", "nullable": false, "metadata": {} },
{ "name": "serial_number", "type": "string", "nullable": false, "metadata": {} },
{ "name": "temperature", "type": "double", "nullable": false, "metadata": {} }
]
}
}
Verwenden von Nachrichtenschemas für Datenflüsse
Nachrichtenschemas werden in allen drei Phasen eines Datenflusses verwendet: Definieren der Quelleingabe, Anwenden von Datentransformationen und Erstellen der Zielausgabe.
Eingabeschema
Jede Datenquelle kann optional ein Nachrichtenschema angeben. Wenn ein Schema für eine Datenquelle definiert ist, werden eingehende Nachrichten, die nicht mit dem Schema übereinstimmen, gelöscht.
Ressourcenquellen verfügen über ein vordefiniertes Nachrichtenschema, das vom Connector für OPC UA erstellt wurde.
Schemas können für MQTT-Quellen hochgeladen werden. Derzeit unterstützt Azure IoT Einsatz JSON für Quellschemas, auch als Eingabeschemas bezeichnet. In der Einsatzumgebung können Sie ein vorhandenes Schema auswählen oder ein Schema hochladen, während Sie eine MQTT-Quelle definieren:
Transformation
Die Einsatz-Benutzeroberfläche verwendet das Eingabeschema als Ausgangspunkt für Ihre Daten und erleichtert die Auswahl von Transformationen basierend auf dem bekannten Eingabemeldungsformat.
Ausgabeschema
Ausgabeschemas sind Datenflusszielen zugeordnet und werden nur für Datenflüsse verwendet, die lokalen Speicher, Fabric, Azure Storage (ADLS Gen2) oder Azure Data Explorer als Zielendpunkt auswählen. Derzeit unterstützt die Azure IoT Einsatz-Benutzeroberfläche nur die Parquet-Ausgabe für Ausgabeschemas.
Hinweis: Das Delta-Schemaformat wird sowohl für die Parquet- als auch für die Delta-Ausgabe verwendet.
Bei diesen Datenflüssen wendet die Betriebsoberfläche alle Transformationen auf das Eingabeschema an und erstellt dann ein neues Schema im Delta-Format. Wenn die benutzerdefinierte Datenflussressource (Dataflow Custom Resource, CR) erstellt wird, enthält sie einen schemaRef
-Wert, der auf das generierte Schema verweist, das in der Schemaregistrierung gespeichert ist.