Streamingopname configureren in uw Azure Data Explorer-cluster

Streamingopname is handig voor het laden van gegevens wanneer u een lage latentie tussen opname en query nodig hebt. Overweeg het gebruik van streaming-opname in de volgende scenario's:

  • Latentie van minder dan een seconde is vereist.
  • Voor het optimaliseren van de operationele verwerking van veel tabellen waarbij de gegevensstroom in elke tabel relatief klein is (een paar records per seconde), maar het totale gegevensopnamevolume hoog is (duizenden records per seconde).

Als de gegevensstroom in elke tabel hoog is (meer dan 4 GB per uur), kunt u overwegen opname in de wachtrij te gebruiken.

Zie Overzicht van gegevensopname voor meer informatie over verschillende opnamemethoden.

Zie het gearchiveerde artikel voor codevoorbeelden op basis van eerdere SDK-versies.

Kies het juiste type streamingopname

Er worden twee typen streamingopname ondersteund:

Opnametype Description
Gegevensverbinding Event Hubs-, IoT Hub- en Event Grid-gegevensverbindingen kunnen streamingopname gebruiken, mits deze is ingeschakeld op clusterniveau. De beslissing om streamingopname te gebruiken, wordt uitgevoerd volgens het streamingopnamebeleid dat is geconfigureerd voor de doeltabel.
Zie Event Hub, IoT Hub en Event Grid voor meer informatie over het beheren van gegevensverbindingen.
Aangepaste opname Voor aangepaste opname moet u een toepassing schrijven die gebruikmaakt van een van de Azure Data Explorer-clientbibliotheken.
Gebruik de informatie in dit onderwerp om aangepaste opname te configureren. Mogelijk vindt u ook de C#-voorbeeldtoepassing voor streamingopname nuttig.

Gebruik de volgende tabel om het opnametype te kiezen dat geschikt is voor uw omgeving:

Criterium Gegevensverbinding Aangepaste opname
Gegevensvertraging tussen het initiëren van de opname en de gegevens die beschikbaar zijn voor query's Langere vertraging Kortere vertraging
Overhead voor ontwikkeling Snelle en eenvoudige installatie, geen ontwikkelingsoverhead Hoge overhead voor ontwikkeling om een toepassing te maken die de gegevens opneemt, fouten afhandelt en gegevensconsistentie garandeert

Notitie

U kunt het proces voor het in- en uitschakelen van streamingopname op uw cluster beheren met behulp van de Azure Portal of programmatisch in C#. Als u C# gebruikt voor uw aangepaste toepassing, vindt u het misschien handiger om de programmatische benadering te gebruiken.

Vereisten

Prestatie- en operationele overwegingen

De belangrijkste bijdragers die van invloed kunnen zijn op streamingopname zijn:

  • VM- en clustergrootte: streaming-opnameprestaties en capaciteitsschalen met verhoogde VM- en clustergrootten. Het aantal gelijktijdige opnameaanvragen is beperkt tot zes per kern. Voor 16 kern-SKU's, zoals D14 en L16, is de maximaal ondersteunde belasting bijvoorbeeld 96 gelijktijdige opnameaanvragen. Voor twee kern-SKU's, zoals D11, is de maximaal ondersteunde belasting 12 gelijktijdige opnameaanvragen.
  • Limiet voor gegevensgrootte: de gegevensgroottelimiet voor een aanvraag voor streamingopname is 4 MB. Dit omvat alle gegevens die zijn gemaakt voor updatebeleid tijdens de opname.
  • Schema-updates: Schema-updates, zoals het maken en wijzigen van tabellen en opnametoewijzingen, kunnen maximaal vijf minuten duren voordat de streaming-opnameservice wordt uitgevoerd. Zie Streamingopname en schemawijzigingen voor meer informatie.
  • SSD-capaciteit: het inschakelen van streamingopname op een cluster, zelfs wanneer gegevens niet worden opgenomen via streaming, gebruikt een deel van de lokale SSD-schijf van de clustercomputers voor het streamen van opnamegegevens en vermindert de opslag die beschikbaar is voor hot cache.

Streamingopname inschakelen op uw cluster

Voordat u streamingopname kunt gebruiken, moet u de mogelijkheid voor uw cluster inschakelen en een streaming-opnamebeleid definiëren. U kunt de mogelijkheid inschakelen wanneer u het cluster maakt of toevoegen aan een bestaand cluster.

Waarschuwing

Bekijk de beperkingen voordat u streamingopname inschakelt.

Streamingopname inschakelen tijdens het maken van een nieuw cluster

U kunt streamingopname inschakelen tijdens het maken van een nieuw cluster met behulp van de Azure Portal of programmatisch in C#.

