Aracılığıyla paylaş


Azure Event Hubs'da Şema Kayıt Defteri

Azure Event Hubs'daki Schema Registry'nin birçok avantajı vardır. Schema Registry, veri tutarlılığını korumaya, şema evrimini basitleştirmeye, birlikte çalışabilirliği iyileştirmeye ve gevşek bir şekilde bağlanmış ve olay akışı iş akışlarında geliştirme çabasını azaltmaya yardımcı olur. Şemalar için merkezi bir depo kullanan büyük dağıtılmış kuruluşlar, çok az işlem yüküyle son derece güvenilir veri işleme ve idare elde etmek için Schema Registry'yi kullanabilir.

Azure Event Hubs'daki şema kayıt defterleri, şema temelli olay akışı senaryolarında birçok rolü yerine getirmektedir:

  • Birden çok şemanın kaydedilebileceği, yönetilebileceği ve geliştirilebileceği bir depo sağlayın
  • Birden çok uyumluluk kuralıyla şema evrimi yönetme
  • Tüm şemalanmış veriler için veri doğrulama gerçekleştirme
  • Üreticiler ve tüketiciler için istemci tarafı kitaplıkları (serileştiriciler ve seri durumdan çıkarıcılar) sağlama
  • Her yük için şema tanımı yerine şema kimliğini geçirerek ağ aktarım hızı verimliliğini artırın

Azure Event Hubs'daki şema kayıt defterleri Standart, Premium ve Ayrılmış katmanlarda desteklenir.

Şema kayıt defteri bileşenleri

Şema kayıt defteri Event Hubs ad alanının bir parçasıdır, ancak Azure mesajlaşma hizmetleri de dahil olmak üzere diğer ileti veya olay aracılarıyla da kullanılabilir. Birden çok şema grubundan oluşur ve bu gruplar, şemaların mantıksal gruplandırma görevi görür ve diğer şema gruplarından bağımsız olarak yönetilebilir.

Azure Event Hubs'da şema kayıt defterinin bileşenlerini gösteren diyagram.

Şemalar

Gevşek bir şekilde bağlanmış herhangi bir sistemde, birden çok uygulama öncelikli olarak veriler aracılığıyla iletişim kurar. Şemalar, verilerin yapısını bildirim temelli bir şekilde tanımlar. Sonuç olarak, üretici ve tüketici uygulamaları arasındaki sözleşme iyi tanımlanmıştır ve uygun ölçekte güvenilir işleme sağlar.

Şema tanımı şunları içerir:

  • Alanlar: Ad, kitap başlığı veya adres gibi tek tek veri öğeleri.
  • Veri türleri: Dize, tarih-saat veya dizi gibi depolanabilen veri türü.
  • Yapı: Alanların iç içe yerleştirilmiş yapılar veya diziler gibi nasıl düzenlendiği.

Şemalar, üreticiler ve tüketiciler arasındaki sözleşmeyi tanımlar. Event Hubs şema kayıt defterinde tanımlanan bir şema, sözleşmenin olay verilerinin dışında yönetilmesine yardımcı olur ve bu da yük yükünü kaldırır.

Şema biçimleri

Şema biçimleri, bir şemanın nasıl yapılandırıldığını ve tanımlandığını belirlemek için kullanılır. Her biçim, olay akışı için kullanılan olayların yapısını tanımlamaya yönelik belirli yönergeleri ve söz dizimini özetler.

Avro şeması

Apache Avro , kompakt ikili biçim kullanan ve şema evrimi özellikleri sağlayan popüler bir veri serileştirme sistemidir.

Event Hubs şema kayıt defteriyle Avro şema biçimini kullanma hakkında daha fazla bilgi edinmek için bkz:

JSON şeması

JSON (JavaScript Nesne Gösterimi) şeması, olayların yapısını ve veri türlerini tanımlamanın standartlaştırılmış bir yoludur. JSON şeması, olay akışında JSON veri biçiminin güvenli ve güvenilir bir şekilde kullanılmasını sağlar.

Event Hubs şema kayıt defteriyle JSON şema biçimini kullanma hakkında daha fazla bilgi edinmek için bkz . Kafka ve JSON şemasıyla şema kayıt defterini kullanma.

Protokol Arabellekleri

Protokol Arabellekleri (Protobuf), yapılandırılmış verileri serileştirmeye yönelik dilden bağımsız, platformdan bağımsız, genişletilebilir bir mekanizmadır. Veri yapılarını verimli bir şekilde tanımlamak ve bunları kompakt bir ikili biçimde serileştirmek için kullanılır.

Şema grupları

Şema grupları, iş ölçütlerinize göre düzenlenmiş benzer şemalardan oluşan mantıksal gruplardır. Şema grubu şu değerleri barındırıyor:

  • Birden çok şema tanımı.
  • Belirli bir şemanın birden çok sürümü.
  • Gruptaki tüm şemalar için şema türü ve uyumluluğuyla ilgili meta veriler.

