Konfigurowanie pozyskiwania danych za pośrednictwem przesyłania strumieniowego w klastrze usługi Azure Data Explorer

Pozyskiwanie przesyłania strumieniowego jest przydatne do ładowania danych, gdy potrzebujesz małego opóźnienia między pozyskiwaniem i wykonywaniem zapytań. Rozważ użycie pozyskiwania przesyłania strumieniowego w następujących scenariuszach:

  • Wymagane jest opóźnienie mniejsze niż sekundę.
  • Aby zoptymalizować przetwarzanie operacyjne wielu tabel, w których strumień danych do każdej tabeli jest stosunkowo mały (kilka rekordów na sekundę), ale ogólny wolumin pozyskiwania danych jest wysoki (tysiące rekordów na sekundę).

Jeśli strumień danych do każdej tabeli jest wysoki (ponad 4 GB na godzinę), rozważ użycie pozyskiwania wsadowego.

Aby dowiedzieć się więcej o różnych metodach pozyskiwania danych, zobacz Omówienie pozyskiwania danych.

Wybierz odpowiedni typ pozyskiwania przesyłania strumieniowego

Obsługiwane są dwa typy pozyskiwania przesyłania strumieniowego:

Typ pozyskiwania Opis
Połączenie danych Połączenia danych centrum zdarzeń, IoT Hub i usługi Event Grid mogą korzystać z pozyskiwania strumieniowego, pod warunkiem że jest ona włączona na poziomie klastra. Decyzja o korzystaniu z pozyskiwania przesyłania strumieniowego jest wykonywana zgodnie z zasadami pozyskiwania przesyłania strumieniowego skonfigurowanymi w tabeli docelowej.
Aby uzyskać informacje na temat zarządzania połączeniami danych, zobacz Event Hub, IoT Hub i Event Grid.
Niestandardowe pozyskiwanie Niestandardowe pozyskiwanie wymaga pisania aplikacji korzystającej z jednej z bibliotek klienta usługi Azure Data Explorer.
Skorzystaj z informacji w tym temacie, aby skonfigurować niestandardowe pozyskiwanie. Przykładowa aplikacja pozyskiwania przesyłania strumieniowego w języku C# może być również przydatna.

Poniższa tabela ułatwia wybór typu pozyskiwania, który jest odpowiedni dla danego środowiska:

Kryterium Połączenie danych Niestandardowe pozyskiwanie
Opóźnienie danych między inicjowaniem pozyskiwania a danymi dostępnymi dla zapytania Dłuższe opóźnienie Krótsze opóźnienie
Nakład pracy nad programowaniem Szybka i łatwa konfiguracja, bez obciążeń programistycznych Wysokie obciążenie programistyczne w celu utworzenia aplikacji pozyskiwania danych, obsługi błędów i zapewnienia spójności danych

Uwaga

Możesz zarządzać procesem włączania i wyłączania pozyskiwania przesyłania strumieniowego w klastrze przy użyciu Azure Portal lub programowo w języku C#. Jeśli używasz języka C# dla aplikacji niestandardowej, możesz znaleźć go bardziej wygodne przy użyciu podejścia programowego.

Wymagania wstępne

Zagadnienia dotyczące wydajności i działania

