Rychlý start: Vytvoření Azure Data Factory pomocí PowerShellu
PLATÍ PRO: Azure Data Factory Azure Synapse Analytics
Tento rychlý start popisuje, jak pomocí PowerShellu vytvořit Azure Data Factory. Kanál, který vytvoříte v této datové továrně , kopíruje data z jedné složky do jiné ve službě Azure Blob Storage. Kurz transformace dat pomocí Azure Data Factory najdete v kurzu 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 Azure Portal, v pravém horním rohu vyberte své uživatelské jméno, vyberte ikonu ..., abyste zobrazili 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 v Azure Portal, musíte patřit 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
V tomto rychlém startu použijete účet Azure Storage pro obecné účely (konkrétně úložiště objektů blob) jako zdrojová i cílová úložiště dat. Pokud účet Azure Storage pro obecné účely nemáte, přečtěte si téma Vytvoření účtu úložiště a jeho vytvoření.
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, jak získat název účtu úložiště:
- Ve webovém prohlížeči přejděte na Azure Portal a přihlaste se pomocí svého uživatelského jména a hesla Azure.
- V nabídce Azure Portal vyberte Všechny služby a pakúčty úložiště>. Účty úložiště můžete také vyhledat a vybrat na libovolné stránce.
- 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ě.
Účty úložiště můžete také vyhledat a vybrat na libovolné stránce.
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 Kontejnery přehledu>.
Na panelu <nástrojů stránky Název účtu> - Kontejnery vyberte Kontejner.
V dialogovém okně Nový kontejner jako název zadejte adftutorial a pak vyberte OK. Stránka <Název účtu> - Kontejnery se aktualizuje tak, aby v seznamu kontejnerů obsahovala adftutorial .
Přidání vstupní složky a souboru pro kontejner objektů blob
V této části vytvoříte v kontejneru, který jste vytvořili, složku s názvem input a pak do vstupní složky nahrajete ukázkový soubor. 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 do Azure Portal a postupujte takto:
Na stránceNázevúčtu>Kontejnery, kde jste skončili, vyberte v aktualizovaném seznamu kontejnerů adftutorial<. -
- Pokud jste okno zavřeli nebo přešli na jinou stránku, přihlaste se k Azure Portal znovu.
- V nabídce Azure Portal vyberte Všechny služby a pakúčty úložiště>. Účty úložiště můžete také vyhledat a vybrat na libovolné stránce.
- 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 vyhledejte a vyberte souboremp.txt .
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
K interakci s Azure doporučujeme použít modul Azure Az PowerShell. Začněte tím, že si projdete téma Instalace Azure PowerShell. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.
Podle pokynů v tématu Instalace a konfigurace Azure PowerShell nainstalujte nejnovější moduly Azure PowerShell.
Upozornění
Pokud nepoužíváte nejnovější verze PowerShellu a modulu Data Factory, můžete při spouštění příkazů 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. Nahraďte SubscriptionId 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. Pří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í vlastností Location a ResourceGroupName z proměnné $ResGrp:
$DataFactory = Set-AzDataFactoryV2 -ResourceGroupName $ResGrp.ResourceGroupName ` -Location $ResGrp.Location -Name $dataFactoryName
Je třeba počítat s následujícím:
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 jako typ ověřování úložiště dat klíč účtu , ale můžete zvolit jiné podporované metody ověřování: identifikátor URI SAS, instanční objekt a spravovaná identita v případě potřeby. Podrobnosti najdete v odpovídajících částech tohoto článku . K bezpečnému ukládání tajných kódů pro úložiště dat se také doporučuje použít Key Vault Azure. 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říklad,AzureStorageLinkedService.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"
Zde 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"
Zde 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"
Zde je ukázkový výstup:
DatasetName : OutputDataset ResourceGroupName : <resourceGroupname> DataFactoryName : <dataFactoryName> Structure : Properties : Microsoft.Azure.Management.DataFactory.Models.BinaryDataset
Vytvoření kanálu
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": [] } }
Spuštěním rutiny Set-AzDataFactoryV2Pipeline vytvořte kanál Adfv2QuickStartPipeline.
$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 }
Tady 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.
V Azure Portal na stránce kontejneru adftutorial vyberte Aktualizovat a zobrazte výstupní složku.
V seznamu složek vyberte výstup .
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
Další kroky
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.