Bir şema grubunu, ayrı bir yetkilendirme modeliyle belirli bir uygulama veya kuruluş birimiyle uyumlu olan şema kayıt defterinin bir alt kümesi olarak düşünebilirsiniz. Bu ek güvenlik sınırı, meta verilerin ve ticari gizli dizilerin paylaşılan hizmetler modelinde sızdırılmamasını sağlamaya yardımcı olur. Ayrıca uygulama sahiplerinin şemaları aynı ad alanını paylaşan diğer uygulamalardan bağımsız olarak yönetmesine de olanak tanır.

Şema evrimi

Şemaların üreticilerin ve tüketicilerin iş gereksinimleriyle birlikte gelişmesi gerekir. Schema Registry, şema grubu düzeyinde uyumluluk modlarını kullanıma sunarak şema evrimini destekler. Bir şema grubu oluşturduğunuzda, bu şema grubuna eklediğiniz şemaların uyumluluk modunu belirtebilirsiniz. Bir şemayı güncelleştirdiğinizde, şemanın yeni bir sürümünü oluşturabilmesi için değişikliğin atanan uyumluluk moduyla uyumlu olması gerekir.

Şema evrimi yalnızca Avro şema biçimi için desteklenir.

Schema Registry aşağıdaki uyumluluk modlarında desteklenir.

Geriye dönük uyumluluk

Geriye dönük uyumluluk modu, tüketici kodunun şemanın yeni bir sürümünü kullanmasına ve iletileri şemanın eski bir sürümüyle işlemesine olanak tanır. Geriye dönük uyumluluk modu, şemada aşağıdaki değişikliklerin yapılmasını sağlar:

  • Alanları silme
  • İsteğe bağlı alanlar ekleme

İletme uyumluluğu

İleriye dönük uyumluluk, tüketici kodunun eski bir şema sürümünü kullanmasına ve yeni şemayla iletileri okumasına olanak tanır. İleriye dönük uyumluluk modu, şemada aşağıdaki değişikliklerin yapılmasını sağlar:

  • Alan ekle
  • İsteğe bağlı alanları silme

Uyumluluk yok

None Uyumluluk modu kullanıldığında, şemaları güncelleştirdiğinizde Schema Registry herhangi bir uyumluluk denetimi yapmaz.

İstemci SDK'ları

Avro seri hale getiricisi eklemek için aşağıdaki kitaplıklardan birini kullanabilirsiniz. Şema kayıt defteri ve Avro ile kodlanmış veriler için şema tanımlayıcıları içeren yükleri seri hale getirmek ve seri durumdan çıkarmak için Avro serileştiricilerini kullanabilirsiniz:

Programlama dili SDK Örnekler
.NET Microsoft.Azure.Data.SchemaRegistry.ApacheAvro .NET Örnekleri
Java azure-data-schemaregistry-avro Java örnekleri
Python azure-schemaregistry-avroserializer Python örnekleri
JavaScript @azure/schema-registry-avro NodeJS örnekleri

Ayrıca, aşağıdaki kitaplıklar iş yüklerinize göre de kullanılabilir.

  • Apache Kafka: Schema Registry tarafından desteklenen Kafka ile tümleşik Avro serileştiricilerini ve seri durumdan çıkarıcıları çalıştırın. Java istemcisinin Schema Registry için Apache Kafka istemci seri hale getiricisi, herhangi bir Apache Kafka senaryosunda ve apache Kafka tabanlı dağıtım veya bulut hizmetinde kullanılabilir.
  • Azure CLI: Azure CLI kullanarak şema grubuna şema ekleme örneği için bkz . Azure CLI kullanarak şema grubuna şema ekleme.
  • PowerShell: PowerShell kullanarak bir şema grubuna şema ekleme örneği için bkz . PowerShell kullanarak şema grubuna şema ekleme.

Sınırlar

Event Hubs'ın sınırları (ad alanında kullanabileceğiniz şema sayısı gibi) için bkz . Event Hubs kotaları ve sınırları.

Azure rol tabanlı erişim denetimi

Şema kayıt defterine program aracılığıyla erişmek için şu adımları izleyin:

  1. Uygulamanızı Microsoft Entra Id'ye kaydedin.
  2. Uygulamanın güvenlik sorumlusunu ad alanı düzeyinde aşağıdaki Azure rol tabanlı erişim denetimi (RBAC) rollerinden birine ekleyin.
Rol Açıklama
Sahip Şema kayıt defteri gruplarını ve şemalarını okuma, yazma ve silme
Katılımcı Şema kayıt defteri gruplarını ve şemalarını okuma, yazma ve silme
Şema Kayıt Defteri Okuyucusu Şema kayıt defteri gruplarını ve şemalarını okuma ve listeleme
Şema Kayıt Defteri Katkıda Bulunanı Şema kayıt defteri gruplarını ve şemalarını okuma, yazma ve silme

Azure portalını kullanarak uygulama oluşturmayı ve kaydetmeyi öğrenmek için bkz . Microsoft Entra Id ile uygulama kaydetme. kodda kullanmak için istemci kimliğine (uygulama kimliği), kiracı kimliğine ve gizli diziye ihtiyacınız vardır.