Konfigurera strömningsinmatning på ditt Azure Data Explorer kluster

Strömningsinmatning är användbart för att läsa in data när du behöver korta svarstider mellan inmatning och fråga. Överväg att använda strömningsinmatning i följande scenarier:

  • Svarstid på mindre än en sekund krävs.
  • För att optimera den operativa bearbetningen av många tabeller där dataströmmen till varje tabell är relativt liten (några poster per sekund), men den övergripande datainmatningsvolymen är hög (tusentals poster per sekund).

Om dataströmmen till varje tabell är hög (över 4 GB per timme) bör du överväga att använda batchinmatning.

Mer information om olika inmatningsmetoder finns i översikten över datainmatning.

Välj lämplig strömningsinmatningstyp

Två strömningsinmatningstyper stöds:

Inmatningstyp Beskrivning
Händelsehubbeller IoT Hub Hubbar konfigureras som strömmande tabelldatakällor.
Information om hur du inställningar finns i Event Hub ellerIoT Hub datainmatningsmetoder.
Anpassad inmatning Anpassad inmatning kräver att du skriver ett program som använder ett av Azure Data Explorer klientbiblioteken.
Använd informationen i det här avsnittet för att konfigurera anpassad inmatning. Exempelprogrammet för C#-strömningsinmatning kan också vara användbart.

Använd följande tabell när du ska välja den inmatningstyp som passar din miljö:

Kriterium Händelsehubb/IoT Hub Anpassad inmatning
Datafördröjning mellan initiering av datainmatning och tillgängliga data för fråga Längre fördröjning Kortare fördröjning
Omkostnader för utveckling Snabb och enkel installation, inga omkostnader för utveckling Höga utvecklingskostnader för att skapa ett program som matar in data, hanterar fel och säkerställer datakonsekvens

Anteckning

Du kan hantera processen för att aktivera och inaktivera strömningsinmatning i klustret med hjälp Azure Portal eller programmässigt i C#. Om du använder C# för ditt anpassade program kandet vara enklare att använda den programmatiska metoden.

Förutsättningar

Prestanda- och driftöverväganden

De viktigaste bidragsgivarna som kan påverka strömningsinmatningen är:

  • VM- och klusterstorlek:Strömningsinmatningsprestanda och kapacitetsskalor med ökade VM- och klusterstorlekar. Antalet samtidiga inmatningsbegäranden är begränsat till sex per kärna. För SKU:er med 16 kärnor, till exempel D14 och L16, är den maximala belastningen som stöds 96 samtidiga inmatningsbegäranden. För två kärn-SKU:er, till exempel D11, är den maximala belastningen som stöds 12 samtidiga inmatningsbegäranden.
  • Storleksgräns fördata: Datastorleksgränsen för en begäran om strömningsinmatning är 4 MB. Detta inkluderar alla data som skapas för uppdateringsprinciper under inmatningen.
  • Schemauppdateringar:Schemauppdateringar, till exempel skapande och ändring av tabeller och inmatningsmappningar, kan ta upp till fem minuter för inmatningstjänsten för direktuppspelning. Mer information finns i Strömningsinmatning och schemaändringar.
  • SSD-kapacitet:Om du aktiverar strömningsinmatning i ett kluster, även om data inte matas in via strömning, används en del av den lokala SSD-disken på klusterdatorerna för strömmande inmatningsdata och minskar lagringsutrymmet som är tillgängligt för cachelagring med hög belastning.

Aktivera strömningsinmatning i klustret

Innan du kan använda strömningsinmatning måste du aktivera funktionen i klustret och definiera en princip för strömningsinmatning. Du kan aktivera funktionen när du skapar klustret ellerlägga till den i ett befintligt kluster.

Varning

Granska begränsningarna innan du aktiverar strömningsinmatning.

Aktivera strömningsinmatning när du skapar ett nytt kluster

Du kan aktivera strömningsinmatning när du skapar ett nytt kluster med hjälp Azure Portal eller programmässigt i C#.

När du skapar ett kluster med hjälp av stegen i Skapa ett Azure Data Explorer-klusteroch databas går du till fliken Konfigurationer och väljer Strömningsinmatning.

