Rejestr schematów w usłudze Azure Event Hubs
Rejestr schematów w usłudze Azure Event Hubs ma wiele korzyści. Rejestr schematów pomaga zachować spójność danych, uprościć ewolucję schematu, zwiększyć współdziałanie i zmniejszyć nakład pracy programistycznych w luźno powiązanych przepływach pracy i przepływach pracy przesyłania strumieniowego zdarzeń. Duże organizacje rozproszone korzystające ze scentralizowanego repozytorium schematów mogą używać rejestru schematów w celu osiągnięcia wysoce niezawodnego przetwarzania danych i zapewniania ładu przy niewielkim narzucie operacyjnym.
Rejestry schematów w usłudze Azure Event Hubs spełniają wiele ról w scenariuszach przesyłania strumieniowego zdarzeń opartych na schemacie:
- Udostępnianie repozytorium, w którym można zarejestrować, zarządzać i ewoluować wiele schematów
- Zarządzanie ewolucją schematu za pomocą wielu reguł zgodności
- Przeprowadzanie walidacji danych dla wszystkich danych schematyzowanych
- Udostępnianie bibliotek po stronie klienta (serializatorów i deserializacji) dla producentów i konsumentów
- Zwiększanie wydajności przepływności sieci przez przekazanie identyfikatora schematu zamiast definicji schematu dla każdego ładunku
Rejestry schematów w usłudze Azure Event Hubs są obsługiwane w warstwach Standardowa, Premium i Dedicated.
Składniki rejestru schematów
Rejestr schematów jest częścią przestrzeni nazw usługi Event Hubs, ale może być również używany z innymi brokerami komunikatów lub zdarzeń, w tym z usługami obsługi komunikatów platformy Azure. Obejmuje ona wiele grup schematów, które działają jako logiczne grupowanie schematów i mogą być zarządzane niezależnie od innych grup schematów.
Schematy
W dowolnym luźno powiązanym systemie wiele aplikacji komunikuje się przede wszystkim za pośrednictwem danych. Schematy definiują strukturę danych w sposób deklaratywny. W rezultacie umowa między aplikacjami producentów i konsumentów jest dobrze zdefiniowana, zapewniając niezawodne przetwarzanie na dużą skalę.
Definicja schematu obejmuje:
- Pola: poszczególne elementy danych, takie jak nazwa, tytuł książki lub adres.
- Typy danych: typ danych, które mogą być przechowywane, takie jak ciąg, data/godzina lub tablica.
- Struktura: sposób organizowania pól, takich jak zagnieżdżone struktury lub tablice.
Schematy definiują umowę między producentami a konsumentami. Schemat zdefiniowany w rejestrze schematów usługi Event Hubs pomaga zarządzać kontraktem poza danymi zdarzeń, co eliminuje obciążenie ładunku.
Formaty schematu
Formaty schematu służą do określania sposobu, w jaki schemat jest ustrukturyzowany i zdefiniowany. Każdy format zawiera szczegółowe wskazówki i składnię definiującą strukturę zdarzeń używanych do przesyłania strumieniowego zdarzeń.
Schemat Avro
Apache Avro to popularny system serializacji danych, który korzysta z kompaktowego formatu binarnego i zapewnia możliwości ewolucji schematu.
Aby dowiedzieć się więcej o korzystaniu z formatu schematu Avro z rejestrem schematów usługi Event Hubs, zobacz:
- Jak używać rejestru schematów z platformami Kafka i Avro
- Jak używać rejestru schematów z usługami Event Hubs, .NET, sdk (AMQP) i Avro
Schemat systemu JSON
Schemat JSON (JavaScript Object Notation) to ustandaryzowany sposób definiowania struktury i typów danych zdarzeń. Schemat JSON umożliwia niezawodne i niezawodne użycie formatu danych JSON w strumieniu zdarzeń.
Aby dowiedzieć się więcej na temat używania formatu schematu JSON z rejestrem schematów usługi Event Hubs, zobacz How to use a schema registry with Kafka and JSON schema (Jak używać rejestru schematów platformy Kafka i formatu JSON).
Bufory protokołu
protokołu (Protobuf) to neutralny dla języka, neutralny dla platformy, rozszerzalny mechanizm serializacji danych ustrukturyzowanych. Służy do wydajnego definiowania struktur danych i serializacji ich w kompaktowym formacie binarnym.
Grupy schematów
Grupy schematów to logiczne grupy podobnych schematów, które są zorganizowane zgodnie z kryteriami biznesowymi. Grupa schematów zawiera:
- Wiele definicji schematu.
- Wiele wersji określonego schematu.
- Metadane dotyczące typu schematu i zgodności wszystkich schematów w grupie.
Grupę schematów można traktować jako podzbiór rejestru schematów, który jest zgodny z określoną aplikacją lub jednostką organizacyjną z oddzielnym modelem autoryzacji. Ta dodatkowa granica zabezpieczeń pomaga zapewnić, że metadane i wpisy tajne handlowe nie wyciekają w modelu usług udostępnionych. Umożliwia również właścicielom aplikacji zarządzanie schematami niezależnie od innych aplikacji, które współużytkuje tę samą przestrzeń nazw.
Ewolucja schematu
Schematy muszą ewoluować wraz z wymaganiami biznesowymi producentów i konsumentów. Rejestr schematów obsługuje ewolucję schematu, wprowadzając tryby zgodności na poziomie grupy schematów. Podczas tworzenia grupy schematów można określić tryb zgodności schematów uwzględninych w tej grupie schematów. Po zaktualizowaniu schematu zmiana musi być zgodna z przypisanym trybem zgodności, aby można było utworzyć nową wersję schematu.
Ewolucja schematu jest obsługiwana tylko w przypadku formatu schematu Avro.
Rejestr schematów jest obsługiwany w następujących trybach zgodności.
Zgodność ze starszymi wersjami
Tryb zgodności z poprzednimi wersjami umożliwia kodowi odbiorcy używanie nowej wersji schematu i przetwarzania komunikatów ze starą wersją schematu. Tryb zgodności z poprzednimi wersjami umożliwia wprowadzenie następujących zmian w schemacie:
- Usuwanie pól
- Dodawanie pól opcjonalnych
Zgodność z przekazywaniem
Zgodność z przekazywaniem umożliwia kodowi odbiorcy używanie starej wersji schematu i odczytywanie komunikatów przy użyciu nowego schematu. Tryb zgodności przekazywania umożliwia wprowadzanie następujących zmian w schemacie:
- Dodaj pola
- Usuwanie pól opcjonalnych
Brak zgodności
None
Gdy jest używany tryb zgodności, rejestr schematów nie przeprowadza żadnych testów zgodności podczas aktualizowania schematów.
Zestawy SDK klienta
Do uwzględnienia serializatora Avro można użyć jednej z następujących bibliotek. Za pomocą serializatorów Avro można serializować i deserializować ładunki zawierające identyfikatory schematu dla rejestru schematów i danych zakodowanych w formacie Avro:
Język programowania | SDK | Przykłady |
---|---|---|
.NET | Microsoft.Azure.Data.SchemaRegistry.ApacheAvro | Przykłady dla platformy .NET |
Java | azure-data-schemaregistry-avro | Przykłady w języku Java |
Python | azure-schemaregistry-avroserializer | Przykłady w języku Python |
JavaScript | @azure/schema-registry-avro | Przykłady środowiska NodeJS |
Ponadto poniższe biblioteki są również dostępne na podstawie obciążeń.
- Apache Kafka: uruchom zintegrowane z platformą Kafka serializatory Avro i deserializatory wspierane przez rejestr schematów. Serializator klienta platformy Apache Kafka klienta java dla rejestru schematów może być używany w dowolnym scenariuszu platformy Apache Kafka i z dowolnym wdrożeniem opartym na platformie Apache Kafka lub usługą w chmurze.
- Interfejs wiersza polecenia platformy Azure: aby zapoznać się z przykładem dodawania schematu do grupy schematów przy użyciu interfejsu wiersza polecenia platformy Azure, zobacz Dodawanie schematu do grupy schematów przy użyciu interfejsu wiersza polecenia platformy Azure.
- PowerShell: aby zapoznać się z przykładem dodawania schematu do grupy schematów przy użyciu programu PowerShell, zobacz Dodawanie schematu do grupy schematów przy użyciu programu PowerShell.
Limity
Aby uzyskać limity (takie jak liczba schematów, których można użyć w przestrzeni nazw) usługi Event Hubs, zobacz Event Hubs quotas and limits (Limity i limity usługi Event Hubs).
Kontrola dostępu na podstawie ról na platformie Azure
Aby programowo uzyskać dostęp do rejestru schematów, wykonaj następujące kroki:
- Zarejestruj aplikację w usłudze Microsoft Entra ID.
- Dodaj podmiot zabezpieczeń aplikacji do jednej z następujących ról kontroli dostępu na podstawie ról (RBAC) platformy Azure na poziomie przestrzeni nazw.
Rola | Opis |
---|---|
Właściciel | Odczytywanie, zapisywanie i usuwanie grup i schematów rejestru schematów |
Współautor | Odczytywanie, zapisywanie i usuwanie grup i schematów rejestru schematów |
Czytelnik rejestru schematów | Odczytywanie i wyświetlanie listy grup rejestru schematów i schematów |
Współautor rejestru schematów | Odczytywanie, zapisywanie i usuwanie grup i schematów rejestru schematów |
Aby dowiedzieć się, jak utworzyć i zarejestrować aplikację przy użyciu witryny Azure Portal, zobacz Rejestrowanie aplikacji przy użyciu identyfikatora Entra firmy Microsoft. Potrzebujesz identyfikatora klienta (identyfikatora aplikacji), identyfikatora dzierżawy i wpisu tajnego do użycia w kodzie.
Powiązana zawartość
- Aby dowiedzieć się, jak utworzyć rejestr schematów przy użyciu witryny Azure Portal, zobacz Tworzenie rejestru schematów usługi Event Hubs przy użyciu witryny Azure Portal.
- Zapoznaj się z następującymi przykładami z biblioteki klienta Rejestru schematów Avro: