Dela via


Mata in data från Event Hubs 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 Portal

  • 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. Skapa en händelsehubb genom att använda 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.

    Knapp för att distribuera Resource Manager-mallen till 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.

    Skapa en resursgrupp

  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 dina händelsehubbar.
    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 Hubs-namnområdet på samma plats som Azure Synapse Data Explorer-klustret för bästa prestanda (viktigast för Event Hubs-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.
    Event Hubs-namn test-hub Event Hubs finns under namnområdet, som tillhandahåller en unik omfångscontainer. Event Hubs-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.

    Skärmbild av Azure Portal för granskning och skapande av Event Hubs-namnrymd, Event Hubs och konsumentgrupp.

  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.

    Meddelandeikon

Autentiseringsöverväganden

Beroende på vilken typ av identitet du använder för att autentisera med Event Hubs kan du behöva några andra konfigurationer.

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

    Skärmbild av sidan Event Hubs-nätverk som visar valet att tillåta åtkomst till alla nätverk.

  • Om du autentiserar med Event Hubs med hjälp av en systemtilldelad hanterad identitet går du till ditt Event Hubs-nätverk >och 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.

    Skärmbild av sidan Event Hubs-nätverk som visar valet att tillåta åtkomst till betrodda tjänster.

Ansluta till Event Hubs

Nu ansluter du till Event Hubs från Data Explorer-poolen. När den här anslutningen är på plats strömmar data som flödar till Event Hubs till testtabellen som du skapade tidigare i den här artikeln.

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

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

    Skärmbild av testdatabaspoolen som visar välj testdatabas.

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

    Välj datainmatning och Lägg till dataanslutning.

Skapa en dataanslutning (förhandsversion)

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

Skärmbild av fönstret för dataanslutning i Event Hubs.

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 Hubs-resursen finns. Det här fältet fylls i automatiskt.
Event Hubs namnrymd Ett unikt namnområdesnamn Namnet som du valde tidigare, som identifierar ditt namnområde.
Event Hubs test-hub Event Hubs som du skapade.
Konsumentgrupp test-group Konsumentgruppen som definierats i händelsehubbarna som du skapade.
Egenskaper för händelsesystem Välj relevanta egenskaper Systemegenskaperna för Event Hubs. 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 Hubs-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 Event Hubs.

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 Hubs-meddelandet innehåller information om dataroutning åsidosätter den här routningsinformationen standardinställningarna.

  1. Fyll i följande routningsinställningar:

    Standardinställningar för routning för inmatning av data till Event Hubs – 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 Hubs-namnområdet.

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

    Principer för delad åtkomst.

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

    Anslutningssträng.

Generera exempeldata

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

Varning

Det här exemplet använder anslutningssträng autentisering för att ansluta till Event Hubs för enkelhetens skull. Men hårdkodning av en anslutningssträng i skriptet kräver en mycket hög grad av förtroende för programmet och medför säkerhetsrisker.

För långsiktiga, säkra lösningar använder du något av följande alternativ:

  1. Öppna exempelapplösningen i Visual Studio.

  2. I filen program.cs uppdaterar du konstanten eventHubName till namnet på dina händelsehubbar och uppdaterar konstanten connectionString till den anslutningssträng du kopierade från Event Hubs-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 Event Hubs 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ändelsehubbarna och testtabellen.

Granska dataflödet

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

  1. I Azure Portal, under dina Händelsehubbar, ser du aktivitetstopparna medan appen körs.

    Event Hub-graf.

  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:

    Meddelanderesultatuppsättning.

    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 dina Event Hubs 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 Knappen Visa detaljer. för att expandera den.

    Välj resursgrupp som ska tas bort.

  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