Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto kurzu provedete migraci zachycených dat Event Hubs ze služby Azure Blob Storage do Azure Synapse Analytics. Datum migrujete do vyhrazeného fondu SQL pomocí Azure Event Gridu a Azure Functions.
Tento diagram znázorňuje pracovní postup řešení, které vytvoříte v tomto kurzu:
- Data odesílaná do centra událostí Azure se zaznamenávají v úložišti objektů blob v Azure.
- Po dokončení zachytávání dat se vygeneruje a odešle událost do služby Azure Event Grid.
- Azure Event Grid předává tato data událostí do aplikace funkcí Azure.
- Aplikace funkcí používá adresu URL objektu blob v datech události k načtení objektu blob z úložiště.
- Aplikace funkcí migruje data objektů blob do služby Azure Synapse Analytics.
V tomto článku provedete následující kroky:
- Nasazení požadované infrastruktury pro kurz
- Publikování kódu do aplikace Functions
- Vytvoření odběru Event Gridu
- Streamování ukázkových dat do služby Event Hubs
- Ověření zachycených dat ve službě Azure Synapse Analytics
Požadavky
Znalost služby Azure Event Grid a Azure Event Hubs, zejména funkce Capture. Pokud službu Azure Event Grid neznáte, přečtěte si téma Úvod do služby Azure Event Grid. Další informace o funkci Capture služby Azure Event Hubs najdete v tématu Zachycení událostí prostřednictvím služby Azure Event Hubs ve službě Azure Blob Storage nebo Azure Data Lake Storage.
Předplatné Azure. Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.
Visual Studio s úlohami pro vývoj desktopových aplikací .NET, vývoj pro Azure, ASP.NET a vývoj pro web, vývoj Node.js a vývoj v Pythonu
Ukázkový projekt EventHubsCaptureEventGridDemo. Ukázka zahrnuje:
- WindTurbineDataGenerator. Jednoduchý vydavatel, který odesílá ukázková data větrné turbíny do centra událostí s povolenou funkcí Capture.
- FunctionDWDumper. Funkce Azure, která obdrží oznámení z Azure Event Gridu při zachycení souboru Avro do objektu blob služby Azure Storage. Obdrží identifikátor URI objektu blob, přečte jeho obsah a nasdílí tato data do Azure Synapse Analytics.
Nasazení infrastruktury
V této části nasaďte požadovanou infrastrukturu pomocí šablony Resource Manageru. Při nasazení šablony se vytvoří následující prostředky:
- Centrum událostí s povolenou funkcí Capture
- Účet úložiště pro zachycené soubory
- Plán služby App Service pro hostování aplikace funkcí
- Aplikace Function App na zpracování události
- SQL Server na hostování datového skladu
- Azure Synapse Analytics (vyhrazený fond SQL) pro ukládání migrovaných dat
Nasazení infrastruktury pomocí Azure CLI
Přihlaste se k portálu Azure.
Nahoře vyberte tlačítko Cloud Shellu .
V dolní části prohlížeče se otevře Cloud Shell.
Cloud Shell nabízí Bash a powershellové verze. Mezi možnostmi můžete přepínat pomocí tlačítka v horní části oblasti terminálu. Pokud jste Cloud Shell otevřeli jako PowerShell, vyberte Bash.
Vytvořte skupinu prostředků Azure spuštěním následujícího příkazu rozhraní příkazového řádku:
Zkopírujte a vložte následující příkaz do okna Cloud Shellu. Pokud chcete, změňte název a umístění skupiny prostředků.
az group create --name rgDataMigration --location eastus
Stiskněte klávesu Enter.
Tady je příklad:
user@Azure:~$ az group create --name rgDataMigration --location eastus { "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/rgDataMigration", "location": "eastus", "managedBy": null, "name": "rgDataMigration", "properties": { "provisioningState": "Succeeded" }, "tags": null, "type": "Microsoft.Resources/resourceGroups" }
Nasaďte všechny prostředky uvedené v předchozí části spuštěním následujícího příkazu rozhraní příkazového řádku. Mezi prostředky patří centrum událostí, účet úložiště, aplikace Function a Azure Synapse Analytics.
Zkopírujte a vložte příkaz do okna Cloud Shellu. Alternativně můžete zkopírovat do textového editoru, nastavit hodnoty a pak příkaz zkopírovat do Cloud Shellu. Pokud se zobrazí chyba kvůli názvu prostředku Azure, odstraňte skupinu prostředků, opravte název a zkuste příkaz zopakovat.
Důležité
Před spuštěním příkazu zadejte hodnoty následujících entit:
- Název skupiny prostředků, kterou jste vytvořili dříve
- Název oboru názvů centra událostí
- Název centra událostí Hodnotu můžete ponechat tak, jak je (hubdatamigration).
- Název serveru SQL
- Název uživatele a hesla SQL.
- Název databáze.
- Název účtu úložiště.
- Název aplikace funkcí
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>
Stisknutím klávesy Enter v okně Cloud Shellu spusťte příkaz. Tento proces může chvíli trvat, protože vytváříte spoustu prostředků. V důsledku příkazu se ujistěte, že nedošlo k žádným selháním.
Cloud Shell zavřete tak, že na portálu vyberete tlačítko Cloud Shell nebo v pravém horním rohu okna Cloud Shell stisknete tlačítko X.
Ověřte, že se prostředky vytvořily.
Na webu Azure Portal do vyhledávacího pole zadejte skupiny prostředků. Ve výsledcích vyberte skupiny prostředků.
V případě potřeby zadejte do vyhledávacího pole název vaší skupiny prostředků a vyfiltrujte skupiny prostředků.
V seznamu vyberte skupinu prostředků.
Ověřte, že ve skupině prostředků vidíte následující prostředky:
Vytvoření tabulky ve službě Azure Synapse Analytics
V této části vytvoříte tabulku ve vyhrazeném fondu SQL, který jste vytvořili dříve.
V seznamu prostředků ve skupině prostředků vyberte vyhrazený fond SQL.
Na stránce Vyhrazený fond SQL v části Běžné úlohy vyberte Editor dotazů (Preview).
Zadejte uživatelské jméno a heslo pro SQL server a vyberte OK. Pokud se zobrazí zpráva o povolení přístupu klienta k SERVERU SQL, vyberte IP adresu seznamu povolených IP <adres> na serveru <SQL a> pak vyberte OK.
V okně dotazu zkopírujte a spusťte následující skript SQL:
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);
Nechte tuto kartu nebo okno otevřené, abyste mohli ověřit, že jsou data vytvořená na konci kurzu.
Publikování aplikace Azure Functions
Nejprve získejte profil publikování aplikace Functions z webu Azure Portal. Pak pomocí profilu publikování publikujte projekt nebo aplikaci Azure Functions ze sady Visual Studio.
Získání profilu publikování
Na stránce Skupina prostředků vyberte aplikaci Azure Functions.
Na stránce Function App pro vaši aplikaci vyberte Získat profil publikování.
Stáhněte a uložte soubor do podsložky FunctionEGDDumper složky EventHubsCaptureEventGridDemo.
Použití profilu publikování k publikování aplikace Functions
Spusťte Visual Studio.
V rámci požadavků otevřete řešení EventHubsCaptureEventGridDemo.sln, které jste stáhli z GitHubu. Najdete ho
/samples/e2e/EventHubsCaptureEventGridDemo
ve složce.V Průzkumník řešení klepněte pravým tlačítkem na functionEGDWDumper projekt a vyberte Publikovat.
Na následující obrazovce vyberte Start nebo Přidat profil publikování.
V dialogovém okně Publikovat vyberte Importovat profil pro cíl a vyberte Další.
Na kartě Importovat profil vyberte soubor nastavení publikování, který jste si uložili dříve ve složce FunctionEGDWDumper . Pak vyberte Dokončit.
Když Visual Studio nakonfiguruje profil, vyberte Publikovat. Potvrďte, že publikování proběhlo úspěšně.
Ve webovém prohlížeči, který má otevřenou stránku Funkce Azure, vyberte v prostředním podokně funkce Functions . Ověřte, že se v seznamu zobrazuje funkce EventGridTriggerMigrateData . Pokud ho nevidíte, zkuste publikovat ze sady Visual Studio znovu a pak aktualizujte stránku na portálu.
Po publikování funkce můžete začít událost odebírat.
Přihlásíte se k odběru události
Na nové kartě nebo novém okně webového prohlížeče se přihlaste k webu Azure Portal.
Na webu Azure Portal vyhledejte a vyberte skupiny prostředků.
V případě potřeby zadejte do vyhledávacího pole název vaší skupiny prostředků a vyfiltrujte skupiny prostředků.
V seznamu vyberte skupinu prostředků.
V seznamu prostředků vyberte obor názvů služby Event Hubs.
Na stránce Obor názvů služby Event Hubs vyberte Události a následně na panelu nástrojů vyberte + Předplatné událostí.
Na stránce Vytvořit odběr události postupujte takto:
Zadejte název odběru události.
Zadejte název systémového tématu. Systémové téma obsahuje koncový bod pro odesílatele k odesílání událostí. Další informace naleznete v tématu Systémová témata.
Jako typ koncového bodu vyberte funkci Azure Functions.
V části Koncový bod vyberte odkaz.
Na stránce Vybrat funkci Azure postupujte podle těchto kroků, pokud nejsou vyplněné automaticky.
- Vyberte předplatné Azure, které má funkci Azure.
- Vyberte skupinu prostředků pro funkci.
- Vyberte aplikaci funkcí.
- Vyberte slot nasazení.
- Vyberte funkci EventGridTriggerMigrateData.
Na stránce Vybrat funkci Azure vyberte Potvrdit výběr.
Pak zpátky na stránce Vytvořit odběr události vyberte Vytvořit.
Ověřte, že je vytvořené odběry událostí. Přepněte na kartu Odběry událostí na stránce Události pro obor názvů Event Hubs.
Spuštění aplikace, která generuje data
Dokončili jste nastavení centra událostí, vyhrazeného fondu SQL (dříve SQL Data Warehouse), aplikace funkcí Azure a odběru událostí. Před spuštěním aplikace, která generuje data pro centrum událostí, nakonfigurujte několik hodnot.
Na webu Azure Portal přejděte ke své skupině prostředků, jak jste to udělali dříve.
Vyberte obor názvů služby Event Hubs.
Na stránce Obor názvů služby Event Hubs vyberte Zásady sdíleného přístupu.
V seznamu zásad vyberte RootManageSharedAccessKey .
Vyberte tlačítko kopírovat vedle primárního připojovacího řetězce.
Vraťte se k řešení sady Visual Studio.
Klikněte pravým tlačítkem myši na projekt WindTurbineDataGenerator a vyberte Nastavit jako spouštěný projekt.
V projektu WindTurbineDataGenerator otevřete program.cs.
Nahraďte
<EVENT HUBS NAMESPACE CONNECTION STRING>
připojovací řetězec, které jste zkopírovali z portálu.Pokud jste pro jiné centrum událostí použili jiný název než
hubdatamigration
, nahraďte<EVENT HUB NAME>
názvem centra událostí.private const string EventHubConnectionString = "Endpoint=sb://demomigrationnamespace.servicebus.windows.net/..."; private const string EventHubName = "hubdatamigration";
Sestavte řešení. Spusťte aplikaci WindTurbineGenerator.exe.
Po několika minutách na druhé kartě prohlížeče, kde máte otevřené okno dotazu, zadejte dotaz na tabulku v datovém skladu pro migrovaná data.
select * from [dbo].[Fact_WindTurbineMetrics]
Důležité
V tomto příkladu použití připojovacího řetězce k ověření v oboru názvů služby Azure Event Hubs zůstane tento kurz jednoduchý. V produkčních prostředích doporučujeme používat ověřování Microsoft Entra ID. Pokud používáte aplikaci, povolte spravovanou identitu pro aplikaci a přiřaďte jí odpovídající roli (vlastník služby Azure Event Hubs, odesílatel dat služby Azure Event Hubs nebo příjemce dat služby Azure Event Hubs) v oboru názvů služby Event Hubs. Další informace naleznete v tématu Autorizace přístupu ke službě Event Hubs pomocí Microsoft Entra ID.
Monitorování řešení
Tato část vám pomůže s monitorováním nebo řešením potíží s řešením.
Zobrazení zachycených dat v účtu úložiště
Přejděte do skupiny prostředků a vyberte účet úložiště, který se používá k zachytávání dat událostí.
Na stránce Účet úložiště vyberte Prohlížeč úložiště.
Rozbalte kontejnery objektů blob a vyberte windturbinecapture.
V pravém podokně otevřete složku se stejným názvem jako obor názvů služby Event Hubs.
Otevřete složku s názvem stejné jako vaše centrum událostí (hubdatamigration).
Procházení složek a zobrazení souborů AVRO Tady je příklad:
Ověřte, že trigger Event Gridu vyvolal funkci.
Přejděte do skupiny prostředků a vyberte aplikaci funkcí.
V prostředním podokně vyberte kartu Funkce .
Ze seznamu vyberte funkci EventGridTriggerMigrateData.
Na stránce Funkce vyberte v nabídce vlevo možnost Sledovat.
Výběrem možnosti Konfigurovat nakonfigurujte Application Insights tak, aby zaznamenával protokoly vyvolání.
Vytvořte nový prostředek Application Insights nebo použijte existující prostředek.
Přejděte zpět na stránku Monitorování funkce.
Ověřte, že klientská aplikace (WindTurbineDataGenerator), která odesílá události, stále běží. Pokud ne, spusťte aplikaci.
Počkejte několik minut (5 minut nebo více) a výběrem tlačítka Aktualizovat zobrazíte vyvolání funkce.
Pokud chcete zobrazit podrobnosti, vyberte iniciaci.
Event Grid distribuuje data události mezi odběratele. Následující příklad ukazuje data událostí vygenerovaná při streamování dat přes centrum událostí zachycená v objektu blob. Všimněte si
fileUrl
zejména vlastnosti v objektudata
, který odkazuje na objekt blob v úložišti. Aplikace funkcí používá tuto adresu URL k načtení souboru objektu blob s zachycenými daty.{ "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" }
Ověřte, že jsou data uložená ve vyhrazeném fondu SQL.
Na kartě prohlížeče, kde máte otevřené okno dotazu, zadejte dotaz na tabulku ve vyhrazeném fondu SQL pro migrovaná data.
Související obsah
- Další informace o nastavení a spuštění ukázky najdete v článku s ukázkou služeb Event Hubs Capture a Event Grid.
- V tomto kurzu jste pro událost vytvořili odběr
CaptureFileCreated
událostí. Další informace o této události a všech událostech podporovaných službou Azure Blob Storage najdete v tématu Azure Event Hubs jako zdroj služby Event Grid. - Další informace o funkci Event Hubs Capture najdete v tématu Zachycení událostí prostřednictvím služby Azure Event Hubs ve službě Azure Blob Storage nebo Azure Data Lake Storage.