Azure Veri Gezgini kümenizde akış alımını yapılandırma

Akış alımı, veri alımı ile sorgu arasında düşük gecikme süresine ihtiyaç duyduğunuzda verileri yüklemek için kullanışlıdır. Aşağıdaki senaryolarda akış alımını kullanmayı göz önünde bulundurun:

  • Bir saniyeden kısa gecikme süresi gereklidir.
  • Her tabloya veri akışının görece küçük (saniye başına birkaç kayıt) olduğu ancak genel veri alımı hacminin yüksek olduğu (saniyede binlerce kayıt) birçok tablonun operasyonel işlemesini iyileştirmek için.

Her tabloya veri akışı yüksekse (saatte 4 GB'ın üzerinde), toplu alma kullanmayı göz önünde bulundurun.

Farklı alım yöntemleri hakkında daha fazla bilgi edinmek için bkz. veri alımına genel bakış.

Uygun akış alımı türünü seçin

İki akış alımı türü desteklenir:

Alım türü Description
Olay Hub'ı veya IoT Hub Hub'lar tablo akışı veri kaynakları olarak yapılandırılır.
Bunları ayarlama hakkında bilgi için bkz. Event Hub veya IoT Hub veri alımı yöntemleri.
Özel alma Özel alım, Azure Veri Gezgini istemci kitaplıklarından birini kullanan bir uygulama yazmanızı gerektirir.
Özel alımı yapılandırmak için bu konudaki bilgileri kullanın. C# akış alımı örnek uygulamasını da yararlı bulabilirsiniz.

Ortamınıza uygun alım türünü seçmenize yardımcı olması için aşağıdaki tabloyu kullanın:

Ölçütü Olay Hub'ı / IoT Hub Özel Alma
Veri alımı başlatma ile sorgu için kullanılabilir veriler arasındaki veri gecikmesi Daha uzun gecikme Daha kısa gecikme
Geliştirme yükü Hızlı ve kolay kurulum, geliştirme yükü yok Bir uygulama oluşturmak için yüksek geliştirme yükü verileri alır, hataları işler ve veri tutarlılığını güvence altına alır

Not

Azure portal kullanarak veya C# dilinde program aracılığıyla kümenizde akış alımını etkinleştirme ve devre dışı bırakma işlemini yönetebilirsiniz. Özel uygulamanız için C# kullanıyorsanız, programlama yaklaşımını kullanarak daha kullanışlı bulabilirsiniz.

Önkoşullar

Performans ve operasyonel konular

Akış alımını etkileyebilecek başlıca katkıda bulunanlar şunlardır:

  • VM ve küme boyutu: Akış alımı performansı ve kapasite ölçekleri, artan VM ve küme boyutlarıyla sağlanır. Eş zamanlı alım isteklerinin sayısı çekirdek başına altı ile sınırlıdır. Örneğin, D14 ve L16 gibi 16 çekirdekli SKU'lar için desteklenen en yüksek yük 96 eşzamanlı alma isteğidir. D11 gibi iki çekirdek SKU için desteklenen en yüksek yük 12 eşzamanlı alma isteğidir.
  • Veri boyutu sınırı: Akış alma isteğinin veri boyutu sınırı 4 MB'tır. Bu, veri alımı sırasında güncelleştirme ilkeleri için oluşturulan tüm verileri içerir.
  • Şema güncelleştirmeleri: Tabloların oluşturulması ve değiştirilmesi ve alım eşlemeleri gibi şema güncelleştirmeleri, akış alma hizmeti için beş dakikaya kadar sürebilir. Daha fazla bilgi için bkz . Akış alımı ve şema değişiklikleri.
  • SSD kapasitesi: Akış yoluyla veri alınmıyor olsa bile bir kümede akış alımını etkinleştirmek, veri akışı için küme makinelerinin yerel SSD diskinin bir bölümünü kullanır ve sık erişimli önbellek için kullanılabilir depolama alanını azaltır.

Kümenizde akış alımını etkinleştirme

Akış alımını kullanabilmeniz için önce kümenizde özelliği etkinleştirmeniz ve bir akış alımı ilkesi tanımlamanız gerekir. Kümeyi oluştururken özelliği etkinleştirebilir veya mevcut bir kümeye ekleyebilirsiniz.

Uyarı

Akış alımını etkinleştirmeden önce sınırlamaları gözden geçirin.

Yeni küme oluştururken akış alımını etkinleştirme

Azure portal kullanarak veya C# dilinde program aracılığıyla yeni bir küme oluştururken akış alımını etkinleştirebilirsiniz.

Azure Veri Gezgini kümesi ve veritabanı oluşturma adımlarını kullanarak küme oluştururken, Yapılandırmalar sekmesinde AkışalımıOn'u> seçin.

Enable streaming ingestion while creating a cluster in Azure Data Explorer.

Mevcut kümede akış alımını etkinleştirme

Mevcut bir kümeniz varsa, Azure portal kullanarak veya C# dilinde program aracılığıyla akış alımını etkinleştirebilirsiniz.

  1. Azure portal Azure Veri Gezgini kümenize gidin.

  2. Ayarlar'daYapılandırmalar'ı seçin.

  3. Yapılandırmalar bölmesinde Açık'ı seçerek Akış alımını etkinleştirin.

  4. Kaydet’i seçin.

    Turn on streaming ingestion in Azure Data Explorer.

Hedef tablo oluşturma ve ilkeyi tanımlama

Akış alma verilerini almak için bir tablo oluşturun ve Azure portal kullanarak veya C# dilinde program aracılığıyla ilgili ilkesini tanımlayın.

  1. Azure portal kümenize gidin.

  2. Sorgu'yu seçin.

    Select query in the Azure Data Explorer portal to enable streaming ingestion.

  3. Akış alımı yoluyla verileri alacak tabloyu oluşturmak için aşağıdaki komutu Sorgu bölmesine kopyalayın ve Çalıştır'ı seçin.

    .create table TestTable (TimeStamp: datetime, Name: string, Metric: int, Source:string)
    

    Create a table for streaming ingestion into Azure Data Explorer.

  4. Aşağıdaki komutlardan birini Sorgu bölmesine kopyalayın ve Çalıştır'ı seçin. Bu, oluşturduğunuz tabloda veya tabloyu içeren veritabanında akış alma ilkesini tanımlar.

    İpucu

    Veritabanı düzeyinde tanımlanan bir ilke, veritabanındaki tüm mevcut ve gelecekteki tablolar için geçerlidir.

    • Oluşturduğunuz tabloda ilkeyi tanımlamak için şunu kullanın:

      .alter table TestTable policy streamingingestion enable
      
    • Oluşturduğunuz tabloyu içeren veritabanında ilkeyi tanımlamak için şunu kullanın:

      .alter database StreamingTestDb policy streamingingestion enable
      

    Define the streaming ingestion policy in Azure Data Explorer.

Kümenize veri almak için akış alma uygulaması oluşturma

Tercih ettiğiniz dili kullanarak kümenize veri almak için uygulamanızı oluşturun.

using Kusto.Data;
using Kusto.Ingest;
using System.IO;
using Kusto.Data.Common;

namespace StreamingIngestion
{
    class Program
    {
        static void Main(string[] args)
        {
            string clusterPath = "https://<clusterName>.kusto.windows.net";
            string appId = "<appId>";
            string appKey = "<appKey>";
            string appTenant = "<appTenant>";
            string dbName = "<dbName>";
            string tableName = "<tableName>";

            // Create Kusto connection string with App Authentication
            var csb =
                new KustoConnectionStringBuilder(clusterPath)
                    .WithAadApplicationKeyAuthentication(
                        applicationClientId: appId,
                        applicationKey: appKey,
                        authority: appTenant
                    );

            // Create a disposable client that will execute the ingestion
            using (IKustoIngestClient client = KustoIngestFactory.CreateStreamingIngestClient(csb))
            {
                // Initialize client properties
                var ingestionProperties =
                    new KustoIngestionProperties(
                        databaseName: dbName,
                        tableName: tableName
                    );

                // Ingest from a compressed file
                var fileStream = File.Open("MyFile.gz", FileMode.Open);
                // Create source options
                var sourceOptions = new StreamSourceOptions()
                {
                    CompressionType = DataSourceCompressionType.GZip,
                };
                // Ingest from stream
                var status = client.IngestFromStreamAsync(fileStream, ingestionProperties, sourceOptions).GetAwaiter().GetResult();
            }
        }
    }
}

Kümenizde akış alımını devre dışı bırakma

Uyarı

Akış alımının devre dışı bırakılması birkaç saat sürebilir.

Azure Veri Gezgini kümenizde akış alımını devre dışı bırakmadan önce, tüm ilgili tablolardan ve veritabanlarından akış alma ilkesini bırakın. Akış alma ilkesinin kaldırılması, Azure Veri Gezgini kümenizin içinde veri yeniden düzenlemesini tetikler. Akış alımı verileri ilk depolama alanından sütun deposundaki kalıcı depolama alanına taşınır (kapsamlar veya parçalar). Bu işlem, ilk depolamadaki veri miktarına bağlı olarak birkaç saniye ile birkaç saat arasında sürebilir.

Akış alma ilkesini bırakma

Azure portal kullanarak veya C# dilinde program aracılığıyla akış alma ilkesini bırakabilirsiniz.

  1. Azure portal Azure Veri Gezgini kümenize gidin ve Sorgu'yu seçin.

  2. Akış alma ilkesini tablodan bırakmak için aşağıdaki komutu Sorgu bölmesine kopyalayın ve Çalıştır'ı seçin.

    .delete table TestTable policy streamingingestion
    

    Delete streaming ingestion policy in Azure Data Explorer.

  3. Ayarlar'daYapılandırmalar'ı seçin.

  4. Yapılandırmalar bölmesinde Kapalı'yı seçerek Akış alımını devre dışı bırakın.

  5. Kaydet’i seçin.

    Turn off streaming ingestion in Azure Data Explorer.

Sınırlamalar

  • Veri eşlemeleri , akış alımında kullanılmak üzere önceden oluşturulmalıdır . Tek tek akış alma istekleri satır içi veri eşlemelerini barındırmaz.
  • Kapsam etiketleri akış alım verilerinde ayarlanamaz.
  • İlkeyi güncelleştirin. Güncelleştirme ilkesi, veritabanındaki diğer verilere veya tablolara değil, yalnızca kaynak tablodaki yeni alınan verilere başvurabilir.
  • Takip eden veritabanları için öncü olarak kullanılan bir kümede akış alımı etkinleştirildiyse, akış alma verilerinin takip edilebilmesi için aşağıdaki kümelerde akış alımının etkinleştirilmesi gerekir. Aynı durum, küme verilerinin Veri Paylaşımı aracılığıyla paylaşılıp paylaşılmadığı için de geçerlidir.

Sonraki adımlar