Dela via


Mata in data från Event Hub till Azure Synapse Data Explorer

Azure Synapse Data Explorer är en snabb och mycket skalbar datautforskningstjänst för logg- och telemetridata. Azure Synapse Data Explorer erbjuder inmatning (datainläsning) från Event Hubs, IoT Hubs och blobar som skrivits till blobcontainrar.

Azure Synapse Data Explorer erbjuder inmatning (datainläsning) från Event Hubs, en plattform för stordataströmning och händelseinmatningstjänst. Event Hubs kan bearbeta miljontals händelser per sekund nästan i realtid. I den här artikeln skapar du en händelsehubb, ansluter till den från Azure Synapse Data Explorer och ser dataflödet genom systemet.

Förutsättningar

  • En Azure-prenumeration. Skapa ett kostnadsfritt Azure-konto.

  • Skapa en Data Explorer-pool med Synapse Studio eller Azure-portalen

  • Skapa en Data Explorer-databas.

    1. Välj Data i fönstret till vänster i Synapse Studio.

    2. Välj + (Lägg till ny resurs) >Data Explorer-pool och använd följande information:

      Inställning Föreslaget värde beskrivning
      Poolnamn contosodataexplorer Namnet på datautforskarens pool som ska användas
      Name TestDatabase Databasnamnet måste vara unikt inom klustret.
      Standardkvarhållningsperiod 365 Det tidsintervall (i dagar) då det är garanterat att data förblir tillgängliga för frågor. Tidsintervallet mäts från det att data matas in.
      Standardcacheperiod 31 Det tidsintervall (i dagar) då data som frågor körs mot ofta ska vara tillgängliga i SSD-lagring eller RAM i stället för i långsiktig lagring.
    3. Välj Skapa för att skapa databasen. Det brukar ta mindre än en minut att skapa en databas.

  • Skapa en måltabell som Event Hubs skickar data till

    1. I Synapse Studio går du till fönstret till vänster och väljer Utveckla.

    2. Under KQL-skript väljer du + (Lägg till ny resurs) >KQL-skript. I den högra rutan kan du namnge skriptet.

    3. I menyn Anslut till väljer du contosodataexplorer.

    4. I menyn Använd databas väljer du TestDatabase.

    5. Klistra in följande kommando och välj Kör för att skapa tabellen.

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

      Dricks

      Kontrollera att tabellen har skapats. I den vänstra rutan väljer du Data, väljer menyn contosodataexplorer more och väljer sedan Uppdatera. Under contosodataexplorer expanderar du Tabeller och kontrollerar att tabellen TestTable visas i listan.

    6. Kopiera följande kommando till fönstret och välj Kör för att mappa inkommande JSON-data till kolumnnamnen och datatyperna i tabellen (TestTable).

      .create table TestTable ingestion json mapping 'TestMapping' '[{"column":"TimeStamp", "Properties": {"Path": "$.timeStamp"}},{"column":"Name", "Properties": {"Path":"$.name"}} ,{"column":"Metric", "Properties": {"Path":"$.metric"}}, {"column":"Source", "Properties": {"Path":"$.source"}}]'
      
  • Vi rekommenderar att du använder en användartilldelad hanterad identitet eller systemtilldelad hanterad identitet för dataanslutningen (valfritt).

  • En exempelapp som genererar data och skickar dem till en händelsehubb. Ladda ned exempelprogrammet till datorn.

  • Visual Studio 2019 för att köra exempelappen.

Logga in på Azure-portalen

Logga in på Azure-portalen.

Skapa en händelsehubb

Skapa en händelsehubb med hjälp av en Azure Resource Manager-mall i Azure-portalen.

  1. Om du vill skapa en händelsehubb använder du följande knapp för att starta distributionen. Högerklicka och välj Öppna i nytt fönster så att du kan följa resten av stegen i den här artikeln.

    Button to deploy the Resource Manager template to Azure.

    Knappen Distribuera till Azure tar dig till Azure-portalen.

  2. Välj den prenumeration där du vill skapa händelsehubben och skapa en resursgrupp med namnet test-hub-rg.

    Create a resource group

  3. Fyll i formuläret med följande information.

    Använd standardinställningarna för alla inställningar som inte visas i följande tabell.

    Inställning Föreslaget värde Fältbeskrivning
    Prenumeration Din prenumeration Välj den Azure-prenumeration som du vill använda för din händelsehubb.
    Resursgrupp test-hub-rg Skapa en ny resursgrupp.
    Plats USA, västra Välj USA, västra för den här artikeln. Välj den region som bäst uppfyller dina behov för ett produktionssystem. Skapa Event Hub-namnområdet på samma plats som Azure Synapse Data Explorer-klustret för bästa prestanda (viktigast för Event Hub-namnområden med högt dataflöde).
    Namn på namnområde Ett unikt namnområdesnamn Välj ett unikt namn som identifierar namnområdet. Till exempel mytestnamespace. Domännamnet servicebus.windows.net läggs till i namnet som du anger. Namnet får endast innehålla bokstäver, siffror och bindestreck. Namnet måste börja med en bokstav och sluta med en bokstav eller siffra. Värdet måste innehålla mellan 6 och 50 tecken.
    Namn på händelsehubb test-hub Händelsehubben finns under namnområdet, som tillhandahåller en unik omfångscontainer. Event Hub-namnet måste vara unikt i namnområdet.
    Namn på konsumentgrupp test-group Konsumentgrupper gör att flera konsumerande program kan ha en separat vy över händelseströmmen.
  4. Välj Granska + skapa.

  5. Granska sammanfattningen av skapade resurser. Välj Skapa, som bekräftar att du skapar resurser i din prenumeration.

    Screen shot of Azure portal for reviewing and creating Event Hub namespace, Event Hub, and consumer group.

  6. Välj Meddelanden i verktygsfältet för att övervaka etableringsprocessen. Det kan ta flera minuter innan distributionen slutförs, men du kan gå vidare till nästa steg nu.

    Notifications icon

