Dela via


Schemaregister i Azure Event Hubs

Schema registry är avgörande i löst kopplade arbetsflöden och händelseströmningsarbetsflöden för att upprätthålla datakonsekvens, förenkla schemautvecklingen, förbättra samverkan och minska utvecklingsinsatsen. Det säkerställer mycket tillförlitlig databehandling och styrning med lite driftkostnader i stora distribuerade organisationer med en central lagringsplats för scheman.

Schema registry i Azure Event Hubs uppfyller flera roller i schemadrivna scenarier för händelseströmning –

  • Tillhandahåller en lagringsplats där flera scheman kan registreras, hanteras och utvecklas.
  • Hanterad schemautveckling med flera kompatibilitetsregler.
  • Utför dataverifiering för alla schematiserade data.
  • Tillhandahåller bibliotek på klientsidan (serialiserare och deserialiserare) för producenter och konsumenter.
  • Förbättrar effektiviteten i nätverkets dataflöde genom att skicka schema-ID i stället för schemadefinitionen för varje nyttolast.

Kommentar

Schemaregistret stöds på nivåerna Standard, Premium och Dedicated.

Schemaregisterkomponenter

Schemaregistret finns i kontexten för Event Hubs-namnområdet, men det kan användas med alla Azure-meddelandetjänster eller annan meddelande- eller händelsekoordinator. Den består av flera schemagrupper som fungerar som en logisk gruppering av scheman och kan hanteras oberoende av andra schemagrupper.

Diagram som visar komponenterna i Schema Registry i Azure Event Hubs.

Scheman

I alla löst kopplade system finns det flera program som kommunicerar med varandra, främst via data. Scheman fungerar som ett deklarativt sätt att definiera datastrukturen så att kontraktet mellan dessa producent- och konsumentprogram är väldefinierat, vilket säkerställer tillförlitlig bearbetning i stor skala.

En schemadefinition innehåller -

  • Fält – namnet på de enskilda dataelementen (det vill: för-/efternamn, bokrubrik, adress).
  • Datatyper – den typ av data som kan lagras i varje fält (till exempel sträng, datum-tid, matris).
  • Struktur – organisationen av de olika fälten (dvs. kapslade strukturer eller matriser).

Scheman definierar kontraktet mellan producenter och konsumenter. Ett schema som definieras i ett Event Hubs-schemaregister hjälper till att hantera kontraktet utanför händelsedata, vilket tar bort nyttolasten.

Schemaformat

Schemaformat används för att fastställa hur ett schema är strukturerat och definierat, med varje format som beskriver specifika riktlinjer och syntax för att definiera strukturen för de händelser som ska användas för händelseströmning.

Avro-schema

Avro är ett populärt data serialiseringssystem som använder ett kompakt binärt format och tillhandahåller funktioner för schemautveckling.

Mer information om hur du använder Avro-schemaformat med Event Hubs Schema Registry finns i:

JSON-schema

JSON-schema är ett standardiserat sätt att definiera händelsernas struktur och datatyper. JSON-schema möjliggör säker och tillförlitlig användning av JSON-dataformatet vid händelseströmning.

Mer information om hur du använder JSON-schemaformat med Event Hubs Schema Registry finns i:

Protobuf

Protokollbuffertar är en språkneutral, plattformsneutral, utökningsbar mekanism för serialisering av strukturerade data. Den används för att effektivt definiera datastrukturer och serialisera dem till ett kompakt binärt format.

Schemagrupper

Schemagrupper är logiska grupper med liknande scheman baserat på dina affärsvillkor. En schemagrupp innehåller

  • definition av flera scheman,
  • flera versioner av ett specifikt schema och
  • metadata om schematyp och kompatibilitet för alla scheman i gruppen.

Du kan betrakta schemagrupper som en delmängd av schemaregistret, i linje med ett visst program eller en viss organisationsenhet, med en separat auktoriseringsmodell. Den här extra säkerhetsgränsen säkerställer att metadata och affärshemligheter inte läcker i modellen för delade tjänster. Det gör det också möjligt för programägare att hantera scheman oberoende av andra program som delar samma namnområde.

Schemautveckling

Scheman måste utvecklas med affärskrav för producenter och konsumenter. Azure Schema Registry stöder schemautveckling genom att införa kompatibilitetslägen på schemagruppsnivå. När du skapar en schemagrupp kan du ange kompatibilitetsläget för de scheman som du inkluderar i den schemagruppen. När du uppdaterar ett schema ska ändringen följa det tilldelade kompatibilitetsläget och sedan bara skapa en ny version av schemat.

Kommentar

Schemautveckling stöds endast för Avro-schemaformat.

Azure Schema Registry for Event Hubs stöder följande kompatibilitetslägen.

Bakåtkompatibilitet

Bakåtkompatibilitetsläget gör att konsumentkoden kan använda en ny version av schemat, men det kan bearbeta meddelanden med den gamla versionen av schemat. När du använder bakåtkompatibilitetsläge i en schemagrupp kan följande ändringar göras i ett schema.

  • Ta bort fält.
  • Lägg till valfria fält.

Vidarebefordra kompatibilitet

Med vidarebefordran av kompatibilitet kan konsumentkoden använda en gammal version av schemat, men den kan läsa meddelanden med det nya schemat. Med läget Vidarebefordra kompatibilitet kan följande ändringar göras i ett schema.

  • Lägg till fält
  • Ta bort valfria fält

Ingen kompatibilitet

När kompatibilitetsläget None används gör schemaregistret inga kompatibilitetskontroller när du uppdaterar scheman.

Klient-SDK: er

Du kan använda något av följande bibliotek för att inkludera en Avro-serialiserare som du kan använda för att serialisera och deserialisera nyttolaster som innehåller Schema Registry-schemaidentifierare och Avro-kodade data.

Gränser

Begränsningar (till exempel antal schemagrupper i ett namnområde) för Event Hubs finns i kvoter och gränser för Event Hubs.

Azure rollbaserad åtkomstkontroll

Följ dessa steg för att komma åt ett schemaregister programmatiskt:

  1. Registrera ditt program i Microsoft Entra-ID
  2. Lägg till programmets säkerhetsobjekt i någon av följande Roller för Azure RBAC (rollbaserad åtkomstkontroll) på namnområdesnivå .
Roll Beskrivning
Ägare Läsa, skriva och ta bort schemaregistergrupper och scheman.
Deltagare Läsa, skriva och ta bort schemaregistergrupper och scheman.
Schema Registry Reader Läsa och lista schemaregistergrupper och scheman.
Schemaregisterdeltagare Läsa, skriva och ta bort schemaregistergrupper och scheman.

Anvisningar om hur du skapar registrering av ett program med hjälp av Azure Portal finns i Registrera en app med Microsoft Entra-ID. Anteckna klient-ID :t (program-ID), klient-ID och hemligheten som ska användas i koden.

Nästa steg