Händelser
17 mars 21 - 21 mars 10
Gå med i mötesserien för att skapa skalbara AI-lösningar baserat på verkliga användningsfall med andra utvecklare och experter.
Registrera dig nuDen här webbläsaren stöds inte längre.
Uppgradera till Microsoft Edge och dra nytta av de senaste funktionerna och säkerhetsuppdateringarna, samt teknisk support.
I den här självstudien migrerar du Event Hubs-insamlade data från Azure Blob Storage till Azure Synapse Analytics, särskilt en dedikerad SQL-pool, med hjälp av Azure Event Grid och Azure Functions.
Diagrammet visar arbetsflödet för lösningen som du skapar i självstudien:
I den här självstudien gör du följande:
Du behöver följande för att kunna slutföra den här självstudiekursen:
I det här steget distribuerar du den infrastruktur som krävs med en Resource Manager-mall. När du distribuerar mallen skapas följande resurser:
Logga in på Azure-portalen.
Välj Cloud Shell-knappen överst.
Du ser att Cloud Shell öppnas längst ned i webbläsaren.
I Cloud Shell väljer du Bash enligt bilden ovan, om den inte redan är markerad.
Skapa en Azure-resursgrupp genom att köra följande CLI-kommando:
Kopiera och klistra in följande kommando i Cloud Shell-fönstret. Ändra resursgruppens namn och plats om du vill.
az group create -l eastus -n rgDataMigration
Tryck på RETUR.
Här är ett exempel:
user@Azure:~$ az group create -l eastus -n rgDataMigration
{
"id": "/subscriptions/00000000-0000-0000-0000-0000000000000/resourceGroups/rgDataMigration",
"location": "eastus",
"managedBy": null,
"name": "rgDataMigration",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null
}
Distribuera alla resurser som nämns i föregående avsnitt (händelsehubb, lagringskonto, funktionsapp, Azure Synapse Analytics) genom att köra följande CLI-kommando:
Kopiera och klistra in kommandot i Cloud Shell-fönstret. Du kan också kopiera/klistra in i valfri redigerare, ange värden och sedan kopiera kommandot till Cloud Shell. Om du ser ett fel på grund av ett Azure-resursnamn tar du bort resursgruppen, åtgärdar namnet och försöker sedan igen.
Viktigt
Ange värden för följande entiteter innan du kör kommandot:
az deployment group create \
--resource-group rgDataMigration \
--template-uri https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/event-grid/EventHubsDataMigration.json \
--parameters eventHubNamespaceName=<event-hub-namespace> eventHubName=hubdatamigration sqlServerName=<sql-server-name> sqlServerUserName=<user-name> sqlServerPassword=<password> sqlServerDatabaseName=<database-name> storageName=<unique-storage-name> functionAppName=<app-name>
Tryck på Retur-tangenten i Cloud Shell-fönstret för att köra kommandot. Den här processen kan ta ett tag eftersom du skapar en massa resurser. Kontrollera att det inte finns några fel i kommandoresultatet.
Stäng Cloud Shell genom att välja knappen Cloud Shell i portalen (eller) X-knappen i det övre högra hörnet i Cloud Shell-fönstret.
I Azure Portal väljer du Resursgrupper i den vänstra menyn.
Filtrera listan över resursgrupper genom att ange namnet på resursgruppen i sökrutan.
Välj din resursgrupp i listan.
Kontrollera att du ser följande resurser i resursgruppen:
I det här avsnittet skapar du en tabell i den dedikerade SQL-pool som du skapade tidigare.
I listan över resurser i resursgruppen väljer du din dedikerade SQL-pool.
På sidan Dedikerad SQL-pool går du till avsnittet Vanliga uppgifter på den vänstra menyn och väljer Frågeredigeraren (förhandsversion).
Ange namnet på användare och lösenord för SQL-servern och välj OK. Om du ser ett meddelande om att tillåta att klienten får åtkomst till SQL-servern väljer du Tillåtlista IP-adress <för DIN IP-adress> på servern <din SQL-server> och väljer sedan OK.
Kopiera och kör följande SQL-skript i frågefönstret:
CREATE TABLE [dbo].[Fact_WindTurbineMetrics] (
[DeviceId] nvarchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[MeasureTime] datetime NULL,
[GeneratedPower] float NULL,
[WindSpeed] float NULL,
[TurbineSpeed] float NULL
)
WITH (CLUSTERED COLUMNSTORE INDEX, DISTRIBUTION = ROUND_ROBIN);
Låt den här fliken eller fönstret vara öppet så att du kan kontrollera att data har skapats i slutet av självstudien.
Hämta först publiceringsprofilen för Functions-appen från Azure Portal. Använd sedan publiceringsprofilen för att publicera Azure Functions-projektet eller appen från Visual Studio.
På sidan Resursgrupp väljer du Azure Functions-appen i listan över resurser.
På sidan Funktionsapp för din app väljer du Hämta publiceringsprofil i kommandofältet.
Ladda ned och spara filen i undermappen FunctionEGDDumper i mappen EventHubsCaptureEventGridDemo .
Starta Visual Studio.
Öppna lösningen EventHubsCaptureEventGridDemo.sln som du laddade ned från GitHub som en del av förutsättningarna. Du hittar den i /samples/e2e/EventHubsCaptureEventGridDemo
mappen .
Högerklicka på FunctionEGDWDumper-projektet i Solution Explorer och välj Publicera.
På följande skärm väljer du Start eller Lägg till en publiceringsprofil.
I dialogrutan Publicera väljer du Importera profil för Mål och väljer Nästa.
På fliken Importera profil väljer du den fil för publiceringsinställningar som du sparade tidigare i mappen FunctionEGDWDumper och väljer sedan Slutför.
När profilen har konfigurerats i Visual Studio väljer du Publicera. Bekräfta att publiceringen lyckades.
I webbläsaren där sidan Azure-funktion är öppen väljer du Funktioner i det mellersta fönstret. Bekräfta att funktionen EventGridTriggerMigrateData visas i listan. Om du inte ser det kan du försöka publicera från Visual Studio igen och sedan uppdatera sidan i portalen.
När du har publicerat funktionen är du redo att prenumerera på händelsen.
Logga in på Azure Portal på en ny flik eller ett nytt fönster i en webbläsare.
I Azure Portal väljer du Resursgrupper i den vänstra menyn.
Filtrera listan över resursgrupper genom att ange namnet på resursgruppen i sökrutan.
Välj din resursgrupp i listan.
Välj Event Hubs-namnområdet i listan över resurser.
På sidan Event Hubs-namnområde väljer du Händelser på den vänstra menyn och väljer sedan + Händelseprenumeration i verktygsfältet.
Följ dessa steg på sidan Skapa händelseprenumeration :
Ange ett namn för händelseprenumerationen.
Ange ett namn för systemämnet. Ett systemavsnitt innehåller en slutpunkt där avsändaren kan skicka händelser. Mer information finns i Systemavsnitt
För Slutpunktstyp väljer du Azure-funktion.
För Slutpunkt väljer du länken.
På sidan Välj Azure-funktion följer du de här stegen om de inte fylls i automatiskt.
På sidan Välj Azure-funktion väljer du Bekräfta markering.
Gå sedan tillbaka till sidan Skapa händelseprenumeration och välj Skapa.
Kontrollera att händelseprenumerationen har skapats. Växla till fliken Händelseprenumerationer på sidan Händelser för Event Hubs-namnområdet.
Du har konfigurerat din händelsehubb, dedikerat SQL-pool (tidigare SQL Data Warehouse), Azure-funktionsapp och händelseprenumeration. Innan du kör ett program som genererar data för händelsehubben måste du konfigurera några värden.
Gå till resursgruppen som du gjorde tidigare i Azure Portal.
Välj Event Hubs-namnområde.
På sidan Event Hubs-namnområde väljer du Principer för delad åtkomst i den vänstra menyn.
Välj RootManageSharedAccessKey i listan med principer.
Välj kopieringsknappen intill textrutan Primärnyckel för anslutningssträng.
Gå tillbaka till Visual Studio-lösningen.
Högerklicka på Projektet WindTurbineDataGenerator och välj Ange som startprojekt.
Öppna program.cs i projektet WindTurbineDataGenerator.
Ersätt <EVENT HUBS NAMESPACE CONNECTION STRING>
med anslutningssträng som du kopierade från portalen.
Om du har använt ett annat namn för händelsehubben än hubdatamigration
ersätter <EVENT HUB NAME>
du med namnet på händelsehubben.
private const string EventHubConnectionString = "Endpoint=sb://demomigrationnamespace.servicebus.windows.net/...";
private const string EventHubName = "hubdatamigration";
Skapa lösningen. Kör programmet WindTurbineGenerator.exe.
Efter ett par minuter, på den andra webbläsarfliken där du har frågefönstret öppet, frågar du tabellen i informationslagret efter migrerade data.
select * from [dbo].[Fact_WindTurbineMetrics]
Viktigt
Vi använder anslutningssträng för att autentisera till Azure Event Hubs-namnområdet för att hålla självstudien enkel. Vi rekommenderar att du använder Microsoft Entra ID-autentisering i produktionsmiljöer. När du använder ett program kan du aktivera hanterad identitet för programmet och tilldela identiteten en lämplig roll (Azure Event Hubs-ägare, Azure Event Hubs Data Sender eller Azure Event Hubs Data Receiver) på Event Hubs-namnområdet. Mer information finns i Auktorisera åtkomst till Event Hubs med hjälp av Microsoft Entra-ID.
Det här avsnittet hjälper dig att övervaka eller felsöka lösningen.
Gå till resursgruppen och välj det lagringskonto som används för att samla in händelsedata.
På sidan Lagringskonto väljer du Lagringswebbläsare på den vänstra menyn.
Expandera BLOBCONTAINRAR och välj windturbinecapture.
Öppna mappen med namnet samma som Event Hubs-namnområdet i den högra rutan.
Öppna mappen med namnet samma som din händelsehubb (hubdatamigration).
Granska mapparna så ser du AVRO-filerna. Här är ett exempel:
Gå till resursgruppen och välj funktionsappen.
Välj fliken Funktioner i det mellersta fönstret.
Välj funktionen EventGridTriggerMigrateData i listan.
På sidan Funktion väljer du Övervaka på den vänstra menyn.
Välj Konfigurera för att konfigurera application insights för att samla in anropsloggar.
Skapa en ny Application Insights-resurs eller använd en befintlig resurs.
Gå tillbaka till sidan Övervaka för funktionen.
Bekräfta att klientprogrammet (WindTurbineDataGenerator) som skickar händelserna fortfarande körs. Annars kör du appen.
Vänta några minuter (5 minuter eller mer) och välj knappen Uppdatera för att se funktionsanrop.
Välj ett anrop för att visa information.
Event Grid distribuerar händelsedata till prenumeranterna. I följande exempel visar genererade händelsedata när data som strömmas via en händelsehubb hämtas i en blobb. Observera särskilt att egenskapen fileUrl
i data
-objektet pekar på blobben i lagringen. Funktionsappen använder den här URL:en för att hämta blobbfilen med insamlade data.
{
"topic": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourcegroups/rgDataMigration/providers/Microsoft.EventHub/namespaces/spehubns1207",
"subject": "hubdatamigration",
"eventType": "Microsoft.EventHub.CaptureFileCreated",
"id": "4538f1a5-02d8-4b40-9f20-36301ac976ba",
"data": {
"fileUrl": "https://spehubstorage1207.blob.core.windows.net/windturbinecapture/spehubns1207/hubdatamigration/0/2020/12/07/21/49/12.avro",
"fileType": "AzureBlockBlob",
"partitionId": "0",
"sizeInBytes": 473444,
"eventCount": 2800,
"firstSequenceNumber": 55500,
"lastSequenceNumber": 58299,
"firstEnqueueTime": "2020-12-07T21:49:12.556Z",
"lastEnqueueTime": "2020-12-07T21:50:11.534Z"
},
"dataVersion": "1",
"metadataVersion": "1",
"eventTime": "2020-12-07T21:50:12.7065524Z"
}
På webbläsarfliken där frågefönstret är öppet frågar du tabellen i din dedikerade SQL-pool efter migrerade data.
CaptureFileCreated
händelsen. Mer information om den här händelsen och alla händelser som stöds av Azure Blob Storage finns i Azure Event Hubs som en Event Grid-källa.Händelser
17 mars 21 - 21 mars 10
Gå med i mötesserien för att skapa skalbara AI-lösningar baserat på verkliga användningsfall med andra utvecklare och experter.
Registrera dig nuUtbildning
Modul
Skapa en händelsedriven Java-lösning i realtid i Azure - Training
Skicka händelsebaserade telemetridata i realtid till Azure Cosmos DB med hjälp av Azure Functions och en händelsehubb.
Certifiering
Microsoft-certifierad: Azure Data Engineer Associate - Certifications
Visa förståelse för vanliga datateknikuppgifter för att implementera och hantera arbetsbelastningar för datateknik i Microsoft Azure med hjälp av ett antal Azure-tjänster.