Autentiseringsöverväganden

Beroende på vilken typ av identitet du använder för att autentisera med händelsehubben kan du behöva ytterligare konfigurationer.

  • Om du autentiserar med Händelsehubb med hjälp av en användartilldelad hanterad identitet går du till ditt Event Hub-nätverk >och under Tillåt åtkomst från väljer du Alla nätverk och sparar ändringarna.

    Screenshot of the Event Hub networking page, showing the selection of allowing access to all networks.

  • Om du autentiserar med händelsehubben med hjälp av en systemtilldelad hanterad identitet går du till ditt Event Hub-nätverk >och sedan antingen tillåter åtkomst från alla nätverk eller under Tillåt åtkomst från väljer du Valda nätverk, väljer Tillåt betrodda Microsoft-tjänster att kringgå brandväggen och spara ändringarna.

    Screenshot of the Event Hub networking page, showing the selection of allowing access to trusted services.

Anslut till händelsehubben

Nu ansluter du till händelsehubben från datautforskarens pool. När den här anslutningen är på plats strömmar data som flödar till händelsehubben till testtabellen som du skapade tidigare i den här artikeln.

  1. Välj Meddelanden i verktygsfältet för att kontrollera att Event Hub-distributionen lyckades.

  2. Under datautforskarens pool som du skapade väljer du Databaser>TestDatabase.

    Select test database.

  3. Välj Dataanslutningar och Lägg till dataanslutning.

    Select data ingestion and Add data connection.

Skapa en dataanslutning (förhandsversion)

Fyll i formuläret med följande information och välj sedan Skapa.

Data connection pane Event Hub - Azure Synapse Data Explorer.

Inställning Föreslaget värde Fältbeskrivning
Namn på dataanslutning test-hub-connection Namnet på den anslutning som du vill skapa i Azure Synapse Data Explorer.
Prenumeration Prenumerations-ID:t där Event Hub-resursen finns. Det här fältet fylls i automatiskt.
Namnområde för händelsehubb Ett unikt namnområdesnamn Namnet som du valde tidigare, som identifierar ditt namnområde.
Händelsehubben test-hub Händelsehubben som du skapade.
Konsumentgrupp test-group Konsumentgruppen som definierats i den händelsehubb som du skapade.
Egenskaper för händelsesystem Välj relevanta egenskaper Systemegenskaperna för Event Hub. Om det finns flera poster per händelsemeddelande läggs systemegenskaperna till i den första posten. När du lägger till systemegenskaper skapar eller uppdaterar du tabellschema och mappning för att inkludera de valda egenskaperna.
Komprimering None Komprimeringstypen för nyttolasten för Event Hub-meddelanden. Komprimeringstyper som stöds: Ingen, Gzip.
Hanterad identitet Systemtilldelad Den hanterade identitet som används av Data Explorer-klustret för åtkomst till läsning från händelsehubben.

Obs!
När dataanslutningen skapas:
- Systemtilldelade identiteter skapas automatiskt om de inte finns
– Den hanterade identiteten tilldelas automatiskt rollen Azure Event Hubs Data Receiver och läggs till i ditt Data Explorer-kluster. Vi rekommenderar att du kontrollerar att rollen har tilldelats och att identiteten har lagts till i klustret.

Måltabell

