Mengonfigurasi penyerapan streaming di kluster Azure Data Explorer Anda

Konsumsi streaming berguna untuk memuat data ketika Anda membutuhkan latensi rendah antara konsumsi dan kueri. 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 antrean.

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.
Konsumsi Kustom Penyerapan kustom mengharuskan Anda menulis aplikasi yang menggunakan salah satu pustaka klien Azure Data Explorer.
Gunakan informasi dalam topik ini untuk mengonfigurasi konsumsi kustom. Anda juga dapat menemukan aplikasi sampel konsumsi streaming C # bermanfaat.

Gunakan tabel berikut untuk membantu Anda memilih jenis konsumsi yang sesuai untuk lingkungan Anda:

Kriteria Koneksi data Konsumsi Kustom
Keterlambatan data antara inisiasi konsumsi dan data yang tersedia untuk kueri Penundaan yang lebih lama Penundaan yang lebih pendek
Pengembangan overhead Pengaturan cepat dan mudah, tidak ada overhead pengembangan Overhead pengembangan tinggi untuk membuat aplikasi menelan 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, Anda mungkin merasa lebih nyaman menggunakan pendekatan terprogram.

Prasyarat

Pertimbangan kinerja dan operasional

Kontributor utama yang dapat mempengaruhi konsumsi streaming adalah:

  • Ukuran VM dan kluster: Performa penyerapan streaming dan skala kapasitas 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 penyerapan.
  • 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.

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 Penyerapan> streamingAktif.

Aktifkan penyerapan streaming saat membuat kluster di Azure Data Explorer.

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#.

  1. Di portal Azure, buka kluster Azure Data Explorer Anda.

  2. Pada Pengaturan, pilih Konfigurasi.

  3. Di panel Konfigurasi, pilih Terus untuk mengaktifkan konsumsi Streaming.

  4. Pilih Simpan.

    Aktifkan penyerapan streaming di Azure Data Explorer.

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#.

  1. Di portal Azure, buka kluster Anda.

  2. Pilih Kueri.

    Pilih kueri di portal Azure Data Explorer untuk mengaktifkan penyerapan streaming.

  3. 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)
    

    Buat tabel untuk penyerapan streaming ke Azure Data Explorer.

  4. 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.

    Tip

    Kebijakan yang didefinisikan pada tingkat database berlaku untuk semua tabel yang ada dan masa depan dalam database. Saat Anda mengaktifkan kebijakan di tingkat database, tidak perlu mengaktifkannya per tabel.

    • Untuk menentukan kebijakan pada tabel yang Anda buat, gunakan:

      .alter table TestTable policy streamingingestion enable
      
    • Untuk menentukan kebijakan pada database yang berisi tabel yang Anda buat, gunakan:

      .alter database StreamingTestDb policy streamingingestion enable
      

    Tentukan kebijakan penyerapan streaming di Azure Data Explorer.

Membuat aplikasi penyerapan streaming untuk menyerap data ke kluster Anda

Buat aplikasi Anda untuk menyerap data ke kluster Anda menggunakan bahasa pilihan Anda.

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 di kluster Azure Data Explorer Anda, hilangkan kebijakan penyerapan streaming dari semua tabel dan database yang relevan. Penghapusan kebijakan penyerapan streaming memicu penyusunan ulang data di dalam kluster Azure Data Explorer Anda. Data konsumsi streaming dipindahkan dari penyimpanan awal ke penyimpanan permanen di toko kolom (luas atau pecahan). Proses ini dapat memakan waktu antara beberapa detik hingga beberapa jam, tergantung pada jumlah data dalam penyimpanan awal.

Kebijakan konsumsi streaming

Anda dapat menghilangkan kebijakan penyerapan streaming menggunakan portal Azure atau secara terprogram di C#.

  1. Di portal Azure, buka kluster Azure Data Explorer Anda dan pilih Kueri.

  2. Untuk menjatuhkan kebijakan konsumsi streaming dari tabel, salin perintah berikut ke panel Kueri dan pilih Jalankan.

    .delete table TestTable policy streamingingestion
    

    Menghapus kebijakan penyerapan streaming di Azure Data Explorer.

  3. Pada Pengaturan, pilih Konfigurasi.

  4. Di panel Konfigurasi, pilih Terus untuk mengaktifkan konsumsi Streaming.

  5. Pilih Simpan.

    Nonaktifkan penyerapan streaming di Azure Data Explorer.

Batasan

  • Pemetaan data harus dibuat sebelumnya untuk digunakan dalam konsumsi streaming. Permintaan konsumsi streaming individual tidak mengakomodasi pemetaan data inline.
  • Tag tingkat tidak dapat diatur pada data konsumsi streaming.
  • Memperbarui kebijakan Kebijakan pembaruan hanya dapat merujuk data yang baru diserap dalam tabel sumber dan bukan data atau tabel lain dalam database.
  • 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. Sama berlaku apakah data kluster dibagikan melalui Data Share.