Registri Skema di Azure Event Hubs
Registri Skema di Azure Event Hubs memiliki banyak manfaat. Registri Skema membantu menjaga konsistensi data, menyederhanakan evolusi skema, meningkatkan interoperabilitas, dan mengurangi upaya pengembangan dalam alur kerja yang digabungkan secara longgar dan streaming peristiwa. Organisasi terdistribusi besar yang menggunakan repositori terpusat untuk skema dapat menggunakan Schema Registry untuk mencapai pemrosesan dan tata kelola data yang sangat andal dengan sedikit overhead operasional.
Registri skema di Azure Event Hubs memenuhi banyak peran dalam skenario streaming peristiwa berbasis skema:
- Menyediakan repositori tempat beberapa skema dapat didaftarkan, dikelola, dan berkembang
- Mengelola evolusi skema dengan beberapa aturan kompatibilitas
- Melakukan validasi data untuk semua data yang diskema
- Menyediakan pustaka sisi klien (serializer dan deserializer) untuk produsen dan konsumen
- Meningkatkan efisiensi throughput jaringan dengan meneruskan ID skema alih-alih definisi skema untuk setiap payload
Registri skema di Azure Event Hubs didukung pada tingkat Standar, Premium, dan Khusus.
Komponen registri skema
Registri skema adalah bagian dari namespace layanan Azure Event Hubs tetapi juga dapat digunakan dengan pesan atau broker peristiwa lainnya, termasuk layanan olahpesan Azure. Ini terdiri dari beberapa grup skema, yang bertindak sebagai pengelompokan skema logis dan dapat dikelola secara independen dari grup skema lain.
Skema
Dalam sistem yang digabungkan secara longgar, beberapa aplikasi berkomunikasi, terutama melalui data. Skema menentukan struktur data dengan cara deklaratif. Akibatnya, kontrak antara aplikasi produsen dan konsumen didefinisikan dengan baik, memastikan pemrosesan yang andal dalam skala besar.
Definisi skema meliputi:
- Bidang: Elemen data individual seperti nama, judul buku, atau alamat.
- Jenis data: Jenis data yang dapat disimpan, seperti string, tanggal-waktu, atau array.
- Struktur: Bagaimana bidang diatur, seperti struktur atau array berlapis.
Skema mendefinisikan kontrak antara produsen dan konsumen. Skema yang ditentukan dalam registri skema Azure Event Hubs membantu mengelola kontrak di luar data peristiwa, yang menghapus overhead payload.
Format skema
Format skema digunakan untuk menentukan cara di mana skema disusun dan ditentukan. Setiap format menguraikan panduan dan sintaks tertentu untuk menentukan struktur peristiwa yang digunakan untuk streaming peristiwa.
Skema Avro
Apache Avro adalah sistem serialisasi data populer yang menggunakan format biner ringkas dan menyediakan kemampuan evolusi skema.
Untuk mempelajari selengkapnya tentang menggunakan format skema Avro dengan registri skema Azure Event Hubs, lihat:
- Cara menggunakan Schema Registry dengan Kafka dan Avro
- Cara menggunakan Registri Skema dengan Event Hubs, .NET, SDK (AMQP), dan Avro
Skema JSON
Skema JSON (JavaScript Object Notation) adalah cara standar untuk menentukan struktur dan jenis data peristiwa. Skema JSON memungkinkan penggunaan format data JSON yang percaya diri dan andal dalam streaming peristiwa.
Untuk mempelajari selengkapnya tentang menggunakan format skema JSON dengan registri skema Azure Event Hubs, lihat Cara menggunakan registri skema dengan skema Kafka dan JSON.
Buffer Protokol
Buffer Protokol (Protobuf) adalah mekanisme netral bahasa, netral platform, dan dapat diperluas untuk menserialisasikan data terstruktur. Ini digunakan untuk menentukan struktur data secara efisien dan menserialisasikannya ke dalam format biner yang ringkas.
Grup skema
Grup skema adalah grup logis dari skema serupa yang diatur sesuai dengan kriteria bisnis Anda. Grup skema menyimpan:
- Beberapa definisi skema.
- Beberapa versi skema tertentu.
- Metadata mengenai jenis skema dan kompatibilitas untuk semua skema dalam grup.
Anda dapat menganggap grup skema sebagai subset registri skema yang selaras dengan aplikasi atau unit organisasi tertentu, dengan model otorisasi terpisah. Batas keamanan tambahan ini membantu memastikan bahwa metadata dan rahasia perdagangan tidak bocor dalam model layanan bersama. Ini juga memungkinkan pemilik aplikasi untuk mengelola skema secara independen dari aplikasi lain yang memiliki namespace yang sama.
Evolusi skema
Skema perlu berkembang dengan persyaratan bisnis produsen dan konsumen. Schema Registry mendukung evolusi skema dengan memperkenalkan mode kompatibilitas di tingkat grup skema. Saat membuat grup skema, Anda dapat menentukan mode kompatibilitas skema yang Anda sertakan dalam grup skema tersebut. Saat Anda memperbarui skema, perubahan harus mematuhi mode kompatibilitas yang ditetapkan sehingga dapat membuat versi baru skema.
Evolusi skema hanya didukung untuk format skema Avro.
Registri Skema didukung dalam mode kompatibilitas berikut.
Kompatibilitas mundur
Mode kompatibilitas mundur memungkinkan kode konsumen untuk menggunakan versi baru skema dan memproses pesan dengan versi lama skema. Mode kompatibilitas mundur memungkinkan perubahan berikut dilakukan pada skema:
- Menghapus bidang
- Menambahkan bidang opsional
Meneruskan kompatibilitas
Kompatibilitas penerusan memungkinkan kode konsumen untuk menggunakan versi skema lama dan membaca pesan dengan skema baru. Mode kompatibilitas penerusan memungkinkan perubahan berikut dilakukan pada skema:
- Tambahkan bidang
- Hapus bidang opsional
Tidak ada kompatibilitas
None
Saat mode kompatibilitas digunakan, Schema Registry tidak melakukan pemeriksaan kompatibilitas saat Anda memperbarui skema.
SDK Klien
Anda dapat menggunakan salah satu pustaka berikut untuk menyertakan serializer Avro. Anda dapat menggunakan serializer Avro untuk menserialisasikan dan mendeserialisasi payload yang berisi pengidentifikasi skema untuk registri skema dan data yang dikodekan Avro:
Bahasa pemrograman | SDK | Sampel |
---|---|---|
.NET | Microsoft.Azure.Data.SchemaRegistry.ApacheAvro | Sampel .NET |
Java | azure-data-schemaregistry-avro | Sampel Java |
Python | azure-schemaregistry-avroserializer | Sampel Python |
JavaScript | @azure/schema-registry-avro | Sampel NodeJS |
Selain itu, pustaka di bawah ini juga tersedia berdasarkan beban kerja Anda.
- Apache Kafka: Jalankan serializer dan deserializer Avro terintegrasi Kafka yang didukung oleh Schema Registry. Serializer klien Apache Kafka klien Java untuk Schema Registry dapat digunakan dalam skenario Apache Kafka apa pun dan dengan penyebaran atau layanan cloud berbasis Apache Kafka.
- Azure CLI: Untuk contoh menambahkan skema ke grup skema dengan menggunakan Azure CLI, lihat Menambahkan skema ke grup skema dengan menggunakan Azure CLI.
- PowerShell: Untuk contoh menambahkan skema ke grup skema dengan menggunakan PowerShell, lihat Menambahkan skema ke grup skema dengan menggunakan PowerShell.
Batas
Untuk batasan (seperti jumlah skema yang dapat Anda gunakan di namespace layanan) Azure Event Hubs, lihat Kuota dan batas Azure Event Hubs.
Kontrol akses berbasis peran Azure
Untuk mengakses registri skema secara terprogram, ikuti langkah-langkah berikut:
- Daftarkan aplikasi Anda di ID Microsoft Entra.
- Tambahkan prinsip keamanan aplikasi ke salah satu peran kontrol akses berbasis peran (RBAC) Azure berikut di tingkat namespace layanan.
Peran | Deskripsi |
---|---|
Pemilik | Membaca, menulis, dan menghapus grup dan skema registri skema |
Kontributor | Membaca, menulis, dan menghapus grup dan skema registri skema |
Pembaca Schema Registry | Membaca dan mencantumkan grup dan skema registri |
Kontributor Schema Registry | Membaca, menulis, dan menghapus grup dan skema registri skema |
Untuk mempelajari cara membuat dan mendaftarkan aplikasi dengan menggunakan portal Azure, lihat Mendaftarkan aplikasi dengan ID Microsoft Entra. Anda memerlukan ID klien (ID aplikasi), ID penyewa, dan rahasia untuk digunakan dalam kode.
Konten terkait
- Untuk mempelajari cara membuat registri skema dengan menggunakan portal Azure, lihat Membuat registri skema Azure Event Hubs dengan menggunakan portal Azure.
- Lihat sampel berikut dari pustaka klien Schema Registry Avro: