Schemaregister i Azure Event Hubs
Schema registry i Azure Event Hubs ger dig en lagringsplats för att använda och hantera scheman i schemadrivna scenarier för händelseströmning.
Schemaregisterkomponenter
Ett Event Hubs-namnområde kan vara värd för schemagrupper tillsammans med händelsehubbar (eller Kafka-ämnen). Det är värd för ett schemaregister och kan ha flera schemagrupper. Trots att det finns i Azure Event Hubs kan schemaregistret användas universellt med alla Azure-meddelandetjänster och alla andra meddelande- eller händelsekoordinatorer. Var och en av dessa schemagrupper är en separat säker lagringsplats för en uppsättning scheman. Grupper kan justeras med ett visst program eller en organisationsenhet.
Schemagrupper
Schemagrupp är en logisk grupp med liknande scheman baserat på dina affärsvillkor. En schemagrupp kan innehålla flera versioner av ett schema. Kompatibilitetsinställningen för en schemagrupp kan hjälpa till att säkerställa att nyare schemaversioner är bakåtkompatibla.
Säkerhetsgränsen som införts av grupperingsmekanismen säkerställer att affärshemligheter inte oavsiktligt läcker via metadata i situationer där namnområdet delas mellan flera partner. Det gör det också möjligt för programägare att hantera scheman oberoende av andra program som delar samma namnområde.
Scheman
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. Ett schema har ett namn, skriver (exempel: post, matris och så vidare.), kompatibilitetsläge (ingen, framåt, bakåt, fullständig) och serialiseringstyp (endast Avro för tillfället). Du kan skapa flera versioner av ett schema och hämta och använda en specifik version av ett schema.
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:
- Så här använder du schemaregister med Kafka och Avro
- Så här använder du Schema-registret med Event Hubs .NET SDK (AMQP) och Avro.
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:
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.
- .NET – Microsoft.Azure.Data.SchemaRegistry.ApacheAvro
- Java – azure-data-schemaregistry-avro
- Python – azure-schemaregistry-avroserializer
- JavaScript - @azure/schema-registry-avro
- Apache Kafka – Kör Kafka-integrerade Apache Avro-serialiserare och deserializers som backas upp av Azure Schema Registry. Java-klientens Apache Kafka-klient serialiserare för Azure Schema Registry kan användas i alla Apache Kafka-scenarion och med alla Apache Kafka-baserade® distributioner eller molntjänster.
- Azure CLI – Ett exempel på hur du lägger till ett schema i en schemagrupp med CLI finns i Lägga till ett schema i en schemagrupp med CLI.
- PowerShell – Ett exempel på hur du lägger till ett schema i en schemagrupp med hjälp av PowerShell finns i Lägga till ett schema i en schemagrupp med hjälp av PowerShell.
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:
- Registrera ditt program i Microsoft Entra-ID
- Lägg till programmets säkerhetsobjekt i någon av följande Rollbaserade åtkomstkontrollroller i Azure (Azure RBAC) 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
- Information om hur du skapar ett schemaregister med hjälp av Azure Portal finns i Skapa ett Event Hubs-schemaregister med hjälp av Azure Portal.
- Se följande Schema Registry Avro-klientbiblioteksexempel .