Dela via


Konfigurera datainmatning för streaming i ditt Azure Data Explorer-kluster

Direktuppspelningsinmatning ä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.
  • Optimera driftbearbetningen av många tabeller där dataströmmen till varje tabell är relativt liten (några poster per sekund), men den totala datainmatningsvolymen är hög (tusentals poster per sekund).

Om dataströmmen i 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 typ av direktuppspelningsinmatning

Två typer av direktuppspelningsinmatning stöds:

Inmatningstyp Description
Dataanslutning Event Hub-, IoT Hub- och Event Grid-dataanslutningar kan använda strömmande inmatning, förutsatt att den är aktiverad på klusternivå. Beslutet att använda strömningsinmatning görs enligt den princip för strömningsinmatning som konfigurerats i måltabellen.
Information om hur du hanterar dataanslutningar finns i Event Hub, IoT Hub och Event Grid.
Anpassad inmatning Anpassad inmatning kräver att du skriver ett program som använder ett av Azure Data Explorer klientbibliotek.
Använd informationen i det här avsnittet för att konfigurera anpassad inmatning. Du kanske också tycker att C#-exempelprogrammet för direktuppspelning är användbart.

Använd följande tabell för att hjälpa dig att välja den inmatningstyp som är lämplig för din miljö:

Kriterium Dataanslutning Anpassad inmatning
Datafördröjning mellan inmatningsinitiering och tillgängliga data för fråga Längre fördröjning Kortare fördröjning
Utvecklingskostnader Snabb och enkel installation, inga utvecklingskostnader 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ömmande inmatning i klustret med hjälp av Azure Portal eller programmatiskt i C#. Om du använder C# för ditt anpassade program kan det vara enklare att använda den programmatiska metoden.

Förutsättningar

Prestanda- och driftsöverväganden

De främsta bidragsgivarna som kan påverka strömmande inmatning är:

  • VM- och klusterstorlek: Strömmande inmatningsprestanda och kapacitetsskalor med ökade storlekar på virtuella datorer och kluster. 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.
  • Datastorleksgräns: Datastorleksgränsen för en begäran om strömmande inmatning är 4 MB. Detta inkluderar alla data som skapats för uppdateringsprinciper under inmatningen.
  • Schemauppdateringar: Schemauppdateringar, till exempel skapande och ändring av tabeller och inmatningsmappningar, kan ta upp till fem minuter för tjänsten för direktuppspelning. Mer information finns i Strömmande inmatning och schemaändringar.
  • SSD-kapacitet: Aktivera strömmande inmatning i ett kluster, även om data inte matas in via strömning, använder en del av den lokala SSD-disken på klusterdatorerna för strömmande inmatningsdata och minskar lagringen som är tillgänglig för frekvent cache.

Aktivera strömningsinmatning i klustret

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

Varning

Granska begränsningarna innan du aktiverar strömningsinmatning.

Aktivera direktuppspelningsinmatning när du skapar ett nytt kluster

Du kan aktivera direktuppspelningsinmatning när du skapar ett nytt kluster med hjälp av Azure Portal eller programmatiskt i C#.

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

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 direktuppspelning med hjälp av Azure Portal eller programmatiskt i C#.

  1. I Azure Portal går du till ditt Azure Data Explorer-kluster.

  2. I Inställningar väljer du Konfigurationer.

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

  4. Välj Spara.

    Aktivera direktuppspelningsinmatning i Azure Data Explorer.

Skapa en måltabell och definiera principen

Skapa en tabell för att ta emot strömmande inmatningsdata och definiera dess relaterade princip med hjälp av Azure Portal eller programmatiskt 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ömmande inmatning.

  3. Om du vill skapa tabellen som ska ta emot data via strömmande inmatning 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ömmande inmatning till Azure Data Explorer.

  4. Kopiera något av följande kommandon till frågefönstret och välj Kör. Detta definierar principen för strömmande inmatning i den tabell som du skapade eller i databasen som innehåller tabellen.

    Tips

    En princip som definieras på databasnivå gäller för alla befintliga och framtida tabeller i databasen. När du aktiverar principen på databasnivå behöver du inte aktivera den per tabell.

    • Om du vill definiera principen i tabellen 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 policyn för strömningsinmatning i Azure Data Explorer.

Skapa ett strömmande inmatningsprogram för att mata in data till klustret

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

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

Inaktivera direktuppspelningsinmatning i klustret

Varning

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

Innan du inaktiverar direktuppspelningsinmatning i azure-Data Explorer-klustret släpper du principen för strömningsinmatning från alla relevanta tabeller och databaser. Borttagningen av principen för direktuppspelning utlöser omorganisering av data i Azure Data Explorer-klustret. Strömmande inmatningsdata flyttas från den ursprungliga lagringen till permanent lagring i kolumnlagret (omfattningar eller shards). Den här processen kan ta mellan några sekunder och några timmar, beroende på mängden data i den ursprungliga lagringen.

Ta bort principen för strömningsinmatning

Du kan ta bort principen för strömningsinmatning med hjälp av Azure Portal eller programmatiskt i C#.

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

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

    .delete table TestTable policy streamingingestion
    

    Ta bort policyn för strömningsinmatning i Azure Data Explorer.

  3. I Inställningar vä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

  • Datamappningar måste skapas i förväg för användning vid strömningsinmatning. Enskilda begäranden om direktuppspelningsinmatning har inte plats för infogade datamappningar.
  • Det går inte att ange utrymmestaggar för strömmande inmatningsdata.
  • Uppdatera princip. Uppdateringsprincipen kan endast referera till nyligen inmatade data i källtabellen och inte andra data eller tabeller i databasen.
  • Om strömningsinmatning är aktiverat på ett kluster som används som ledare för efterföljande databaser, måste strömmande inmatning aktiveras på följande kluster samt för att följa strömmande inmatningsdata. Samma sak gäller om klusterdata delas via Data Share.

Nästa steg