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.
Välj Data i fönstret till vänster i Synapse Studio.
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. 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
I Synapse Studio går du till fönstret till vänster och väljer Utveckla.
Under KQL-skript väljer du + (Lägg till ny resurs) >KQL-skript. I den högra rutan kan du namnge skriptet.
I menyn Anslut till väljer du contosodataexplorer.
I menyn Använd databas väljer du TestDatabase.
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.
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.
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.
Knappen Distribuera till Azure tar dig till Azure-portalen.
Välj den prenumeration där du vill skapa händelsehubben och skapa en resursgrupp med namnet test-hub-rg.
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. Välj Granska + skapa.
Granska sammanfattningen av skapade resurser. Välj Skapa, som bekräftar att du skapar resurser i din prenumeration.
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.
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.
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.
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.
Välj Meddelanden i verktygsfältet för att kontrollera att Event Hub-distributionen lyckades.
Under datautforskarens pool som du skapade väljer du Databaser>TestDatabase.
Välj Dataanslutningar och Lägg till dataanslutning.
Skapa en dataanslutning (förhandsversion)
Fyll i formuläret med följande information och välj sedan Skapa.
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.
Fyll i följande routningsinställningar:
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.
Välj Skapa.
Mappning av händelsesystemegenskaper
Kommentar
- Systemegenskaper stöds för
json
tabellformat (csv
tsv
osv.) 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.
Under det Event Hub-namnområde som du skapade väljer du Principer för delad åtkomst och sedan RootManageSharedAccessKey.
Kopiera Anslutningssträng – primär nyckel. Du klistrar in den i nästa avsnitt.
Generera exempeldata
Använd den exempelapp som du laddade ned för att generera data.
Öppna exempelapplösningen i Visual Studio.
I filen program.cs uppdaterar du konstanten
eventHubName
till namnet på händelsehubben och uppdaterar konstantenconnectionString
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>";
Skapa och kör appen. Appen skickar meddelanden till händelsehubben och skriver ut dess status var 10:e sekund.
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.
I Azure-portalen, under din händelsehubb, ser du aktivitetstopparna när appen körs.
För att kontrollera hur många meddelanden som nått databasen hittills kör du följande fråga i testdatabasen.
TestTable | count
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:
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.
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 för att expandera den.
Under test-resource-group väljer du Ta bort resursgrupp.
I det nya fönstret skriver du namnet på resursgruppen som ska tas bort (test-hub-rg) och väljer sedan Ta bort.