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ě:

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

  1. Na stránce účtu úložiště vyberte Přehled>kontejnerů.

  2. Na panelu <nástrojů na stránce Kontejnery názvu - >účtu vyberte Kontejner.

  3. 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ů.<

    List of containers

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, jako je 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:

  1. <Na stránce Kontejnery s názvem - >účtu, kde jste skončili, vyberte z aktualizovaného seznamu kontejnerů adftutorial.

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

  3. Na stránce Nahrát objekt blob vyberte pole Soubory a pak přejděte na soubor emp.txt a vyberte ho.

  4. Rozbalte nadpis Upřesnit. Stránka se teď zobrazí takto:

    Select Advanced link

  5. Do pole Nahrát do složky zadejte vstup.

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

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

  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. Místo SubscriptionId použijte 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. 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.

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

  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"
    

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

  1. Ve složce C:\ADFv2QuickStartPSH vytvořte soubor JSON s názvem InputDataset.jsons 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. 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
    
  3. Pomocí stejného postupu vytvořte výstupní datovou sadu. Ve složce C:\ADFv2QuickStartPSH vytvořte soubor JSON s názvem OutputDataset.jsons 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 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.

  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
    }
    

    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           : 
    
  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. Na webu Azure Portal na stránce kontejneru adftutorial vyberte Aktualizovat , aby se zobrazila výstupní složka.

    Screenshot shows the container page where you can refresh the page.

  2. Vyberte výstup v seznamu složek.

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

    Screenshot shows the output folder contents.

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

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.