Koneksi data Azure Event Hubs
Azure Event Hubs adalah platform streaming data besar dan layanan penyerapan peristiwa. Azure Data Explorer menawarkan penyerapan berkelanjutan dari Azure Event Hubs yang dikelola pelanggan.
Alur penyerapan Azure Event Hubs mentransfer peristiwa ke Azure Data Explorer dalam beberapa langkah. Pertama, Anda membuat pusat aktivitas di portal Azure. Kemudian buat tabel target di Azure Data Explorer tempat data dalam format tertentu, diserap menggunakan properti penyerapan yang disediakan. Koneksi Azure Event Hubs perlu mengetahui perutean peristiwa. Data dapat disematkan dengan properti yang dipilih sesuai dengan properti sistem peristiwa. Buat koneksi ke Azure Event Hubs untuk membuat pusat aktivitas dan mengirim peristiwa. Proses ini dapat dikelola melalui portal Microsoft Azure, secara terprogram dengan C# atau Python, atau dengan templat Azure Resource Manager.
Untuk informasi umum tentang penyerapan data di Azure Data Explorer, lihat Gambaran umum penyerapan data Azure Data Explorer.
Opsi autentikasi koneksi data Azure Data Explorer
Koneksi data berbasis Identitas Terkelola (disarankan): Menggunakan koneksi data berbasis identitas terkelola adalah cara paling aman untuk menyambungkan ke sumber data. Ini memberikan kontrol penuh atas kemampuan untuk mengambil data dari sumber data. Penyiapan koneksi data menggunakan identitas terkelola memerlukan langkah-langkah berikut:
- Tambahkan identitas terkelola ke kluster Anda.
- Berikan izin ke identitas terkelola pada sumber data. Untuk mengambil data dari Azure Event Hubs, identitas terkelola harus memiliki izin Penerima Data Azure Event Hubs.
- Tetapkan kebijakan identitas terkelola pada database target.
- Buat koneksi data menggunakan autentikasi identitas terkelola untuk mengambil data.
Perhatian
Jika izin identitas terkelola dihapus dari sumber data, koneksi data tidak akan berfungsi lagi dan tidak akan dapat mengambil data dari sumber data.
Koneksi data berbasis kunci: Jika autentikasi identitas terkelola tidak ditentukan untuk koneksi data, koneksi secara otomatis default ke autentikasi berbasis kunci. Koneksi berbasis kunci mengambil data menggunakan string koneksi sumber daya, seperti azure Event Hubs string koneksi. Azure Data Explorer mendapatkan string koneksi sumber daya yang ditentukan dan menyimpannya dengan aman. String koneksi kemudian digunakan untuk mengambil data dari sumber data.
Perhatian
Jika kunci diputar, koneksi data tidak akan berfungsi lagi dan tidak akan dapat mengambil data dari sumber data. Untuk memperbaiki masalah, perbarui atau buat ulang koneksi data.
Format data
- Data dibaca dari pusat aktivitas dalam bentuk objek EventData .
- Lihat format yang didukung.
Catatan
- Penyerapan dari Azure Event Hubs tidak mendukung format RAW.
- Azure Event Hubs Schema Registry dan Avro tanpa skema tidak didukung.
- Data dapat dipadatkan menggunakan algoritma pemadatan
gzip
. Anda dapat menentukanCompression
secara dinamis menggunakan properti penyerapan, atau di pengaturan Koneksi Data statis. - Kompresi data tidak didukung untuk format biner (Avro, ApacheAvro, Parquet, ORC, dan W3CLOGFILE).
- Pengodean kustom dan properti sistem yang disematkan tidak didukung dengan format biner dan data terkompresi.
- Saat menggunakan format biner (Avro, ApacheAvro, Parquet, ORC, dan W3CLOGFILE) dan pemetaan penyerapan, urutan bidang dalam definisi pemetaan penyerapan harus cocok dengan urutan kolom yang sesuai dalam tabel.
Properti Azure Event Hubs
Azure Data Explorer mendukung properti Azure Event Hubs berikut ini:
- Sekumpulan properti penyerapan tertutup, yang membantu merutekan peristiwa ke tabel yang relevan.
- Sekumpulan properti sistem peristiwa tertutup, yang dapat disematkan dalam data berdasarkan pemetaan tertentu.
Catatan
Menyerap properti kustom Azure Event Hubs, yang digunakan untuk mengaitkan metadata dengan peristiwa, tidak didukung. Jika Anda perlu menyerap properti kustom, kirim properti tersebut ke dalam isi data peristiwa. Untuk informasi selengkapnya, lihat Menyerap properti kustom.
Properti penyerapan
Sifat penyerapan menginstruksikan proses konsumsi, di mana untuk rute data, dan bagaimana memprosesnya. Anda dapat menentukan properti penyerapan dari penyerapan peristiwa menggunakan EventData.Properties. Anda dapat mengatur properti berikut:
Catatan
Nama properti peka huruf besar/kecil.
Properti | Deskripsi |
---|---|
Database | Nama peka huruf besar/kecil dari database target. Secara default, data diserap ke dalam database target yang terkait dengan koneksi data. Gunakan properti ini untuk mengambil alih database default dan mengirim data ke database lain. Untuk melakukannya, Anda harus terlebih dahulu menyiapkan koneksi sebagai koneksi multi-database. |
Tabel | Nama peka huruf besar/kecil dari tabel target yang ada. Mengambil alih Table yang diatur pada panel Data Connection . |
Format | Format data. Mengambil alih Data format yang diatur pada panel Data Connection . |
IngestionMappingReference | Nama pemetaan penyerapan yang ada yang akan digunakan. Mengambil alih Column mapping yang diatur pada panel Data Connection . |
Kompresi | Pemadatan data, None (default), atau gzip . |
Pengodean | Pengodean data, defaultnya adalah UTF8. Dapat berupa .NET pengodean yang didukung . |
Tag | Daftar tag untuk dikaitkan dengan data yang terserap, diformat sebagai string array JSON Ada implikasi performa saat menggunakan tag. |
RawHeaders | Menunjukkan bahwa sumber peristiwa adalah Kafka dan Azure Data Explorer harus menggunakan deserialisasi array byte untuk membaca properti perutean lainnya. Nilai diabaikan. |
Catatan
Hanya peristiwa yang diantrekan setelah Anda membuat koneksi data yang diserap, kecuali tanggal mulai pengambilan kustom disediakan. Bagaimanapun, periode lookback tidak dapat melebihi periode retensi Event Hub yang sebenarnya.
Perutean aktivitas
Saat membuat koneksi data ke kluster, Anda dapat menentukan perutean tempat mengirim data yang diserap. Perutean default adalah ke tabel target yang ditentukan dalam string koneksi yang terkait dengan database target. Perutean default untuk data Anda juga disebut sebagai perutean statis. Anda dapat menentukan opsi perutean dan pemrosesan alternatif untuk data Anda dengan mengatur satu atau beberapa properti data peristiwa yang disebutkan dalam paragraf sebelumnya.
Catatan
Koneksi data Azure Event Hubs akan mencoba memproses semua peristiwa yang dibacanya dari Pusat Aktivitas, dan setiap peristiwa yang tidak dapat diproses karena alasan apa pun akan dilaporkan sebagai kegagalan penyerapan. Baca tentang cara memantau penyerapan Azure Data Explorer di sini.
Merutekan data peristiwa ke database alternatif
Merutekan data ke database alternatif nonaktif secara default. Untuk mengirim data ke database lain, Anda harus terlebih dahulu mengatur koneksi sebagai koneksi multi-database. Fitur ini dapat diaktifkan di portal Azure portal Azure, dengan SDK manajemen C# atau Python, atau dengan templat ARM. Pengguna, grup, perwakilan layanan, atau identitas terkelola yang digunakan untuk mengizinkan perutean database setidaknya harus memiliki peran kontributor dan izin tulis pada kluster.
Untuk menentukan database alternatif, atur properti Penyerapan database.
Peringatan
Menentukan database alternatif tanpa mengatur koneksi sebagai koneksi data multi-database akan menyebabkan penyerapan gagal.
Merutekan data peristiwa ke tabel alternatif
Untuk menentukan tabel alternatif untuk setiap peristiwa, atur properti Tabel, Format, Pemadatan, dan pemetaan penyerapan. Koneksi secara dinamis merutekan data yang diserap seperti yang ditentukan dalam EventData.Properties, mengganti properti statis untuk peristiwa ini.
Contoh berikut menunjukkan kepada Anda cara mengatur detail hub peristiwa dan mengirim data metrik cuaca ke database alternatif (MetricsDB) dan tabel (WeatherMetrics). Data dalam format JSON dan pemetaan1 telah ditentukan sebelumnya pada tabel WeatherMetrics.
// This sample uses Azure.Messaging.EventHubs which is a .Net Framework library.
await using var producerClient = new EventHubProducerClient("<eventHubConnectionString>");
// Create the event and add optional "dynamic routing" properties
var eventData = new EventData(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(
new { TimeStamp = DateTime.UtcNow, MetricName = "Temperature", Value = 32 }
)));
eventData.Properties.Add("Database", "MetricsDB");
eventData.Properties.Add("Table", "WeatherMetrics");
eventData.Properties.Add("Format", "json");
eventData.Properties.Add("IngestionMappingReference", "mapping1");
eventData.Properties.Add("Tags", "['myDataTag']");
var events = new[] { eventData };
// Send events
await producerClient.SendAsync(events);
Pemetaan properti sistem Azure Event Hubs
Properti sistem adalah bidang yang diatur oleh layanan Azure Event Hubs, pada saat peristiwa diantrekan. Koneksi data Azure Event Hubs Azuer Data Explorer dapat menyematkan sekumpulan properti sistem yang telah ditentukan ke dalam data yang diserap ke dalam tabel berdasarkan pemetaan tertentu.
Catatan
- Menyematkan properti sistem didukung untuk format json dan tabular (yaitu
JSON
, , ,MultiJSON
CSV
,TSV
,PSV
,SCsv
,SOHsv
TSVE
). - Saat menggunakan format yang tidak didukung (i.e. TXT atau format terkompresi seperti
Parquet
,Avro
dll.) data masih akan diserap, tetapi properti akan diabaikan. - Menyematkan properti sistem tidak didukung saat pemadatan pesan Pusat Aktivitas diatur. Dalam skenario seperti itu, kesalahan yang sesuai akan dipancarkan dan data tidak akan diserap.
- Untuk data bertabel, properti sistem hanya didukung untuk pesan peristiwa rekaman tunggal.
- Untuk data json, properti sistem juga didukung untuk pesan peristiwa beberapa rekaman. Dalam kasus seperti itu, properti sistem hanya ditambahkan ke rekaman pertama pesan peristiwa.
- Untuk
CSV
pemetaan, properti ditambahkan di awal rekaman dalam urutan yang tercantum dalam pembuatan koneksi data. Jangan mengandalkan urutan properti ini, karena dapat berubah di masa mendatang. - Untuk pemetaan
JSON
, properti ditambahkan sesuai dengan nama properti dalam tabel Properti sistem.
Layanan Azure Event Hubs mengekspos properti sistem berikut:
Properti | Jenis Data | Deskripsi |
---|---|---|
x-opt-enqueued-time | datetime |
Waktu UTC ketika peristiwa tersebut dimasukkan dalam antrean |
x-opt-sequence-number | long |
Jumlah urutan logis peristiwa dalam aliran partisi hub peristiwa |
x-opt-offset | string |
Offset peristiwa dari aliran partisi pusat aktivitas. Pengidentifikasi offset unik dalam partisi aliran pusat aktivitas |
x-opt-publisher | string |
Nama penerbit, jika pesan dikirim ke titik akhir penerbit |
x-opt-partition-key | string |
Kunci partisi dari partisi yang sesuai yang menyimpan acara |
Saat Anda bekerja dengan hub peristiwa IoT Central , Anda juga dapat menyematkan properti sistem IoT Hub dalam payload. Untuk daftar lengkapnya, lihat Properti sistem IoT Hub.
Jika Anda memilih Properti sistem peristiwa di bagian tabel Sumber Data, Anda harus menyertakan properti dalam skema tabel dan pemetaan.
Contoh pemetaan skema
Contoh pemetaan skema tabel
Jika data Anda mennyertakan tiga kolom (TimeStamp
, MetricName
, dan Value
) dan properti yang Anda sertakan adalah x-opt-enqueued-time
dan x-opt-offset
, buat atau ubah skema tabel dengan menggunakan perintah ini:
.create-merge table TestTable (TimeStamp: datetime, MetricName: string, Value: int, EventHubEnqueuedTime:datetime, EventHubOffset:string)
Contoh pemetaan CSV
Jalankan perintah berikut untuk menambahkan data ke awal catatan. Catat nilai ordinal.
.create table TestTable ingestion csv mapping "CsvMapping1"
'['
' { "column" : "TimeStamp", "Properties":{"Ordinal":"2"}},'
' { "column" : "MetricName", "Properties":{"Ordinal":"3"}},'
' { "column" : "Value", "Properties":{"Ordinal":"4"}},'
' { "column" : "EventHubEnqueuedTime", "Properties":{"Ordinal":"0"}},'
' { "column" : "EventHubOffset", "Properties":{"Ordinal":"1"}}'
']'
Contoh pemetaan JSON
Data ditambahkan dengan menggunakan pemetaan properti sistem. Jalankan perintah ini:
.create table TestTable ingestion json mapping "JsonMapping1"
'['
' { "column" : "TimeStamp", "Properties":{"Path":"$.TimeStamp"}},'
' { "column" : "MetricName", "Properties":{"Path":"$.MetricName"}},'
' { "column" : "Value", "Properties":{"Path":"$.Value"}},'
' { "column" : "EventHubEnqueuedTime", "Properties":{"Path":"$.x-opt-enqueued-time"}},'
' { "column" : "EventHubOffset", "Properties":{"Path":"$.x-opt-offset"}}'
']'
Pemetaan skema untuk file Azure Event Hubs Capture Avro
Salah satu cara untuk menggunakan data Azure Event Hubs adalah dengan mengambil peristiwa melalui Azure Event Hubs di Azure Blob Storage atau Azure Data Lake Storage. Anda kemudian dapat menyerap file pengambilan saat ditulis menggunakan Koneksi Data Event Grid di Azure Data Explorer.
Skema file pengambilan berbeda dari skema peristiwa asli yang dikirim ke Azure Event Hubs. Anda harus merancang skema tabel tujuan dengan mengingat perbedaan ini. Secara khusus, payload peristiwa diwakili dalam file pengambilan sebagai array byte, dan array ini tidak secara otomatis didekodekan oleh koneksi data Azure Data Explorer Event Grid. Untuk informasi selengkapnya tentang skema file untuk data pengambilan Azure Event Hubs Avro, lihat Menjelajahi file Avro yang diambil di Azure Event Hubs.
Untuk mendekode payload peristiwa dengan benar:
- Petakan
Body
bidang peristiwa yang diambil ke kolom jenisdynamic
dalam tabel tujuan. - Terapkan kebijakan pembaruan yang mengonversi array byte menjadi string yang dapat dibaca menggunakan fungsi unicode_codepoints_to_string().
Menyerap properti kustom
Saat menyerap peristiwa dari Azure Event Hubs, data diambil dari bagian body
objek data peristiwa. Namun, properti kustom Azure Event Hubs didefinisikan di properties
bagian objek dan tidak diserap. Untuk menyerap properti pelanggan, Anda harus menyematkannya ke dalam data di body
bagian objek.
Contoh berikut membandingkan objek data peristiwa yang berisi properti customProperty
kustom seperti yang didefinisikan oleh Azure Event Hubs (kiri) dengan properti yang disematkan yang diperlukan untuk penyerapan (kanan).
{
"body":{
"value": 42
},
"properties":{
"customProperty": "123456789"
}
}
{
"body":{
"value": 42,
"customProperty": "123456789"
}
}
Anda dapat menggunakan salah satu metode berikut untuk menyematkan properti kustom ke dalam data di body
bagian objek data peristiwa:
- Di Azure Event Hubs, saat membuat objek data peristiwa, sematkan properti kustom sebagai bagian dari data di bagian
body
objek. - Gunakan Azure Stream Analytics untuk memproses peristiwa dari pusat aktivitas dan menyematkan properti kustom dalam data peristiwa. Dari Azure Stream Analytics, Anda dapat menyerap data secara asli menggunakan konektor output Azure Data Explorer, atau merutekan data ke hub peristiwa lain dan dari sana ke kluster Anda.
- Gunakan Azure Functions untuk menambahkan properti kustom lalu menyerap data.
Koneksi data Azure Event Hubs lintas wilayah
Untuk performa terbaik, buat semua sumber daya berikut di wilayah yang sama dengan kluster. Jika tidak ada alternatif lain, pertimbangkan untuk menggunakan tingkat Premium atau Dedicated Event Hubs. Perbandingan tingkat Azure Event Hubs dapat ditemukan di sini.
Membuat pusat aktivitas
Jika Anda belum memilikinya, Buat pusat aktivitas. Menyambungkan ke pusat aktivitas dapat dikelola melalui portal Azure, secara terprogram dengan C# atau Python, atau dengan templat Azure Resource Manager.
Catatan
- Kemampuan untuk menambahkan partisi secara dinamis setelah membuat pusat aktivitas hanya tersedia dengan tingkat Event Hubs Premium dan Dedicated. Pertimbangkan skala jangka panjang saat mengatur jumlah partisi.
- Grup konsumen harus unik per konsumen. Buat grup konsumen yang didedikasikan untuk koneksi Azure Data Explorer.
Mengirim aktivitas
Lihat aplikasi sampel yang menghasilkan data dan mengirimkannya ke pusat aktivitas.
Menyiapkan solusi pemulihan bencana geografis
Pusat aktivitas menawarkan solusi pemulihan bencana geografis.
Azure Data Explorer tidak mendukung Alias
namespace layanan pusat aktivitas. Untuk menerapkan pemulihan bencana geografis dalam solusi Anda, buat dua koneksi data pusat aktivitas: satu untuk namespace utama dan satu untuk namespace sekunder. Azure Data Explorer mendengarkan kedua koneksi pusat aktivitas.
Catatan
Pengguna bertanggung jawab untuk menerapkan failover dari namespace layanan utama ke namespace layanan sekunder.
Konten terkait
- Menyerap data dari hub event ke Azure Data Explorer
- Membuat koneksi data pusat aktivitas untuk Azure Data Explorer menggunakan C#
- Membuat koneksi data pusat aktivitas untuk Azure Data Explorer menggunakan Python
- Membuat koneksi data pusat aktivitas untuk Azure Data Explorer menggunakan templat Azure Resource Manager
- Mengelola koneksi data Azure Event Hubs di kluster gratis Anda
- Menyerap dan mengkueri log Azure Monitor dengan Azure Data Explorer