Freigeben über


Azure-Schemaregistrierung in Azure Event Hubs

Die Schemaregistrierung ist für lose gekoppelte und Ereignisstreaming-Workflows entscheidend, um die Datenkonsistenz aufrechtzuerhalten, die Schemaentwicklung zu vereinfachen, die Interoperabilität zu verbessern und den Entwicklungsaufwand zu verringern. Sie stellt eine sehr zuverlässige Datenverarbeitung und Governance mit geringem Betriebsaufwand in großen verteilten Organisationen mit einem zentralen Repository für Schemas sicher.

Die Schemaregistrierung in Azure Event Hubs erfüllt mehrere Rollen in schemagesteuerten Ereignisstreamingszenarien:

  • Stellt ein Repository bereit, in dem mehrere Schemas registriert, verwaltet und weiterentwickelt werden können.
  • Verwaltete Schemaentwicklung mit mehreren Kompatibilitätsregeln.
  • Führt die Datenüberprüfung für alle schematisierten Daten aus.
  • Stellt clientseitige Bibliotheken (Serialisierer und Deserialisierer) für Producer und Consumer bereit.
  • Verbessert die Effizienz des Netzwerkdurchsatzes, indem die Schema-ID anstelle der Schemadefinition für jede Nutzlast übergeben wird.

Hinweis

Schemaregistrierung wird in den Tarifen „Standard”, „Premium” und „Dedicated” unterstützt.

Komponenten der Schemaregistrierung

Die Schemaregistrierung befindet sich im Kontext des Event Hubs-Namespace, kann jedoch mit allen Azure-Messaging-Diensten oder anderen Nachrichten- oder Ereignisbrokern verwendet werden. Sie umfasst mehrere Schemagruppen, die als logische Gruppierung von Schemas fungieren und unabhängig von anderen Schemagruppen verwaltet werden können.

Das Diagramm, das die Komponenten der Schemaregistrierung in Azure Event Hubs anzeigt.

Schemas

In jedem lose gekoppelten System gibt es mehrere Anwendungen, die miteinander kommunizieren, hauptsächlich über Daten. Schemas dienen als deklarative Methode, um die Struktur der Daten zu definieren, damit der Vertrag zwischen diesen Producer- und Consumeranwendungen gut definiert ist und eine zuverlässige Verarbeitung im großen Stil gewährleistet.

Eine Schemadefinition umfasst:

  • Felder: Name der einzelnen Datenelemente (d. h. Vorname/Nachname, Buchtitel, Adresse).
  • Datentypen: die Art der Daten, die in jedem Feld gespeichert werden können (z. B. Zeichenfolge, Datum-Uhrzeit, Array).
  • Struktur: die Organisation der verschiedenen Felder (d. h. geschachtelte Strukturen oder Arrays).

Schemas definieren den Vertrag zwischen Producern und Consumern. Ein Schema, das in einer Event Hubs-Schemaregistrierung definiert ist, erleichtert die Verwaltung des Vertrags außerhalb der Ereignisdaten und entfernt so den Nutzlastmehraufwand.

Schemaformate

Schemaformate werden verwendet, um die Art und Weise zu bestimmen, in der ein Schema strukturiert und definiert ist, wobei jedes Format spezifische Richtlinien und Syntax zum Definieren der Struktur der Ereignisse festlegt, die für das Ereignisstreaming verwendet werden.

Avro-Schema

Avro ist ein beliebtes Datenserialisierungssystem, das ein kompaktes Binärformat verwendet und Funktionen zur Schemaentwicklung bietet.

Weitere Informationen zur Verwendung des Avro-Schemaformats mit der Event Hubs-Schemaregistrierung finden Sie unter:

JSON-Schema

Das JSON-Schema ist eine standardisierte Methode zum Definieren der Struktur und Datentypen der Ereignisse. Das JSON-Schema ermöglicht die sichere und zuverlässige Verwendung des JSON-Datenformats beim Ereignisstreaming.

Weitere Informationen zur Verwendung des JSON-Schemaformats mit der Event Hubs-Schemaregistrierung finden Sie unter:

Protobuf

Protokollpuffer sind ein sprachneutraler, plattformneutraler, erweiterbarer Mechanismus zum Serialisieren strukturierter Daten. Sie werden verwendet, um Datenstrukturen effizient zu definieren und in ein kompaktes Binärformat zu serialisieren.

Schemagruppen

Eine Schemagruppe ist eine logische Gruppe ähnlicher Schemas, die auf Ihren Geschäftskriterien basiert. Eine Schemagruppe umfasst

  • mehrere Schemadefinitionen,
  • mehrere Versionen eines bestimmten Schemas und
  • Metadaten bezüglich des Schematyps und der Kompatibilität für alle Schemas in der Gruppe.

Eine Schemagruppe kann als Teilmenge der Schemaregistrierung mit einem separaten Autorisierungsmodell betrachtet werden, die an einer bestimmten Anwendung oder Organisationseinheit ausgerichtet ist. Diese zusätzliche Sicherheitsgrenze stellt sicher, dass im Modell für gemeinsam genutzte Dienste keine Metadaten und Geschäftsgeheimnisse durchsickern. Außerdem wird es Anwendungsbesitzern ermöglicht, Schemas unabhängig von anderen Anwendungen zu verwalten, die denselben Namespace verwenden.

Schemaentwicklung

Schemas müssen sich mit den geschäftlichen Anforderungen von Producern und Consumern weiterentwickeln. Die Azure-Schemaregistrierung unterstützt die Schemaentwicklung, indem Kompatibilitätsmodi auf Schemagruppenebene eingeführt werden. Wenn Sie eine Schemagruppe erstellen, können Sie den Kompatibilitätsmodus der Schemas angeben, die Sie in diese Schemagruppe einfügen. Wenn Sie ein Schema aktualisieren, sollte die Änderung dem zugewiesenen Kompatibilitätsmodus entsprechen, und nur dann sollte eine neue Version des Schemas erstellt werden.

Hinweis

Die Schemaentwicklung wird nur für das Avro-Schemaformat unterstützt.

Die Azure-Schemaregistrierung für Event Hubs unterstützt die folgenden Kompatibilitätsmodi.

Abwärtskompatibilität

Der Abwärtskompatibilitätsmodus ermöglicht die Verwendung einer neuen Version des Schemas im Consumercode. Es können aber auch Nachrichten mit einer alten Version des Schemas verarbeitet werden. Wenn Sie den Abwärtskompatibilitätsmodus in einer Schemagruppe verwenden, können die folgenden Änderungen an einem Schema vorgenommen werden.

  • Löschen von Feldern
  • Hinzufügen optionaler Felder

Vorwärtskompatibilität

Die Vorwärtskompatibilität ermöglicht es, eine alte Version des Schemas im Consumercode zu verwenden. Es können jedoch auch Nachrichten mit dem neuen Schema gelesen werden. Der Vorwärtskompatibilitätsmodus ermöglicht die folgenden Änderungen an einem Schema.

  • Hinzufügen von Feldern
  • Löschen optionaler Felder

Keine Kompatibilität

Wenn der Kompatibilitätsmodus None verwendet wird, werden von der Schemaregistrierung keine Kompatibilitätsprüfungen durchgeführt, wenn Sie Schemas aktualisieren.

Client-SDKs

Sie können eine der folgenden Bibliotheken verwenden, um ein Avro-Serialisierungsmodul einzubinden, das Sie verwenden können, um Nutzdaten zu serialisieren und zu deserialisieren, die Schemabezeichner der Schemaregistrierung und Avro-codierte Daten enthalten.

Grenzwerte

Informationen zu Grenzwerten (z. B. zur Anzahl von Schemagruppen in einem Namespace) von Event Hubs finden Sie unter Kontingente und Grenzwerte in Azure Event Hubs.

Rollenbasierte Zugriffssteuerung in Azure

Führen Sie die folgenden Schritte aus, um programmgesteuert auf eine Schemaregistrierung zuzugreifen:

  1. Registrieren Ihrer Anwendung in Microsoft Entra ID
  2. Fügen Sie den Sicherheitsprinzipal der Anwendung einer der folgenden Rollen Azure RBAC-Rollen (Azure Role-Based Access Control) auf Namespaceebene hinzu.
Role Beschreibung
Besitzer Lesen, Schreiben und Löschen von Schemaregistrierungsgruppen und Schemas.
Mitwirkender Lesen, Schreiben und Löschen von Schemaregistrierungsgruppen und Schemas.
Schemaregistrierungsleser Lesen und Auflisten von Schemaregistrierungsgruppen und Schemas.
Mitwirkender der Schemaregistrierung Lesen, Schreiben und Löschen von Schemaregistrierungsgruppen und Schemas.

Anweisungen zum Erstellen und Registrierung einer Anwendung mit dem Azure-Portal finden Sie unter Registrieren einer App bei Microsoft Entra ID. Notieren Sie sich die Client-ID (Anwendungs-ID), die Mandanten-ID und den geheimen Schlüssel, der im Code verwendet wird.

Nächste Schritte