Głównymi współautorami, którzy mogą mieć wpływ na pozyskiwanie przesyłania strumieniowego, są:

  • Rozmiar maszyny wirtualnej i klastra: wydajność pozyskiwania przesyłania strumieniowego i wydajność są skalowane wraz ze zwiększonymi rozmiarami maszyn wirtualnych i klastrów. Liczba współbieżnych żądań pozyskiwania jest ograniczona do sześciu na rdzeń. Na przykład w przypadku 16 podstawowych jednostek SKU, takich jak D14 i L16, maksymalne obsługiwane obciążenie wynosi 96 równoczesnych żądań pozyskiwania. W przypadku dwóch podstawowych jednostek SKU, takich jak D11, maksymalne obsługiwane obciążenie to 12 współbieżnych żądań pozyskiwania.
  • Limit rozmiaru danych: limit rozmiaru danych dla żądania pozyskiwania przesyłania strumieniowego wynosi 4 MB. Obejmuje to wszystkie dane utworzone na potrzeby zasad aktualizacji podczas pozyskiwania.
  • Aktualizacje schematu: aktualizacje schematu, takie jak tworzenie i modyfikowanie tabel i mapowań pozyskiwania, może potrwać do pięciu minut w przypadku usługi pozyskiwania przesyłania strumieniowego. Aby uzyskać więcej informacji, zobacz Przesyłanie strumieniowe pozyskiwania i zmiany schematu.
  • Pojemność ssd: włączenie pozyskiwania przesyłania strumieniowego w klastrze, nawet jeśli dane nie są pozyskiwane za pośrednictwem przesyłania strumieniowego, używa części lokalnego dysku SSD maszyn klastra do przesyłania strumieniowego danych pozyskiwania i zmniejsza ilość miejsca dostępnego dla gorącej pamięci podręcznej.

Włączanie pozyskiwania przesyłania strumieniowego w klastrze

Aby można było korzystać z pozyskiwania przesyłania strumieniowego, należy włączyć funkcję w klastrze i zdefiniować zasady pozyskiwania przesyłania strumieniowego. Funkcję można włączyć podczas tworzenia klastra lub dodać do istniejącego klastra.

Ostrzeżenie

Zapoznaj się z ograniczeniami przed włączeniem pozyskiwania przesyłania strumieniowego.

Włączanie pozyskiwania przesyłania strumieniowego podczas tworzenia nowego klastra

Pozyskiwanie przesyłania strumieniowego można włączyć podczas tworzenia nowego klastra przy użyciu Azure Portal lub programowo w języku C#.

Podczas tworzenia klastra, wykonując kroki opisane w temacie Tworzenie klastra i bazy danych platformy Azure Data Explorer, na karcie Konfiguracje wybierz pozycję Pozyskiwanie> strumieniowewłączone.

Włącz pozyskiwanie przesyłania strumieniowego podczas tworzenia klastra w usłudze Azure Data Explorer.

Włączanie pozyskiwania przesyłania strumieniowego w istniejącym klastrze

Jeśli masz istniejący klaster, możesz włączyć pozyskiwanie przesyłania strumieniowego przy użyciu Azure Portal lub programowo w języku C#.

  1. W Azure Portal przejdź do klastra usługi Azure Data Explorer.

  2. W obszarze Ustawienia wybierz pozycję Konfiguracje.

  3. W okienku Konfiguracje wybierz pozycję Włączone , aby włączyć pozyskiwanie przesyłania strumieniowego.

  4. Wybierz pozycję Zapisz.

    Włącz pozyskiwanie przesyłania strumieniowego w usłudze Azure Data Explorer.

Tworzenie tabeli docelowej i definiowanie zasad

Utwórz tabelę, aby odbierać dane pozyskiwania przesyłania strumieniowego i definiować powiązane z nimi zasady przy użyciu Azure Portal lub programowo w języku C#.

  1. W Azure Portal przejdź do klastra.

  2. Wybierz pozycję Zapytanie.

    Wybierz zapytanie w portalu azure Data Explorer, aby włączyć pozyskiwanie przesyłania strumieniowego.

  3. Aby utworzyć tabelę, która będzie odbierać dane za pośrednictwem pozyskiwania przesyłania strumieniowego, skopiuj następujące polecenie do okienka Zapytanie i wybierz pozycję Uruchom.

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

    Utwórz tabelę na potrzeby pozyskiwania przesyłania strumieniowego do usługi Azure Data Explorer.

  4. Skopiuj jedno z następujących poleceń do okienka Zapytanie i wybierz pozycję Uruchom. Definiuje zasady pozyskiwania przesyłania strumieniowego w utworzonej tabeli lub w bazie danych zawierającej tabelę.

    Porada

    Zasady zdefiniowane na poziomie bazy danych mają zastosowanie do wszystkich istniejących i przyszłych tabel w bazie danych. Po włączeniu zasad na poziomie bazy danych nie ma potrzeby włączania jej dla każdej tabeli.

    • Aby zdefiniować zasady w utworzonej tabeli, użyj:

      .alter table TestTable policy streamingingestion enable
      
    • Aby zdefiniować zasady w bazie danych zawierającej utworzoną tabelę, użyj:

      .alter database StreamingTestDb policy streamingingestion enable
      

    Zdefiniuj zasady pozyskiwania przesyłania strumieniowego na platformie Azure Data Explorer.

