Dela via


Konfigurera direktuppspelningsinmatning i Azure Data Explorer-klustret

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

  • Svarstid på mindre än en sekund krävs.
  • För att 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 översikt över datainmatning.

Välj lämplig typ av strömmande inmatning

Två typer av direktuppspelningsinmatning stöds:

Inmatningstyp Beskrivning
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ömmande inmatning görs enligt den princip för inmatning av direktuppspelning 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 exempelprogrammet för C#-strömmande inmatning är användbart.

Använd följande tabell för 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
Omkostnader för utveckling 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

Anmärkning

Du kan hantera processen för att aktivera och inaktivera strömmande inmatning i klustret via Azure-portalen eller programmatiskt i C#. Om du använder C# för din anpassade programkan det vara enklare att använda den programmatiska metoden.

Förutsättningar

Prestanda- och driftsöverväganden

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

  • VM- och klusterstorlek: Prestanda för strömmande inmatning och kapacitet skalas med ökade storlekar på virtuella maskiner 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 genom uppdateringspolicy 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 strömmande inmatning. För mer information, se strömningsinmatning och schemaändringar.
  • SSD-kapacitet: Aktivera strömmande inmatning på 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 direktuppspelningsinmatning i klustret

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

Varning

Granska begränsningarna innan du aktiverar strömmande datainmatning.

Aktivera direktuppspelningsinmatning när du skapar ett nytt kluster

Du kan aktivera strömmande inmatning när du skapar ett nytt kluster med hjälp av Azure-portalen eller programmatiskt i C#.

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

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

Aktivera direktuppspelningsinmatning i ett befintligt kluster

Om du har ett befintligt kluster kan du aktivera strömningsinmatning med hjälp av Azure-portalen eller programmatiskt i C#.

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

  2. I Inställningarväljer du Konfigurationer.

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

  4. Välj Spara.

    Aktivera strömmande inmatning i Azure Data Explorer.

Skapa en måltabell och definiera principen

Skapa en tabell för att ta emot data för strömmande inmatning och definiera dess relaterade princip med hjälp av Azure-portalen eller programmatiskt i C#.

  1. I Azure-portalen navigerar du till klustret.

  2. Välj Query.

    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 fönstret Query 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 i Query-fönstret och klicka på Kör. Detta definierar princip för strömmande inmatning i tabellen 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 du skapade använder du:

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

      .alter database StreamingTestDb policy streamingingestion enable
      

    Definiera principen för strömningsinmatning i Azure Data Explorer.

Skapa ett program för direktuppspelningsinmatning 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 inmatning av direktuppspelning på ditt kluster

Varning

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

Innan du inaktiverar direktuppspelningsinmatning i Azure Data Explorer-klustret släpper du policy för strömmande inmatning från alla relevanta tabeller och databaser. Borttagningen av principen för strömmande inmatning 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 segment). Den här processen kan ta mellan några sekunder och några timmar, beroende på mängden data i den första lagringen.

Ta bort inmatningsprincipen för direktuppspelning

Du kan ta bort principen för strömmande inmatning med hjälp av Azure-portalen eller programmatiskt i C#.

  1. I Azure-portalen går du till ditt Azure Data Explorer-kluster och väljer Query.

  2. Om du vill släppa principen för strömmande inmatning från tabellen kopierar du följande kommando till frågefönstret och väljer Kör.

    .delete table TestTable policy streamingingestion
    

    Ta bort streaming-inmatningspolicy i Azure Data Explorer.

  3. I Inställningarväljer du Konfigurationer.

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

  5. Välj Spara.

    Inaktivera strömningsinmatning i Azure Data Explorer.

Begränsningar

  • Datamappningar måste vara förskapade för användning i strömningsinmatning. Enskilda begäranden om streaminginmatning stödjer inte inbyggda datamappningar.
  • Omfångstaggar kan inte ställas in på data för strömningsinmatning.
  • Uppdatera princip. Uppdateringsprincipen kan bara referera till nyligen inmatade data i källtabellen och inte andra data eller tabeller i databasen.
  • Om direktuppspelningsinmatning är aktiverat på ett kluster som används som ledare för följardatabasermåste strömmande inmatning aktiveras på följande kluster samt för att följa data för strömmande inmatning. Samma sak gäller oavsett om klusterdata delas via datadelning.

Nästa steg