Schemaregister in Azure Event Hubs
Schema Registry in Azure Event Hubs biedt u een opslagplaats voor het gebruik en beheer van schema's in schemagestuurde scenario's voor gebeurtenisstreaming.
Schemaregisteronderdelen
Een Event Hubs-naamruimte kan schemagroepen hosten naast Event Hubs (of Kafka-onderwerpen). De naamruimte werkt als host voor een schemaregister en kan meerdere schemagroepen bevatten. Ondanks het feit dat het schemaregister wordt gehost in Azure Event Hubs, kan het universeel worden gebruikt met alle Azure-berichtenservices en alle andere berichten- of gebeurtenissenbrokers. Elk van deze schemagroepen is een afzonderlijk beveiligbare opslagplaats voor een reeks schema's. Groepen kunnen worden afgestemd op een bepaalde app of een organisatie-eenheid.
Schemagroepen
Een schemagroep is een logische groep van gelijksoortige schema's op basis van uw bedrijfscriteria. Een schemagroep kan meerdere versies van een schema bevatten. U kunt er met de instelling voor het afdwingen van compatibiliteit voor een schemagroep voor zorgen dat nieuwere schemaversies achterwaarts compatibel zijn.
De beveiligingsgrens die wordt opgelegd door het groeperingsmechanisme zorgt ervoor dat handelsgeheimen niet per ongeluk via metagegevens worden gelekt in situaties waarbij de naamruimte wordt gedeeld met meerdere partners. Ook kunnen eigenaren van apps op deze manier schema's beheren, onafhankelijk van andere apps die dezelfde naamruimte delen.
Schema's
Schema's definiëren het contract tussen producenten en consumenten. Met een schema dat is gedefinieerd in een Event Hubs-schemaregister kan het contract worden beheerd buiten gebeurtenisgegevens, waardoor de overhead van de nettolading teniet wordt gedaan. Een schema heeft een naam, type (bijvoorbeeld record, matrix enzovoort), compatibiliteitsmodus (geen, voorwaarts, achterwaarts, volledig) en serialisatietype (momenteel alleen Avro). U kunt meerdere versies van een schema maken en een specifieke versie van een schema ophalen en gebruiken.
Schema-indelingen
Schema-indelingen worden gebruikt om de manier te bepalen waarop een schema is gestructureerd en gedefinieerd, waarbij elke indeling specifieke richtlijnen en syntaxis bevat voor het definiëren van de structuur van de gebeurtenissen die worden gebruikt voor gebeurtenisstreaming.
Avro-schema
Avro is een populair systeem voor gegevensserialisatie dat gebruikmaakt van een compacte binaire indeling en die mogelijkheden biedt voor de ontwikkeling van schema's.
Zie voor meer informatie over het gebruik van avro-schema-indeling met Event Hubs Schema Registry:
- Schemaregister gebruiken met Kafka en Avro
- Schemaregister gebruiken met Event Hubs .NET SDK (AMQP) en Avro.
JSON-schema
JSON-schema is een gestandaardiseerde manier om de structuur en gegevenstypen van de gebeurtenissen te definiëren. JSON-schema maakt het vertrouwen en betrouwbare gebruik van de JSON-gegevensindeling in gebeurtenisstreaming mogelijk.
Zie voor meer informatie over het gebruik van JSON-schema-indeling met Event Hubs Schema Registry:
Ontwikkeling van schema's
Schema's moeten zich ontwikkelen met de bedrijfsvereiste van producenten en consumenten. Azure Schema Registry ondersteunt de ontwikkeling van schema's door compatibiliteitsmodi op schemagroepniveau te introduceren. Wanneer u een schemagroep maakt, kunt u de compatibiliteitsmodus opgeven van de schema's die u in die schemagroep opneemt. Wanneer u een schema bijwerkt, moet de wijziging voldoen aan de toegewezen compatibiliteitsmodus en wordt alleen een nieuwe versie van het schema gemaakt.
Notitie
Schemaontwikkeling wordt alleen ondersteund voor avro-schema-indeling.
Azure Schema Registry voor Event Hubs biedt ondersteuning voor de volgende compatibiliteitsmodi.
Compatibiliteit met eerdere versies
Met de compatibiliteitsmodus voor eerdere versies kan de consumentencode een nieuwe versie van het schema gebruiken, maar kan berichten met een oude versie van het schema worden verwerkt. Wanneer u de achterwaartse compatibiliteitsmodus in een schemagroep gebruikt, kunnen de volgende wijzigingen in een schema worden aangebracht.
- Velden verwijderen.
- Voeg optionele velden toe.
Compatibiliteit doorsturen
Compatibiliteit doorsturen stelt de consumentencode in staat om een oude versie van het schema te gebruiken, maar kan berichten lezen met het nieuwe schema. Met de compatibiliteitsmodus voor doorsturen kunnen de volgende wijzigingen worden aangebracht in een schema.
- Velden toevoegen
- Optionele velden verwijderen
Geen compatibiliteit
Wanneer de None
compatibiliteitsmodus wordt gebruikt, voert het schemaregister geen compatibiliteitscontroles uit wanneer u schema's bijwerkt.
Client-SDK 's
U kunt een van de volgende bibliotheken gebruiken om een Avro-serializer op te nemen, die u kunt gebruiken om nettoladingen met schemaregisterschema-id's en avro-gecodeerde gegevens te serialiseren en deserialiseren.
- .NET: Microsoft.Azure.Data.SchemaRegistry.ApacheAvro
- Java: azure-data-schemaregistry-avro
- Python: azure-schemaregistry-avroserializer
- JavaScript - @azure/schema-registry-avro
- Apache Kafka: voer met Kafka geïntegreerde Apache Avro-programma's voor serialisatie en deserialisatie uit die worden ondersteund door het Azure-schemaregister. Het Apache Kafka-clientserialisatieprogramma van de Java-client voor het Azure-schemaregister kan in elk Apache Kafka-scenario en met elke Apache Kafka®-implementatie of cloudservice worden gebruikt.
- Azure CLI : zie Een schema toevoegen aan een schemagroep met cli voor een voorbeeld van het toevoegen van een schema aan een schemagroep met behulp van CLI.
- PowerShell : zie Een schema toevoegen aan een schemagroep met behulp van PowerShell voor een voorbeeld van het toevoegen van een schema aan een schemagroep met behulp van PowerShell.
Limieten
Zie Event Hubs-quota en -limieten voor limieten (bijvoorbeeld: aantal schemagroepen in een naamruimte) van Event Hubs.
Op rollen gebaseerd toegangsbeheer van Azure
Volg deze stappen om programmatisch toegang te krijgen tot een schemaregister:
- Uw toepassing registreren in Microsoft Entra-id
- Voeg de beveiligingsprincipaal van de toepassing toe aan een van de volgende Azure RBAC-rollen (op rollen gebaseerd toegangsbeheer) op naamruimteniveau.
Rol | Beschrijving |
---|---|
Eigenaar | Schemaregistergroepen en schema's lezen, schrijven en verwijderen. |
Inzender | Schemaregistergroepen en schema's lezen, schrijven en verwijderen. |
Schemaregisterlezer | Schemaregistergroepen en schema's lezen en weergeven. |
Inzender schemaregister | Schemaregistergroepen en schema's lezen, schrijven en verwijderen. |
Zie Een app registreren bij Microsoft Entra ID voor instructies voor het registreren van een toepassing met behulp van Azure Portal. Noteer de client-id (app-id), tenant-id en het geheim die in de code moeten worden gebruikt.
Volgende stappen
- Zie Een Event Hubs-schemaregister maken met behulp van Azure Portal voor meer informatie over het maken van een schemaregister met behulp van Azure Portal.
- Zie de volgende voorbeelden van de Avro-clientbibliotheek voor schemaregisters.