Tworzenie aplikacji pozyskiwania przesyłania strumieniowego w celu pozyskiwania danych do klastra

Utwórz aplikację na potrzeby pozyskiwania danych do klastra przy użyciu preferowanego języka.

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);
    }
}

Wyłączanie pozyskiwania przesyłania strumieniowego w klastrze

Ostrzeżenie

Wyłączenie pozyskiwania przesyłania strumieniowego może potrwać kilka godzin.

Przed wyłączeniem pozyskiwania przesyłania strumieniowego w klastrze usługi Azure Data Explorer usuń zasady pozyskiwania przesyłania strumieniowego ze wszystkich odpowiednich tabel i baz danych. Usunięcie zasad pozyskiwania przesyłania strumieniowego powoduje ponowne rozmieszczenie danych w klastrze usługi Azure Data Explorer. Dane pozyskiwania przesyłania strumieniowego są przenoszone z początkowego magazynu do magazynu trwałego w magazynie kolumn (zakresy lub fragmenty). Ten proces może potrwać od kilku sekund do kilku godzin, w zależności od ilości danych w początkowym magazynie.

Usuwanie zasad pozyskiwania przesyłania strumieniowego

Zasady pozyskiwania przesyłania strumieniowego można usunąć przy użyciu Azure Portal lub programowo w języku C#.

  1. W Azure Portal przejdź do klastra usługi Azure Data Explorer i wybierz pozycję Zapytanie.

  2. Aby usunąć zasady pozyskiwania przesyłania strumieniowego z tabeli, skopiuj następujące polecenie do okienka Zapytanie i wybierz pozycję Uruchom.

    .delete table TestTable policy streamingingestion
    

    Usuń zasady pozyskiwania przesyłania strumieniowego w usłudze Azure Data Explorer.

  3. W obszarze Ustawienia wybierz pozycję Konfiguracje.

  4. W okienku Konfiguracje wybierz pozycję Wyłączone , aby wyłączyć pozyskiwanie przesyłania strumieniowego.

  5. Wybierz pozycję Zapisz.

    Wyłącz pozyskiwanie przesyłania strumieniowego w usłudze Azure Data Explorer.

Ograniczenia

  • Mapowania danych muszą być wstępnie utworzone do użycia w pozyskiwaniu przesyłania strumieniowego. Pojedyncze żądania pozyskiwania przesyłania strumieniowego nie pasują do wbudowanych mapowań danych.
  • Nie można ustawić tagów zakresu na danych pozyskiwania przesyłania strumieniowego.
  • Zaktualizuj zasady. Zasady aktualizacji mogą odwoływać się tylko do nowo pozyskanych danych w tabeli źródłowej, a nie do żadnych innych danych lub tabel w bazie danych.
  • Jeśli pozyskiwanie przesyłania strumieniowego jest włączone w klastrze używanym jako lider w przypadku baz danych obserwowanych, pozyskiwanie przesyłania strumieniowego musi być włączone w następujących klastrach, a także śledzić dane pozyskiwania przesyłania strumieniowego. To samo dotyczy tego, czy dane klastra są udostępniane za pośrednictwem Data Share.

Następne kroki