Aktivera strömningsinmatning när du skapar ett kluster i Azure Data Explorer.

Aktivera strömningsinmatning i ett befintligt kluster

Om du har ett befintligt kluster kan du aktivera strömningsinmatning med hjälp av Azure Portal eller programmässigt i C#.

  1. I Azure Portal du till ditt Azure Data Explorer kluster.

  2. I Inställningarväljer du Konfigurationer.

  3. I fönstret Konfigurationer väljer du På för att aktivera strömningsinmatning.

  4. Välj Spara.

    Aktivera strömningsinmatning i Azure Data Explorer.

Skapa en måltabell och definiera principen

Skapa en tabell för att ta emot strömningsinmatningsdata och definiera dess relaterade princip med hjälp av Azure Portal eller programmässigt i C#.

  1. I Azure Portal navigerar du till klustret.

  2. Välj Fråga.

    Välj fråga i Azure Data Explorer portalen för att aktivera strömningsinmatning.

  3. Om du vill skapa tabellen som ska ta emot data via strömningsinmatning kopierar du följande kommando till frågefönstret och väljer Kör.

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

    Skapa en tabell för strömningsinmatning till Azure Data Explorer.

  4. Kopiera ett av följande kommandon till fönstret Fråga och välj Kör. Detta definierar strömningsinmatningsprincipen för den tabell som du skapade eller på databasen som innehåller tabellen.

    Tips

    En princip som definieras på databasnivå gäller för alla befintliga och framtida tabeller i databasen.

    • Om du vill definiera principen för den tabell som du skapade använder du:

      .alter table TestTable policy streamingingestion enable
      
    • Om du vill definiera principen för databasen som innehåller den tabell som du skapade använder du:

      .alter database StreamingTestDb policy streamingingestion enable
      

    Definiera strömningsinmatningsprincipen i Azure Data Explorer.

Skapa ett program för strömningsinmatning för att mata in data till klustret

Skapa ditt program för att mata in data till klustret med önskat språk.

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

Inaktivera strömningsinmatning i klustret

Varning

Det kan ta några timmar att inaktivera strömningsinmatning.

Innan du inaktiverar strömningsinmatning på ditt Azure Data Explorer ska du ta bort principen för strömningsinmatning från alla relevanta tabeller och databaser. Borttagningen av strömningsinmatningsprincipen utlöser omflyttning av data i ditt Azure Data Explorer kluster. Strömningsinmatningsdata flyttas från den inledande lagringen till den permanenta lagringen i kolumnlagret (utrymme eller shards). Den här processen kan ta mellan några sekunder och några timmar, beroende på mängden data i den inledande lagringen.

Ta bort strömningsinmatningsprincipen

Du kan ta bort strömningsinmatningsprincipen med hjälp av Azure Portal eller programmässigt i C#.

  1. I den Azure Portal går du till ditt Azure Data Explorer kluster och väljer Fråga.

  2. Om du vill ta bort strömningsinmatningsprincipen från tabellen kopierar du följande kommando till frågefönstret och väljer Kör.

    .delete table TestTable policy streamingingestion
    

    Ta bort strömningsinmatningsprincip i Azure Data Explorer.

  3. I Inställningarväljer du Konfigurationer.

  4. I fönstret Konfigurationer väljer du Av för att inaktivera strömningsinmatning.

  5. Välj Spara.

    Inaktivera strömningsinmatning i Azure Data Explorer.

Begränsningar

  • Databasmarkörer stöds inte för en databas om själva databasen eller någon av dess tabeller har principen för strömningsinmatning definierad och aktiverad.
  • Datamappningar måste skapas i förväg för användning vid strömningsinmatning. Enskilda begäranden om strömningsinmatning tar inte hänsyn till infogade datamappningar.
  • Det går inte att ange platstaggar för strömmande inmatningsdata.
  • Uppdatera principen. Uppdateringsprincipen kan endast referera till nyligen indata i källtabellen och inte andra data eller tabeller i databasen.
  • Om strömningsinmatning används på någon av databastabellerna kan den här databasen inte användas som ledare för följardatabaser eller som dataleverantör för Azure Data Share.

Nästa steg