Streaming-opname configureren op uw Azure Data Explorer cluster

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

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

Als de gegevensstroom in elke tabel hoog is (meer dan 4 GB per uur), kunt u batchgegevens opnemen.

Zie Overzicht van gegevens opnemen voor meer informatie over verschillende opnamemethoden.

Het juiste type streaming-opname kiezen

Er worden twee typen streaming-opname ondersteund:

Opnametype Beschrijving
Event Hub of IoT Hub Hubs worden geconfigureerd als gegevensbronnen voor tabelstreaming.
Zie Event Hub of IoT Hub voor meer informatie over het instellen van deze instellingen.
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 de C#-voorbeeldtoepassing voor streaming-opname ook nuttig.

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

Criterium Event Hub/IoT Hub Aangepaste opname
Gegevensvertraging tussen opname-initiëren en de gegevens die beschikbaar zijn voor query Langere vertraging Kortere vertraging
Ontwikkelingsoverhead Snelle en eenvoudige installatie, zonder overhead voor ontwikkeling Hoge ontwikkelingsoverhead voor het maken van een toepassing, het opnemen van de gegevens, het afhandelen van fouten en het garanderen van gegevensconsistentie

Notitie

U kunt het proces voor het in- en uitschakelen van streaming-opname in uw cluster beheren met behulp van de Azure Portal programmatisch in C#. Als u C# gebruikt voor uw aangepaste toepassing,is het wellicht handiger om de programmatische benadering te gebruiken.

Vereisten

Prestatie- en operationele overwegingen

De belangrijkste inzenders die van invloed kunnen zijn op streaming-opname zijn:

  • VM en clustergrootte:de prestaties en capaciteit van streaming-opname worden geschaald met grotere VM- en clustergrootten. Het aantal gelijktijdige opnameaanvragen is beperkt tot zes per kern. Voor SKU's met 16 kernen, 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 limiet voor de gegevensgrootte voor een aanvraag voor streaming-opname 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 vijf minuten duren voor de streaming-opnameservice. Zie Streaming-opname en schemawijzigingen voor meer informatie.
  • SSD-capaciteit:het inschakelen van streaming-opname op een cluster, zelfs wanneer gegevens niet worden opgenomen via streaming, maakt gebruik van een deel van de lokale SSD-schijf van de clustermachines voor streaminggegevens en vermindert de beschikbare opslag voor hot-cache.

Streaming-opname in uw cluster inschakelen

Voordat u streaming-opname kunt gebruiken, moet u de mogelijkheid op uw cluster inschakelen en een beleid voor streaming-opname definiëren. U kunt de mogelijkheid inschakelen bij het maken van het clusterof toevoegen aan een bestaand cluster.

Waarschuwing

Controleer de beperkingen voordat u streaming-opname inschakelen.

Streaming-opname inschakelen tijdens het maken van een nieuw cluster

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

Terwijl u een cluster maakt met behulp van de stappen in Een cluster Azure Data Explorer databasemaken, selecteert u op het tabblad Configuraties de optie Streaming-opnameop.

Schakel streaming-opname in tijdens het maken van een cluster in Azure Data Explorer.

Streaming-opname in een bestaand cluster inschakelen

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

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

  2. Selecteer Instellingenin Instellingen configuraties.

  3. Selecteer in het deelvenster Configuraties de optie Aan omStreaming-opname in teschakelen.

  4. Selecteer Opslaan.

    Schakel streaming-opname in Azure Data Explorer.

Een doeltabel maken en het beleid definiëren

Maak een tabel voor het ontvangen van de streaminggegevens en definieer het bijbehorende beleid met behulp van Azure Portal programmatisch in C#.

  1. Navigeer Azure Portal het cluster.

  2. Selecteer Query.

    Selecteer query in de Azure Data Explorer portal om streaming-opname in teschakelen.

  3. Als u de tabel wilt maken die de gegevens ontvangt via streaming-opname, 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 streaming-opname 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 op 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.

    • Gebruik het volgende om het beleid te definiëren voor de tabel die u hebt gemaakt:

      .alter table TestTable policy streamingingestion enable
      
    • Gebruik het volgende om het beleid te definiëren voor de database met de tabel die u hebt gemaakt:

      .alter database StreamingTestDb policy streamingingestion enable
      

    Definieer het beleid voor streaming-opname in Azure Data Explorer.

Een toepassing voor streaming-opname maken om gegevens op te nemen in uw cluster

Maak uw toepassing voor het opnemen van gegevens in uw cluster met behulp van de taal van uw voorkeur.

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

Streaming-opname in uw cluster uitschakelen

Waarschuwing

Het uitschakelen van streaming-opname kan enkele uren duren.

Voordat u streaming-opname op uw cluster Azure Data Explorer, moet u het opnamebeleid voor streaming verwijderen uit alle relevante tabellen en databases. Het verwijderen van het beleid voor streaming-opname activeert het opnieuw rangschikken van gegevens in Azure Data Explorer cluster. De streaming-opnamegegevens worden verplaatst van de initiële opslag naar de permanente opslag in de kolomopslag (omvang of shards). Dit proces kan enkele seconden tot enkele uren duren, afhankelijk van de hoeveelheid gegevens in de initiële opslag.

Het beleid voor streaming-opname neerzetten

U kunt het beleid voor streaming-opname neerzetten met behulp van Azure Portal programmatisch in C#.

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

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

    .delete table TestTable policy streamingingestion
    

    Verwijder het beleid voor streaming-opname in Azure Data Explorer.

  3. Selecteer Instellingenin Instellingen configuraties.

  4. Selecteer in het deelvenster Configuraties de optie Uit omStreaming-opname uit te schakelen.

  5. Selecteer Opslaan.

    Schakel streaming-opname in Azure Data Explorer.

Beperkingen

  • Databasecursors worden niet ondersteund voor een database als voor de database zelf of een van de tabellen het streaming-opnamebeleid is gedefinieerd en ingeschakeld.
  • Gegevenstoewijzingenmoeten vooraf worden gemaakt voor gebruik bij streaming-opname. Afzonderlijke aanvragen voor streaming-opname zijn niet geschikt voor inline gegevenstoewijzingen.
  • Extent-tags kunnen niet worden ingesteld voor de streaming-opnamegegevens.
  • Werk beleid bij. Het updatebeleid kan alleen verwijzen naar de zojuist opgenomen gegevens in de brontabel en niet naar andere gegevens of tabellen in de database.
  • Als streaming-opname wordt gebruikt in een van de tabellen van de database, kan deze database niet worden gebruikt als leider voor volgdatabases of als gegevensprovider voor Azure Data Share.

Volgende stappen