Det finns två alternativ för att dirigera inmatade data: statiska och dynamiska. I den här artikeln använder du statisk routning, där du anger tabellnamnet, dataformatet och mappningen som standardvärden. Om Event Hub-meddelandet innehåller information om dataroutning åsidosätter den här routningsinformationen standardinställningarna.

  1. Fyll i följande routningsinställningar:

    Default routing settings for ingesting data to Event Hub - Azure Synapse Data Explorer.

    Inställning Föreslaget värde Fältbeskrivning
    Tabellnamn TestTable Tabellen som du skapade i TestDatabase.
    Dataformat JSON Format som stöds är Avro, CSV, JSON, MULTILINE JSON, ORC, PARQUET, PSV, SCSV, SOHSV, TSV, TXT, TSVE, APACHEAVRO och W3CLOG.
    Mappning TestMapping Mappningen du skapade i TestDatabase, som mappar inkommande data till kolumnnamnen och datatyperna i TestTable. Krävs för JSON, MULTILINE JSON och AVRO och valfritt för andra format.

    Kommentar

    • Du behöver inte ange alla inställningar för standarddirigering. Partiella inställningar accepteras också.
    • Endast händelser som anges när du har skapat dataanslutningen matas in.
  2. Välj Skapa.

Mappning av händelsesystemegenskaper

Kommentar

  • Systemegenskaper stöds för json tabellformat (csvtsvosv.) och stöds inte för komprimerade data. När du använder ett format som inte stöds matas data fortfarande in, men egenskaperna ignoreras.
  • För tabelldata stöds systemegenskaper endast för händelsemeddelanden med en post.
  • För JSON-data stöds även systemegenskaper för händelsemeddelanden med flera poster. I sådana fall läggs systemegenskaperna bara till i den första posten i händelsemeddelandet.
  • För csv mappning läggs egenskaper till i början av posten i den ordning som anges i tabellen Systemegenskaper .
  • För json mappning läggs egenskaper till enligt egenskapsnamn i tabellen Systemegenskaper .

Om du har valt Egenskaper för händelsesystem i avsnittet Datakälla i tabellen måste du inkludera systemegenskaper i tabellschemat och mappningen.

Kopiera anslutningssträngen

När du kör exempelappen som anges i Krav behöver du anslutningssträng för Event Hub-namnområdet.

  1. Under det Event Hub-namnområde som du skapade väljer du Principer för delad åtkomst och sedan RootManageSharedAccessKey.

    Shared access policies.

  2. Kopiera Anslutningssträng – primär nyckel. Du klistrar in den i nästa avsnitt.

    Connection string.

Generera exempeldata

Använd den exempelapp som du laddade ned för att generera data.

  1. Öppna exempelapplösningen i Visual Studio.

  2. I filen program.cs uppdaterar du konstanten eventHubName till namnet på händelsehubben och uppdaterar konstanten connectionString till den anslutningssträng du kopierade från Event Hub-namnområdet.

    const string eventHubName = "test-hub";
    // Copy the connection string ("Connection string-primary key") from your Event Hub namespace.
    const string connectionString = @"<YourConnectionString>";
    
  3. Skapa och kör appen. Appen skickar meddelanden till händelsehubben och skriver ut dess status var 10:e sekund.

  4. När appen har skickat några meddelanden går du vidare till nästa steg: granska dataflödet i händelsehubben och testtabellen.

Granska dataflödet

När appen genererar data kan du nu se flödet av dessa data från händelsehubben till tabellen i klustret.

  1. I Azure-portalen, under din händelsehubb, ser du aktivitetstopparna när appen körs.

    Event Hub graph.

  2. För att kontrollera hur många meddelanden som nått databasen hittills kör du följande fråga i testdatabasen.

    TestTable
    | count
    
  3. Kör följande fråga för att se innehållet i meddelandena:

    TestTable
    

    Resultatuppsättningen bör se ut som i följande bild:

    Message result set.

    Kommentar

    • Azure Synapse Data Explorer har en aggregeringsprincip (batchbearbetning) för datainmatning som är utformad för att optimera inmatningsprocessen. Standardprincipen för batchbearbetning är konfigurerad för att försegla en batch när något av följande villkor gäller för batchen: en maximal fördröjningstid på 5 minuter, total storlek på 1 G eller 1 000 blobar. Därför kan det uppstå en fördröjning. Mer information finns i batchbearbetningsprincip.
    • Event Hub-inmatning inkluderar svarstiden för Event Hub på 10 sekunder eller 1 MB.
    • Om du vill minska svarstidsfördröjningen konfigurerar du tabellen så att den stöder strömning. Se strömningsprincip.

Rensa resurser

Om du inte planerar att använda din händelsehubb igen rensar du test-hub-rg för att undvika kostnader.

  1. Välj Resursgrupper i Azure Portal längst till vänster och välj sedan den resursgrupp du skapat.

    Om den vänstra menyn är komprimerad väljer du Expand button. för att expandera den.

    Select resource group to delete.

  2. Under test-resource-group väljer du Ta bort resursgrupp.

  3. I det nya fönstret skriver du namnet på resursgruppen som ska tas bort (test-hub-rg) och väljer sedan Ta bort.

Nästa steg