Terwijl u een cluster maakt met behulp van de stappen in Een Azure-Data Explorer-cluster en -database maken, selecteert u streamingopname> aan op het tabblad Configuraties.

Schakel streamingopname in tijdens het maken van een cluster in Azure Data Explorer.

Streamingopname inschakelen op een bestaand cluster

Als u een bestaand cluster hebt, kunt u streamingopname inschakelen met behulp van de Azure Portal of programmatisch in C#.

  1. Ga in de Azure Portal naar uw Azure Data Explorer-cluster.

  2. Selecteer in Instellingende optie Configuraties.

  3. Selecteer in het deelvenster Configuratiesde optie Aan om streamingopname in te schakelen.

  4. Selecteer Opslaan.

    Schakel streamingopname in Azure Data Explorer in.

Een doeltabel maken en het beleid definiëren

Maak een tabel om de streamingopnamegegevens te ontvangen en definieer het bijbehorende beleid met behulp van de Azure Portal of programmatisch in C#.

  1. Navigeer in de Azure Portal naar uw cluster.

  2. Selecteer Query.

    Selecteer query in de Azure Data Explorer-portal om streamingopname in te schakelen.

  3. Als u de tabel wilt maken die de gegevens ontvangt via streamingopname, kopieert u de volgende opdracht naar het deelvenster Query en selecteert u Uitvoeren.

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

    Maak een tabel voor streamingopname in Azure Data Explorer.

  4. Kopieer een van de volgende opdrachten naar het deelvenster Query en selecteer Uitvoeren. Hiermee definieert u het streaming-opnamebeleid voor de tabel die u hebt gemaakt of in de database die de tabel bevat.

    Tip

    Een beleid dat is gedefinieerd op databaseniveau, is van toepassing op alle bestaande en toekomstige tabellen in de database. Wanneer u het beleid op databaseniveau inschakelt, hoeft u het niet per tabel in te schakelen.

    • Als u het beleid wilt definiëren voor de tabel die u hebt gemaakt, gebruikt u:

      .alter table TestTable policy streamingingestion enable
      
    • Als u het beleid wilt definiëren voor de database die de tabel bevat die u hebt gemaakt, gebruikt u:

      .alter database StreamingTestDb policy streamingingestion enable
      

    Definieer het streamingopnamebeleid in Azure Data Explorer.

Een toepassing voor streamingopname maken om gegevens op te nemen in uw cluster

Maak uw toepassing voor het opnemen van gegevens in uw cluster met behulp van uw voorkeurstaal.

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

Streamingopname op uw cluster uitschakelen

Waarschuwing

Het uitschakelen van streamingopname kan enkele uren duren.

Voordat u streamingopname uitschakelt in uw Azure Data Explorer-cluster, moet u het beleid voor streamingopname uit alle relevante tabellen en databases verwijderen. Het verwijderen van het streaming-opnamebeleid activeert een herindeling van gegevens in uw Azure Data Explorer-cluster. De streamingopnamegegevens worden verplaatst van de eerste opslag naar de permanente opslag in de kolomopslag (gebieden of shards). Dit proces kan enkele seconden tot een paar uur duren, afhankelijk van de hoeveelheid gegevens in de eerste opslag.

Het beleid voor streamingopname verwijderen

U kunt het beleid voor streamingopname verwijderen met behulp van de Azure Portal of programmatisch in C#.

  1. Ga in de Azure Portal naar uw Azure Data Explorer-cluster en selecteer Query.

  2. Als u het beleid voor streamingopname uit de tabel wilt verwijderen, kopieert u de volgende opdracht naar het deelvenster Query en selecteert u Uitvoeren.

    .delete table TestTable policy streamingingestion
    

    Beleid voor streamingopname verwijderen in Azure Data Explorer.

  3. Selecteer in Instellingende optie Configuraties.

  4. Selecteer in het deelvenster Configuratiesde optie Uit om opname van streaming uit te schakelen.

  5. Selecteer Opslaan.

    Schakel streamingopname uit in Azure Data Explorer.

Beperkingen

  • Gegevenstoewijzingen moeten vooraf worden gemaakt voor gebruik in streamingopname. Afzonderlijke aanvragen voor streamingopname zijn niet geschikt voor inlinegegevenstoewijzingen.
  • Bereiktags kunnen niet worden ingesteld voor de streamingopnamegegevens.
  • Beleid bijwerken. Het updatebeleid kan alleen verwijzen naar de nieuw opgenomen gegevens in de brontabel en niet naar andere gegevens of tabellen in de database.
  • Als streamingopname is ingeschakeld op een cluster dat wordt gebruikt als leider voor volgdatabases, moet streamingopname ook worden ingeschakeld op de volgende clusters om streamingopnamegegevens te volgen. Hetzelfde geldt voor het feit of de clustergegevens worden gedeeld via Data Share.