Rychlý Start: vytvoření Azure Data Factory pomocí prostředí PowerShell

PLATÍ PRO: Azure Data Factory Azure Synapse Analytics

V tomto rychlém startu se dozvíte, 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é složky v úložišti objektů BLOB v Azure. Kurz o tom, jak transformovat data 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 rámci předplatného, klikněte na Azure Portal, v pravém horním rohu vyberte své uživatelské jméno, pro další možnosti vyberte ikonu ... 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:

  • K vytváření a správě podřízených prostředků v Azure Portal musíte patřit do role přispěvatel Data Factory na úrovni skupiny prostředků nebo výše.
  • 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 pro obecné účely Azure Storage (konkrétně úložiště objektů BLOB) jako zdrojové i cílové úložiště dat. Pokud nemáte účet pro obecné účely Azure Storage, přečtěte si článek Vytvoření účtu úložiště a vytvořte si ho.

Získání názvu účtu úložiště

Pro účely tohoto rychlého startu potřebujete název účtu Azure Storage. Následující postup popisuje kroky pro získání názvu účtu úložiště:

  1. Ve webovém prohlížeči přejdete na Azure Portal a přihlaste se pomocí uživatelského jména a hesla Azure.
  2. V nabídce 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.
  3. Na stránce účty úložiště vyfiltrujte váš účet úložiště (Pokud je to potřeba) 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.

  1. Na stránce účet úložiště vyberte přehledové > kontejnery.

  2. Na <Account name> - panelu nástrojů stránky kontejnerů vyberte kontejner.

  3. V dialogovém okně Nový kontejner jako název zadejte adftutorial a pak vyberte OK. <Account name> - Stránka kontejnery je aktualizována tak, aby zahrnovala adftutorial v seznamu kontejnerů.

    Seznam kontejnerů

Přidání vstupní složky a souboru pro kontejner objektů BLOB

V této části vytvoříte ve vytvořeném kontejneru složku s názvem input a nahrajete do ní ukázkový soubor. Než začnete, otevřete textový editor, jako je 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 proveďte následující kroky:

  1. Na <Account name> - stránce kontejnery , kde jste skončili, vyberte adftutorial z aktualizovaného seznamu kontejnerů.

    1. Pokud jste okno zavřeli nebo jste přešli na jinou stránku, přihlaste se k Azure Portal znovu.
    2. V nabídce 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.
    3. Vyberte svůj účet úložiště a pak vyberte kontejnery > adftutorial.
  2. Na panelu nástrojů na stránce kontejneru adftutorial vyberte nahrát.

  3. Na stránce nahrát objekt BLOB vyberte pole soubory a pak vyhledejte a vyberte soubor emp.txt .

  4. Rozbalte nadpis Upřesnit . Stránka se teď zobrazí, jak je znázorněno na následujícím obrázku:

    Výběr odkazu Upřesnit

  5. Do pole Odeslat do složky zadejte Input ( vstup).

  6. Vyberte tlačítko Nahrát. Měli byste vidět soubor emp.txt a stav nahrávání v seznamu.

  7. Vyberte ikonu Zavřít ( X) pro zavření stránky nahrát objekt BLOB .

Nechejte stránku kontejneru adftutorial otevřenou. Použijete ji k ověření výstupu na konci tohoto rychlého startu.

Azure PowerShell

Poznámka

Tento článek používá modul Azure Az PowerShell, což je doporučený modul PowerShellu pro interakci s Azure. Pokud chcete začít s modulem Az PowerShell, projděte si téma věnované instalaci 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ší Azure PowerShell moduly podle pokynů v tématu jak nainstalovat a nakonfigurovat Azure PowerShell.

Upozornění

Pokud nepoužíváte nejnovější verze PowerShellu a Data Factory modulu, můžete při spouštění příkazů použít k chybám deserializaci.

Přihlášení do PowerShellu

  1. 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.

  2. 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
    
  3. Spuštěním následujícího příkazu zobrazíte všechna předplatná pro tento účet:

    Get-AzSubscription
    
  4. 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 číslem ID vašeho předplatného Azure:

    Select-AzSubscription -SubscriptionId "<SubscriptionId>"
    

Vytvoření datové továrny

  1. 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.

  2. 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.

  3. 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";
    
  4. Pokud chcete vytvořit datovou továrnu, spusťte následující rutinu set-AzDataFactoryV2 s použitím vlastnosti 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 klíč účtu jako typ ověřování pro úložiště dat, ale v případě potřeby můžete vybrat jiné podporované metody ověřování: URI SAS,instanční objekt a spravovaná identita . 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 je také vhodné použít Azure Key Vault. Podrobnější ilustrace najdete v tomto článku .

  1. 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.

  2. V PowerShellu přejděte do složky ADFv2QuickStartPSH.

    Set-Location 'C:\ADFv2QuickStartPSH'
    
  3. 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í.

  1. 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"
                }
            }
        }
    }
    
  2. Chcete-li 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
    
  3. 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"
                }
            }
        }
    }
    
  4. Spuštěním rutiny set-AzDataFactoryV2Dataset vytvořte sadu.

    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.

  1. 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": []
        }
    }
    
  2. 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

  1. 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           : 
    
  2. 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"
    
  3. 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.

  1. V Azure Portal na stránce kontejneru adftutorial vyberte Aktualizovat a zobrazte výstupní složku.

    Snímek obrazovky se stránkou kontejneru, kde můžete stránku aktualizovat

  2. V seznamu složek vyberte output.

  3. Potvrďte, že je do výstupní složky zkopírovaný soubor emp.txt.

    Snímek obrazovky s obsahem výstupní složky

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

Odstranění 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.