Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Ingesti streaming berguna untuk memuat data ketika Anda membutuhkan latensi rendah antara ingesti dan query. Pertimbangkan untuk menggunakan konsumsi streaming dalam skenario berikut:
- Latensi kurang dari satu detik diperlukan.
- Untuk mengoptimalkan pemrosesan operasional banyak tabel di mana aliran data ke setiap tabel relatif kecil (beberapa catatan per detik), tetapi volume konsumsi data keseluruhan tinggi (ribuan catatan per detik).
Jika aliran data ke setiap tabel tinggi (lebih dari 4 GB per jam), pertimbangkan untuk menggunakan penyerapan yang diantrekan.
Untuk mempelajari lebih lanjut tentang metode konsumsi yang berbeda, lihat gambaran umum konsumsi data.
Untuk sampel kode berdasarkan versi SDK sebelumnya, lihat artikel yang diarsipkan.
Pilih jenis konsumsi streaming yang sesuai
Dua jenis konsumsi streaming didukung:
| Jenis penyerapan | Deskripsi |
|---|---|
| Koneksi data | Koneksi data Azure Event Hubs, IoT Hub, dan Event Grid dapat menggunakan penyerapan streaming, asalkan diaktifkan pada tingkat kluster. Keputusan untuk menggunakan penyerapan streaming dilakukan sesuai dengan kebijakan penyerapan streaming yang dikonfigurasi pada tabel target. Untuk informasi tentang mengelola koneksi data, lihat Event Hub, IoT Hub, dan Event Grid. |
| Pemasukan Kustom | Penyerapan kustom mengharuskan Anda menulis aplikasi yang menggunakan salah satu pustaka klien Azure Data Explorer. Gunakan informasi dalam artikel ini untuk mengonfigurasi penyerapan kustom. Anda juga dapat menemukan aplikasi contoh penyerapan streaming C?view=azure-data-explorer&preserve-view=true# bermanfaat. |
Gunakan tabel berikut untuk membantu Anda memilih jenis konsumsi yang sesuai untuk lingkungan Anda:
| Kriteria | Koneksi data | Pemasukan Data Kustom |
|---|---|---|
| Keterlambatan data antara inisiasi konsumsi dan data yang tersedia untuk kueri | Penundaan yang lebih lama | Penundaan yang lebih pendek |
| Biaya overhead pengembangan | Pengaturan cepat dan mudah, tidak ada overhead pengembangan | Tingginya beban pengembangan untuk membuat aplikasi yang mengambil data, menangani kesalahan, dan memastikan konsistensi data. |
Catatan
Anda dapat mengelola proses untuk mengaktifkan dan menonaktifkan penyerapan streaming pada kluster Anda menggunakan portal Azure atau secara terprogram di C#. Jika Anda menggunakan C# untuk aplikasi kustom, Anda mungkin merasa lebih nyaman menggunakan pendekatan terprogram.
Prasyarat
- Langganan Azure. Membuat akun Azure gratis.
Pertimbangan kinerja dan operasional
Kontributor utama yang dapat mempengaruhi konsumsi streaming adalah:
- Ukuran VM dan kluster: Performa penyerapan streaming dan kapasitas berkembang dengan peningkatan ukuran VM dan kluster. Jumlah permintaan konsumsi bersamaan dibatasi hingga enam per inti. Misalnya, untuk 16 SKU inti, seperti D14 dan L16, beban maksimal yang didukung adalah 96 permintaan penyerapan bersamaan. Untuk dua SKU inti, seperti D11, beban maksimal yang didukung adalah 12 permintaan penyerapan bersamaan.
- {4}Batas ukuran{2}data: Batas ukuran data untuk permintaan konsumsi streaming adalah 4 MB. Ini termasuk data apa pun yang dibuat untuk kebijakan pembaruan selama proses ingesti.
- Pembaruan skema:Pembaruan skema, seperti pembuatan dan modifikasi tabel dan pemetaan konsumsi, dapat memakan waktu hingga lima menit untuk layanan konsumsi streaming. Untuk informasi selengkapnya lihat Konsumsi streaming dan perubahan skema.
- Kapasitas SSD: Mengaktifkan penyerapan streaming pada kluster, bahkan ketika data tidak diserap melalui streaming, menggunakan bagian dari disk SSD lokal komputer kluster untuk data penyerapan streaming dan mengurangi penyimpanan yang tersedia untuk cache panas.
- Kursor database: Saat menggunakan penyerapan streaming, pembaruan kursor database mungkin tertinggal hingga 60 detik dari ketersediaan data. Penundaan ini timbul dari proses penyegelan latar belakang asinkron yang mentransisikan data dari buffer streaming ke ekstensi penyimpanan kolom permanen. Selama proses ini, kursor (yang digunakan untuk pemrosesan bertahap, ekspor berkelanjutan, atau tampilan materialisasi) diperbarui. Jika beban kerja Anda memerlukan konsistensi kursor secara segera untuk semantik tepat satu kali, pertimbangkan untuk menggunakan penerimaan berantrean sebagai gantinya atau perhitungkan potensi latensi ini dalam logika aplikasi Anda.
Mengaktifkan penyerapan streaming pada kluster Anda
Sebelum dapat menggunakan penyerapan streaming, Anda harus mengaktifkan kemampuan pada kluster Anda dan menentukan kebijakan penyerapan streaming. Anda dapat mengaktifkan kemampuan saat membuat kluster, atau menambahkannya ke kluster yang ada.
Peringatan
Tinjau batasan sebelum mengaktifkan konsumsi streaming.
Mengaktifkan penyerapan streaming saat membuat kluster baru
Anda dapat mengaktifkan penyerapan streaming saat membuat kluster baru menggunakan portal Azure atau secara terprogram di C#.
Saat membuat kluster menggunakan langkah-langkah dalam Membuat kluster dan database Azure Data Explorer, di tab Konfigurasi, pilih Ingesti streaming>Aktif.
Mengaktifkan penyerapan streaming pada kluster yang ada
Jika Anda memiliki kluster yang ada, Anda dapat mengaktifkan penyerapan streaming menggunakan portal Azure atau secara terprogram di C#.
Di portal Azure, buka kluster Azure Data Explorer Anda.
Pada Pengaturan, pilih Konfigurasi.
Di panel Konfigurasi, pilih Aktif untuk mengaktifkan ingesti Streaming.
Pilih Simpan.
Membuat tabel target dan menentukan kebijakan
Buat tabel untuk menerima data penyerapan streaming dan tentukan kebijakan terkait menggunakan portal Azure atau secara terprogram di C#.
Di portal Azure, buka kluster Anda.
Pilih Query.
Untuk membuat tabel yang akan menerima data melalui konsumsi streaming, salin perintah berikut ke panel Kueri dan pilih Jalankan.
.create table TestTable (TimeStamp: datetime, Name: string, Metric: int, Source:string)
Salin salah satu perintah berikut ke panel Kueri dan pilih Jalankan. Ini mendefinisikan kebijakan konsumsi streaming pada tabel yang Anda buat atau pada database yang berisi tabel.
Petunjuk / Saran
Kebijakan yang didefinisikan pada tingkat database berlaku untuk semua tabel yang ada dan masa depan dalam database. Saat Anda mengaktifkan kebijakan di tingkat database, anda tidak perlu mengaktifkannya per tabel.
Untuk menentukan kebijakan pada tabel yang Anda buat, gunakan:
.alter table TestTable policy streamingingestion enableUntuk menentukan kebijakan pada database yang berisi tabel yang Anda buat, gunakan:
.alter database StreamingTestDb policy streamingingestion enable
Membuat aplikasi penyerapan streaming untuk menyerap data ke kluster Anda
Buat aplikasi Anda untuk menyerap data ke kluster Anda menggunakan bahasa pilihan Anda.
Catatan
Untuk ingestasi antrean, lihat panduan untuk Membuat aplikasi untuk mendapatkan data menggunakan ingestasi antrean
using System.IO;
using System.Threading.Tasks;
using Kusto.Data; // Requires Package Microsoft.Azure.Kusto.Data
using Kusto.Data.Common;
using Kusto.Ingest; // Requires Package Microsoft.Azure.Kusto.Ingest
namespace StreamingIngestion;
class Program
{
static async Task Main(string[] args)
{
var clusterPath = "https://<clusterName>.<region>.kusto.windows.net";
var appId = "<appId>";
var appKey = "<appKey>";
var appTenant = "<appTenant>";
// Create Kusto connection string with App Authentication
var connectionStringBuilder = new KustoConnectionStringBuilder(clusterPath)
.WithAadApplicationKeyAuthentication(
applicationClientId: appId,
applicationKey: appKey,
authority: appTenant
);
// Create a disposable client that will execute the ingestion
using var client = KustoIngestFactory.CreateStreamingIngestClient(connectionStringBuilder);
// Ingest from a compressed file
var fileStream = File.Open("MyFile.gz", FileMode.Open);
// Initialize client properties
var ingestionProperties = new KustoIngestionProperties(databaseName: "<databaseName>", tableName: "<tableName>");
// Create source options
var sourceOptions = new StreamSourceOptions { CompressionType = DataSourceCompressionType.gzip, };
// Ingest from stream
await client.IngestFromStreamAsync(fileStream, ingestionProperties, sourceOptions);
}
}
Menonaktifkan penyerapan streaming pada kluster Anda
Peringatan
Menonaktifkan konsumsi streaming mungkin memakan waktu beberapa jam.
Sebelum menonaktifkan penyerapan streaming pada kluster Azure Data Explorer Anda, hilangkan kebijakan penyerapan streaming dari semua tabel dan database yang relevan. Penghapusan kebijakan penyerapan streaming memicu penataan ulang data di dalam kluster Azure Data Explorer Anda. Data pemasukan streaming dipindahkan dari penyimpanan awal ke penyimpanan permanen di penyimpanan kolom (ekstensi atau pecahan). Proses ini dapat memakan waktu antara beberapa detik hingga beberapa jam, tergantung pada jumlah data dalam penyimpanan awal.
Hapus kebijakan penerimaan streaming
Anda dapat menghilangkan kebijakan penyerapan streaming menggunakan portal Azure atau secara terprogram di C#.
Di portal Azure, buka kluster Azure Data Explorer Anda dan pilih Kueri.
Untuk menjatuhkan kebijakan konsumsi streaming dari tabel, salin perintah berikut ke panel Kueri dan pilih Jalankan.
.delete table TestTable policy streamingingestion
Pada Pengaturan, pilih Konfigurasi.
Di panel Konfigurasi, pilih Mati untuk menonaktifkan Streaming ingestion.
Pilih Simpan.
Batasan
- Pemetaan data harus dibuat sebelumnya untuk digunakan dalam konsumsi streaming. Permintaan konsumsi streaming individual tidak mengakomodasi pemetaan data inline.
- Tag ekstensi tidak dapat diatur pada data konsumsi streaming.
-
Memperbarui kebijakan
- Kebijakan pembaruan hanya dapat mereferensikan data yang baru diserap dalam tabel sumber dan bukan data atau tabel lain dalam database
- Plugin Python tidak didukung
- Ketika kebijakan pembaruan dengan kebijakan transaksi gagal, percobaan kembali ke penyerapan batch.
- Untuk kebijakan pembaruan bertingkat yang menyertakan
joinoperator, Anda harus menonaktifkan penyerapan streaming di semua tabel upstream. Misalnya, pertimbangkan kebijakan pembaruan berskala di mana Table1 memperbarui Table2, Table2 memperbarui Table3, dan Table3 memperbarui Table4. Jika kebijakan pembaruan Table4 menyertakan gabungan, Anda harus menonaktifkan penyerapan streaming pada Table1, Table2, dan Table3.
- Jika penyerapan streaming diaktifkan pada kluster yang digunakan sebagai pemimpin untuk database pengikut, penyerapan streaming harus diaktifkan pada kluster berikut juga untuk mengikuti data penyerapan streaming. Hal yang sama berlaku apakah data kluster dibagikan melalui Data Share.