Rychlý start: Vytvoření služby Azure Data Factory pomocí PowerShellu
PLATÍ PRO: Azure Data Factory Azure Synapse Analytics
Tip
Vyzkoušejte si službu Data Factory v Microsoft Fabric, řešení pro analýzy typu all-in-one pro podniky. Microsoft Fabric zahrnuje všechno od přesunu dat až po datové vědy, analýzy v reálném čase, business intelligence a vytváření sestav. Přečtěte si, jak začít používat novou zkušební verzi zdarma.
Tento rychlý start popisuje, jak pomocí PowerShellu vytvořit službu Azure Data Factory. Kanál, který vytvoříte v této datové továrně, kopíruje data z jedné složky do jiné složky v úložišti objektů blob Azure. Kurz předvádějící způsoby transformace dat pomocí Azure Data Factory najdete v tématu Kurz: Transformace dat pomocí Sparku.
Poznámka:
Tento článek neposkytuje podrobný úvod do služby Data Factory. Úvod do služby Azure Data Factory najdete v tématu Úvod do Azure Data Factory.
Požadavky
Předplatné Azure
Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.
Role Azure
Pro vytvoření instancí služby Data Factory musí být uživatelský účet, který použijete pro přihlášení k Azure, členem role přispěvatel nebo vlastník nebo správcem předplatného Azure. Pokud chcete zobrazit oprávnění, která máte v předplatném, přejděte na web Azure Portal, vyberte své uživatelské jméno v pravém horním rohu, vyberte ikonu ..., kde najdete další možnosti, a pak vyberte Moje oprávnění. Pokud máte přístup k několika předplatným, vyberte odpovídající předplatné.
Při vytváření a správě podřízených prostředků pro službu Data Factory, včetně datových sad, propojených služeb, kanálů, triggerů a prostředí Integration Runtime, platí následující požadavky:
- Pokud chcete vytvářet a spravovat podřízené prostředky na webu Azure Portal, je potřeba, abyste patřili do role Přispěvatel Data Factory na úrovni skupiny prostředků nebo vyšší.
- Pro vytváření a správu podřízených prostředků pomocí PowerShellu nebo sady SDK na úrovni prostředku nebo vyšší je dostatečná role Přispěvatel.
Ukázku pokynů pro přidání uživatele do role najdete v článku věnovaném přidávání rolí.
Další informace najdete v následujících článcích:
Účet služby Azure Storage
Jako zdrojové i cílové úložiště dat v tomto rychlém startu použijete účet služby Azure Storage pro obecné účely (konkrétně úložiště objektů blob). Pokud nemáte účet Azure Storage pro obecné účely, přečtěte si téma Vytvoření účtu úložiště, abyste ho vytvořili.
Získání názvu účtu úložiště
Pro účely tohoto rychlého startu potřebujete název účtu služby Azure Storage. Následující postup obsahuje postup získání názvu účtu úložiště:
- Ve webovém prohlížeči přejděte na web Azure Portal a přihlaste se pomocí uživatelského jména a hesla Azure.
- V nabídce webu Azure Portal vyberte Všechny služby a pak vyberte Účty úložiště úložiště>. Můžete také vyhledat a vybrat účty úložiště z libovolné stránky.
- Na stránce Účty úložiště vyfiltrujte svůj účet úložiště (v případě potřeby) a pak vyberte svůj účet úložiště.
Můžete také vyhledat a vybrat účty úložiště z libovolné stránky.
Vytvoření kontejneru objektů blob
V této části vytvoříte v úložišti objektů blob v Azure kontejner objektů blob s názvem adftutorial.
Na stránce účtu úložiště vyberte Přehled>kontejnerů.
Na panelu <nástrojů na stránce Kontejnery názvu - >účtu vyberte Kontejner.
V dialogovém okně Nový kontejner jako název zadejte adftutorial a pak vyberte OK. Stránka Kontejnery názvů - >účtů se aktualizuje tak, aby zahrnovala adftutorial v seznamu kontejnerů.<
Přidání vstupní složky a souboru pro kontejner objektů blob
V této části vytvoříte složku s názvem vstup v kontejneru, který jste vytvořili, a pak nahrajete ukázkový soubor do vstupní složky. Než začnete, otevřete textový editor, například Poznámkový blok, a vytvořte soubor s názvem emp.txt s následujícím obsahem:
John, Doe
Jane, Doe
Uložte soubor do složky C:\ADFv2QuickStartPSH . (Pokud složka ještě neexistuje, vytvořte ji.) Pak se vraťte na web Azure Portal a postupujte takto:
<Na stránce Kontejnery s názvem - >účtu, kde jste skončili, vyberte z aktualizovaného seznamu kontejnerů adftutorial.
- Pokud jste okno zavřeli nebo jste přešli na jinou stránku, znovu se přihlaste k webu Azure Portal .
- V nabídce webu Azure Portal vyberte Všechny služby a pak vyberte Účty úložiště úložiště>. Můžete také vyhledat a vybrat účty úložiště z libovolné stránky.
- Vyberte svůj účet úložiště a pak vyberte Kontejnery>adftutorial.
Na panelu nástrojů stránky kontejneru adftutorial vyberte Nahrát.
Na stránce Nahrát objekt blob vyberte pole Soubory a pak přejděte k souboru emp.txt a vyberte ho.
Rozbalte nadpis Upřesnit. Stránka se teď zobrazí takto:
Do pole Nahrát do složky zadejte vstup.
vyberte tlačítko Nahrát. Měli byste vidět soubor emp.txt a stav nahrávání v seznamu.
Výběrem ikony Zavřít (X) zavřete stránku Nahrát objekt blob.
Nechte stránku kontejneru adftutorial otevřenou. Použijete ji k ověření výstupu na konci tohoto rychlého startu.
Azure PowerShell
Poznámka:
Při práci s Azure doporučujeme používat modul Azure Az PowerShellu. Začněte tím, že si projdete téma Instalace Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.
Nainstalujte nejnovější moduly Azure PowerShellu podle pokynů v tématu Instalace a konfigurace Azure PowerShellu.
Upozorňující
Pokud nepoužíváte nejnovější verze modulu PowerShell a Data Factory, při spouštění příkazů můžete narazit na chyby deserializace.
Přihlášení do PowerShellu
Spusťte na svém počítači PowerShell. Nechte PowerShell otevřený až do konce tohoto rychlého startu. Pokud ho zavřete a znovu otevřete, tyto příkazy bude potřeba znovu spustit.
Spusťte následující příkaz a zadejte uživatelské jméno a heslo Azure, které používáte k přihlášení na Azure Portal:
Connect-AzAccount
Spuštěním následujícího příkazu zobrazíte všechna předplatná pro tento účet:
Get-AzSubscription
Pokud se zobrazí několik předplatných přidružených vašem účtu, spuštěním následujícího příkazu vyberte předplatné, se kterým chcete pracovat. Místo SubscriptionId použijte ID vašeho předplatného Azure:
Select-AzSubscription -SubscriptionId "<SubscriptionId>"
Vytvoření datové továrny
Definujte proměnnou pro název skupiny prostředků, kterou použijete později v příkazech PowerShellu. Zkopírujte do PowerShellu následující text příkazu, zadejte název skupiny prostředků Azure v uvozovkách a pak příkaz spusťte. Například:
"ADFQuickStartRG"
.$resourceGroupName = "ADFQuickStartRG";
Pokud již skupina prostředků existuje, nepřepisujte ji. Přiřaďte proměnné
$ResourceGroupName
jinou hodnotu a spusťte tento příkaz znovu.Pokud chcete vytvořit skupinu prostředků Azure, spusťte následující příkaz:
$ResGrp = New-AzResourceGroup $resourceGroupName -location 'East US'
Pokud již skupina prostředků existuje, nepřepisujte ji. Přiřaďte proměnné
$ResourceGroupName
jinou hodnotu a spusťte tento příkaz znovu.Definujte proměnnou název datové továrny.
Důležité
Aktualizujte název datové továrny tak, aby byl globálně jedinečný. Například ADFTutorialFactorySP1127.
$dataFactoryName = "ADFQuickStartFactory";
Pokud chcete vytvořit datovou továrnu, spusťte následující rutinu Set-AzDataFactoryV2 pomocí vlastnosti Location a ResourceGroupName z proměnné $ResGrp:
$DataFactory = Set-AzDataFactoryV2 -ResourceGroupName $ResGrp.ResourceGroupName ` -Location $ResGrp.Location -Name $dataFactoryName
Mějte na paměti následující body:
Název objektu pro vytváření dat Azure musí být globálně jedinečný. Pokud se zobrazí následující chyba, změňte název a zkuste to znovu.
The specified Data Factory name 'ADFv2QuickStartDataFactory' is already in use. Data Factory names must be globally unique.
Pro vytvoření instancí Data Factory musí být uživatelský účet, který použijete pro přihlášení k Azure, členem rolí přispěvatel nebo vlastník nebo správcem předplatného Azure.
Pokud chcete zobrazit seznam oblastí Azure, ve kterých je služba Data Factory aktuálně dostupná, na následující stránce vyberte oblasti, které vás zajímají, pak rozbalte Analýza a vyhledejte Data Factory:Dostupné produkty v jednotlivých oblastech. Úložiště dat (Azure Storage, Azure SQL Database atd.) a výpočetní prostředí (HDInsight atd.) používané datovou továrnou mohou být v jiných oblastech.
Vytvoření propojené služby
V datové továrně vytvořte propojené služby, abyste svá úložiště dat a výpočetní služby spojili s datovou továrnou. V tomto rychlém startu vytvoříte propojenou službu Azure Storage, která slouží jako zdroj i úložiště jímky. Tato propojená služba má informace o připojení, které služba Data Factory používá pro připojení za běhu.
Tip
V tomto rychlém startu použijete klíč účtu jako typ ověřování pro vaše úložiště dat, ale v případě potřeby můžete zvolit jiné podporované metody ověřování: identifikátor URI SAS, instanční objekt a spravovaná identita . Podrobnosti najdete v odpovídajících částech tohoto článku . Pokud chcete bezpečně ukládat tajné kódy pro úložiště dat, doporučuje se také použít Azure Key Vault. Podrobné ilustrace najdete v tomto článku .
Ve složce C:\ADFv2QuickStartPSH vytvořte soubor JSON s názvem AzureStorageLinkedService.json s následujícím obsahem: (pokud ještě neexistuje, složku ADFv2QuickStartPSH vytvořte).
Důležité
Než soubor uložíte, položky <accountName> a <accountKey> nahraďte názvem svého účtu Azure Storage a jeho klíčem.
{ "name": "AzureStorageLinkedService", "properties": { "annotations": [], "type": "AzureBlobStorage", "typeProperties": { "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountName>;AccountKey=<accountKey>;EndpointSuffix=core.windows.net" } } }
Pokud používáte Poznámkový blok, v dialogovém okně Uložit jako v poli Uložit jako typ vyberte Všechny soubory. Jinak se k souboru může přidat přípona
.txt
. NapříkladAzureStorageLinkedService.json.txt
. Pokud soubor před otevřením v Poznámkovém bloku vytvoříte v Průzkumníku souborů, přípona.txt
se možná nezobrazí, protože ve výchozím nastavení je nastavená možnost Skrýt příponu souborů známých typů. Než budete pokračovat k dalšímu kroku, odeberte příponu.txt
.V PowerShellu přejděte do složky ADFv2QuickStartPSH.
Set-Location 'C:\ADFv2QuickStartPSH'
Spuštěním rutiny Set-AzDataFactoryV2LinkedService vytvořte propojenou službu AzureStorageLinkedService.
Set-AzDataFactoryV2LinkedService -DataFactoryName $DataFactory.DataFactoryName ` -ResourceGroupName $ResGrp.ResourceGroupName -Name "AzureStorageLinkedService" ` -DefinitionFile ".\AzureStorageLinkedService.json"
Tady je ukázkový výstup:
LinkedServiceName : AzureStorageLinkedService ResourceGroupName : <resourceGroupName> DataFactoryName : <dataFactoryName> Properties : Microsoft.Azure.Management.DataFactory.Models.AzureBlobStorageLinkedService
Vytvoření datových sad
V tomto postupu vytvoříte dvě datové sady:InputDataset a OutputDataset. Tyto datové sady jsou typu Binary. Odkazují na propojenou službu Azure Storage, kterou jste vytvořili v předchozí části. Vstupní datová sada představuje zdrojová data ve vstupní složce. V definici vstupní datové sady určíte kontejner objektů blob (adftutorial), složku (input) a soubor (emp.txt) obsahující zdrojová data. Výstupní datová sada představuje data kopírovaná do cíle. V definici výstupní datové sady určíte kontejner objektů blob (adftutorial), složku (output) a soubor, do kterého se data kopírují.
Ve složce C:\ADFv2QuickStartPSH vytvořte soubor JSON s názvem InputDataset.json s následujícím obsahem:
{ "name": "InputDataset", "properties": { "linkedServiceName": { "referenceName": "AzureStorageLinkedService", "type": "LinkedServiceReference" }, "annotations": [], "type": "Binary", "typeProperties": { "location": { "type": "AzureBlobStorageLocation", "fileName": "emp.txt", "folderPath": "input", "container": "adftutorial" } } } }
Pokud chcete vytvořit datovou sadu: InputDataset, spusťte rutinu Set-AzDataFactoryV2Dataset .
Set-AzDataFactoryV2Dataset -DataFactoryName $DataFactory.DataFactoryName ` -ResourceGroupName $ResGrp.ResourceGroupName -Name "InputDataset" ` -DefinitionFile ".\InputDataset.json"
Tady je ukázkový výstup:
DatasetName : InputDataset ResourceGroupName : <resourceGroupname> DataFactoryName : <dataFactoryName> Structure : Properties : Microsoft.Azure.Management.DataFactory.Models.BinaryDataset
Pomocí stejného postupu vytvořte výstupní datovou sadu. Ve složce C:\ADFv2QuickStartPSH vytvořte soubor JSON s názvem OutputDataset.json s následujícím obsahem:
{ "name": "OutputDataset", "properties": { "linkedServiceName": { "referenceName": "AzureStorageLinkedService", "type": "LinkedServiceReference" }, "annotations": [], "type": "Binary", "typeProperties": { "location": { "type": "AzureBlobStorageLocation", "folderPath": "output", "container": "adftutorial" } } } }
Spuštěním rutiny Set-AzDataFactoryV2Dataset vytvořte OutDataset.
Set-AzDataFactoryV2Dataset -DataFactoryName $DataFactory.DataFactoryName ` -ResourceGroupName $ResGrp.ResourceGroupName -Name "OutputDataset" ` -DefinitionFile ".\OutputDataset.json"
Tady je ukázkový výstup:
DatasetName : OutputDataset ResourceGroupName : <resourceGroupname> DataFactoryName : <dataFactoryName> Structure : Properties : Microsoft.Azure.Management.DataFactory.Models.BinaryDataset
Vytvořit kanál
V tomto postupu vytvoříte kanál s aktivitou kopírování, která používá vstupní a výstupní datové sady. Aktivita kopírování kopíruje data ze souboru zadaného v nastavení vstupní datové sady do souboru zadaného v nastavení výstupní datové sady.
Ve složce C:\ADFv2QuickStartPSH vytvořte soubor JSON s názvem Adfv2QuickStartPipeline.json s následujícím obsahem:
{ "name": "Adfv2QuickStartPipeline", "properties": { "activities": [ { "name": "CopyFromBlobToBlob", "type": "Copy", "dependsOn": [], "policy": { "timeout": "7.00:00:00", "retry": 0, "retryIntervalInSeconds": 30, "secureOutput": false, "secureInput": false }, "userProperties": [], "typeProperties": { "source": { "type": "BinarySource", "storeSettings": { "type": "AzureBlobStorageReadSettings", "recursive": true } }, "sink": { "type": "BinarySink", "storeSettings": { "type": "AzureBlobStorageWriteSettings" } }, "enableStaging": false }, "inputs": [ { "referenceName": "InputDataset", "type": "DatasetReference" } ], "outputs": [ { "referenceName": "OutputDataset", "type": "DatasetReference" } ] } ], "annotations": [] } }
Pokud chcete vytvořit kanál: Adfv2QuickStartPipeline, spusťte rutinu Set-AzDataFactoryV2Pipeline .
$DFPipeLine = Set-AzDataFactoryV2Pipeline ` -DataFactoryName $DataFactory.DataFactoryName ` -ResourceGroupName $ResGrp.ResourceGroupName ` -Name "Adfv2QuickStartPipeline" ` -DefinitionFile ".\Adfv2QuickStartPipeline.json"
Vytvoření spuštění kanálu
V tomto kroku vytvoříte spuštění kanálu.
Spuštěním rutiny Invoke-AzDataFactoryV2Pipeline vytvořte spuštění kanálu. Tato rutina vrací ID spuštění kanálu pro budoucí monitorování.
$RunId = Invoke-AzDataFactoryV2Pipeline `
-DataFactoryName $DataFactory.DataFactoryName `
-ResourceGroupName $ResGrp.ResourceGroupName `
-PipelineName $DFPipeLine.Name
Monitorování spuštění kanálu
Spusťte následující skript PowerShellu, který bude nepřetržitě kontrolovat stav spuštění kanálu, dokud nedokončí kopírování dat. Zkopírujte/vložte následující skript v okně PowerShellu a stiskněte klávesu Enter.
while ($True) { $Run = Get-AzDataFactoryV2PipelineRun ` -ResourceGroupName $ResGrp.ResourceGroupName ` -DataFactoryName $DataFactory.DataFactoryName ` -PipelineRunId $RunId if ($Run) { if ( ($Run.Status -ne "InProgress") -and ($Run.Status -ne "Queued") ) { Write-Output ("Pipeline run finished. The status is: " + $Run.Status) $Run break } Write-Output ("Pipeline is running...status: " + $Run.Status) } Start-Sleep -Seconds 10 }
Zde je ukázkový výstup spuštění kanálu:
Pipeline is running...status: InProgress Pipeline run finished. The status is: Succeeded ResourceGroupName : ADFQuickStartRG DataFactoryName : ADFQuickStartFactory RunId : 00000000-0000-0000-0000-0000000000000 PipelineName : Adfv2QuickStartPipeline LastUpdated : 8/27/2019 7:23:07 AM Parameters : {} RunStart : 8/27/2019 7:22:56 AM RunEnd : 8/27/2019 7:23:07 AM DurationInMs : 11324 Status : Succeeded Message :
Spusťte následující skript, který načte podrobnosti o spuštění aktivity kopírování, například velikost načtených/zapsaných dat.
Write-Output "Activity run details:" $Result = Get-AzDataFactoryV2ActivityRun -DataFactoryName $DataFactory.DataFactoryName -ResourceGroupName $ResGrp.ResourceGroupName -PipelineRunId $RunId -RunStartedAfter (Get-Date).AddMinutes(-30) -RunStartedBefore (Get-Date).AddMinutes(30) $Result Write-Output "Activity 'Output' section:" $Result.Output -join "`r`n" Write-Output "Activity 'Error' section:" $Result.Error -join "`r`n"
Zkontrolujte, jestli se zobrazí výstup podobný následujícímu ukázkovému výstupu výsledku spuštění aktivity:
ResourceGroupName : ADFQuickStartRG DataFactoryName : ADFQuickStartFactory ActivityRunId : 00000000-0000-0000-0000-000000000000 ActivityName : CopyFromBlobToBlob PipelineRunId : 00000000-0000-0000-0000-000000000000 PipelineName : Adfv2QuickStartPipeline Input : {source, sink, enableStaging} Output : {dataRead, dataWritten, filesRead, filesWritten...} LinkedServiceName : ActivityRunStart : 8/27/2019 7:22:58 AM ActivityRunEnd : 8/27/2019 7:23:05 AM DurationInMs : 6828 Status : Succeeded Error : {errorCode, message, failureType, target} Activity 'Output' section: "dataRead": 20 "dataWritten": 20 "filesRead": 1 "filesWritten": 1 "sourcePeakConnections": 1 "sinkPeakConnections": 1 "copyDuration": 4 "throughput": 0.01 "errors": [] "effectiveIntegrationRuntime": "DefaultIntegrationRuntime (Central US)" "usedDataIntegrationUnits": 4 "usedParallelCopies": 1 "executionDetails": [ { "source": { "type": "AzureBlobStorage" }, "sink": { "type": "AzureBlobStorage" }, "status": "Succeeded", "start": "2019-08-27T07:22:59.1045645Z", "duration": 4, "usedDataIntegrationUnits": 4, "usedParallelCopies": 1, "detailedDurations": { "queuingDuration": 3, "transferDuration": 1 } } ] Activity 'Error' section: "errorCode": "" "message": "" "failureType": "" "target": "CopyFromBlobToBlob"
Kontrola nasazených prostředků
Kanál v kontejneru objektů blob adftutorial automaticky vytvoří výstupní složku. Potom do výstupní složky zkopíruje soubor emp.txt ze vstupní složky.
Na webu Azure Portal na stránce kontejneru adftutorial vyberte Aktualizovat , aby se zobrazila výstupní složka.
Vyberte výstup v seznamu složek.
Potvrďte, že je do výstupní složky zkopírovaný soubor emp.txt.
Vyčištění prostředků
Prostředky, které jste vytvořili v rámci tohoto rychlého startu, můžete vyčistit dvěma způsoby. Můžete odstranit skupinu prostředků Azure, což zahrnuje odstranění všech prostředků v této skupině prostředků. Pokud chcete ostatní prostředky zachovat beze změny, odstraňte pouze datovou továrnu, kterou jste vytvořili v tomto kurzu.
Odstranění skupiny prostředků odstraní všechny prostředky, které v ní jsou, včetně datových továren. Spuštěním následujícího příkazu odstraníte celou skupinu prostředků:
Remove-AzResourceGroup -ResourceGroupName $resourcegroupname
Poznámka:
Vyřazení skupiny prostředků může nějakou dobu trvat. Prosíme vás o trpělivost.
Pokud chcete odstranit jenom datovou továrnu, a ne celou skupinu prostředků, spusťte následující příkaz:
Remove-AzDataFactoryV2 -Name $dataFactoryName -ResourceGroupName $resourceGroupName
Související obsah
Kanál v této ukázce kopíruje data z jednoho umístění do jiného umístění v úložišti objektů blob Azure. Projděte si kurzy, kde se dozvíte o použití služby Data Factory ve více scénářích.