Quickstart: Een Azure Data Factory maken met behulp van PowerShell

Van toepassing op: Azure Data Factory Azure Synapse Analytics

Aanbeveling

Data Factory in Microsoft Fabric is de volgende generatie van Azure Data Factory, met een eenvoudigere architectuur, ingebouwde AI en nieuwe functies. Als u nieuw bent in gegevensintegratie, begint u met Fabric Data Factory. Bestaande ADF-workloads kunnen upgraden naar Fabric om toegang te krijgen tot nieuwe mogelijkheden voor gegevenswetenschap, realtime analyses en rapportage.

In deze quickstart wordt beschreven hoe u PowerShell gebruikt om een Azure Data Factory te maken. De pijplijn die u in deze gegevensfabriek maakt, kopieert gegevens uit de ene map naar een andere map in een Azure-blobopslag. Zie de zelfstudie voor het transformeren van gegevens met behulp van Azure Data Factory in Tutorial: Gegevens transformeren met Spark.

Opmerking

Dit artikel bevat geen gedetailleerde inleiding tot de Data Factory-service. Zie Inleidende inleiding tot Azure Data Factory voor een inleiding tot de Azure Data Factory-service.

Vereiste voorwaarden

Azure-abonnement

Als u geen Azure-abonnement hebt, maakt u een vrij account voordat u begint.

Azure-rollen

Als u Data Factory-exemplaren wilt maken, moet het gebruikersaccount waarmee u zich aanmeldt bij Azure lid zijn van de rol contributor of owner of een administrator van het Azure-abonnement. Als u de machtigingen wilt bekijken die u in het abonnement hebt, gaat u naar de Azure-portal en selecteert u uw gebruikersnaam in de rechterbovenhoek en selecteert u '... " pictogram voor meer opties en selecteer vervolgens My-machtigingen. Als u toegang tot meerdere abonnementen hebt, moet u het juiste abonnement selecteren.

Als u kindbronnen wilt maken en beheren voor Data Factory, inclusief dataset, gekoppelde services, pipeline, triggers en integratie-runtimes, zijn de volgende vereisten van toepassing:

  • Als u onderliggende resources wilt maken en beheren in de Azure-portal, moet u behoren tot de rol Data Factory-inzender op het niveau van de resourcegroep of hoger.
  • Voor het creëren en beheren van sub-resources met PowerShell of de SDK is de rol Bijdrager op resourceniveau of hoger voldoende.

Zie het artikel Rollen toevoegen voor voorbeelden van instructies voor het toevoegen van een gebruiker aan een rol.

Zie de volgende artikelen voor meer informatie:

Azure Storage-account

U gebruikt een algemeen Azure Storage-account (met name Blob Storage) als zowel source als destination gegevensarchieven in deze quickstart. Als u geen algemeen Azure Storage account hebt, raadpleegt u Maak een opslagaccount om er een te maken.

De naam van het opslagaccount ophalen

U hebt de naam van uw Azure Storage-account nodig voor deze quickstart. De volgende procedure bevat stappen waarmee u de naam van uw opslagaccount kunt ophalen:

  1. Ga in een webbrowser naar de Azure portal en meld u aan met uw Azure gebruikersnaam en wachtwoord.
  2. Selecteer in het menu Azure portal All services en selecteer vervolgens Storage>Storage-accounts. U kunt vanaf elke pagina ook Storage-accounts zoeken en selecteren.
  3. Filter op de pagina Storage-accounts op uw opslagaccount (indien nodig) en selecteer vervolgens uw opslagaccount.

U kunt vanaf elke pagina ook Storage-accounts zoeken en selecteren.

Een blobcontainer maken

In deze sectie maakt u een blobcontainer met de naam adftutorial in Azure Blob Storage.

  1. Ga naar de opslagaccountpagina en selecteer Overzicht>Containers.

  2. Selecteer < op de werkbalk van de > - .

  3. Voer in het dialoogvenster Nieuwe container als naam adftutorial in en selecteer OK. De pagina <Accountnaam> - Containers wordt bijgewerkt om adftutorial op te nemen in de lijst met containers.

    Lijst met containers

Voeg een invoermap en -bestand toe aan de blobcontainer

In dit gedeelte maakt u een map met de naam invoer in de container die u hebt gemaakt en vervolgens uploadt u een voorbeeldbestand naar de invoermap. Voor u begint, opent u een tekstverwerker zoals Kladblok en maakt u een bestand met de naam emp.txt met de volgende inhoud:

John, Doe
Jane, Doe

Sla het bestand op in de map c:\ADFv2QuickStartPSH. (Als de map nog niet bestaat, maakt u deze.) Ga vervolgens terug naar de Azure-portal en volg deze stappen:

  1. Op de pagina <Accountnaam> - Containers waar u was gebleven, selecteert u adftutorial uit de bijgewerkte lijst met containers.

    1. Als u het venster hebt gesloten of naar een andere pagina bent gegaan, meldt u zich opnieuw aan bij de Azure-portal.
    2. Selecteer in het menu Azure portal All services en selecteer vervolgens Storage>Storage-accounts. U kunt vanaf elke pagina ook Storage-accounts zoeken en selecteren.
    3. Selecteer uw opslagaccount en selecteer vervolgens Containers>adftutorial.
  2. Selecteer in de werkbalk van de containerpagina adftutorialUploaden.

  3. Selecteer op de pagina Blob uploaden het venster Bestanden en blader vervolgens naar en selecteer het bestand emp.txt.

  4. Vouw de kop Geavanceerd uit. De pagina wordt nu als volgt weergegeven:

    De koppeling Geavanceerd selecteren

  5. In het vak Uploaden naar map voert u invoer in.

  6. Selecteer de knop Uploaden. U zou het bestand emp.txt en de status van de upload nu in de lijst moeten zien.

  7. Selecteer het pictogram Sluiten (X) om de pagina Blob uploaden te sluiten.

Houdt de containerpagina adftutorial open. U gebruikt het om aan het einde van deze quickstart de uitvoer te controleren.

Azure PowerShell

Opmerking

U wordt aangeraden de Azure Az PowerShell-module te gebruiken om te communiceren met Azure. Zie Install Azure PowerShell om aan de slag te gaan. Zie Migrate Azure PowerShell van AzureRM naar Az voor meer informatie over het migreren naar de Az PowerShell-module.

Installeer de nieuwste Azure PowerShell-modules door de instructies te volgen in Hoe u Azure PowerShell installeert en configureert.

Waarschuwing

Als u geen gebruik maakt van de nieuwste versies van de Module PowerShell en Data Factory, kunt u tijdens het uitvoeren van de opdrachten te maken hebben met deserialisatiefouten.

Aanmelden bij PowerShell

  1. Start PowerShell op uw computer. Houd PowerShell open tot het einde van deze quickstart. Als u een programma sluit en opnieuw heropent, moet u deze opdrachten opnieuw uitvoeren.

  2. Voer de volgende opdracht uit en voer dezelfde Azure gebruikersnaam en hetzelfde wachtwoord in die u gebruikt om u aan te melden bij de Azure-portal:

    Connect-AzAccount
    
  3. Voer de volgende opdracht uit om alle abonnementen voor dit account weer te geven:

    Get-AzSubscription
    
  4. Als u meerdere abonnementen ziet die zijn gekoppeld aan uw account, voert u de volgende opdracht uit om het abonnement te selecteren waarmee u wilt werken. Vervang SubscriptionId door de id van uw Azure-abonnement:

    Select-AzSubscription -SubscriptionId "<SubscriptionId>"
    

Een data factory maken

  1. Definieer een variabele voor de naam van de resourcegroep die u later gaat gebruiken in PowerShell-opdrachten. Kopieer de volgende opdrachttekst naar PowerShell, geef een naam op voor de Azure resourcegroep tussen dubbele aanhalingstekens en voer de opdracht uit. Voorbeeld: "ADFQuickStartRG".

    $resourceGroupName = "ADFQuickStartRG";
    

    Als de resourcegroep al bestaat, wilt u waarschijnlijk niet deze overschrijven. Een andere waarde toewijzen aan de $ResourceGroupName variabele en de opdracht opnieuw uitvoeren

  2. Voer de volgende opdracht uit om de Azure resourcegroep te maken:

    $ResGrp = New-AzResourceGroup $resourceGroupName -location 'East US'
    

    Als de resourcegroep al bestaat, wilt u waarschijnlijk niet deze overschrijven. Wijs een andere waarde toe aan de $ResourceGroupName variabele en voer de opdracht opnieuw uit.

  3. Definieer een variabele voor de naam van de data factory.

    Belangrijk

    Werk de naam van de data factory bij zodat deze wereldwijd uniek is. Bijvoorbeeld ADFTutorialFactorySP1127.

    $dataFactoryName = "ADFQuickStartFactory";
    
  4. Als u de data factory wilt maken, voert u de volgende Set-AzDataFactoryV2-cmdlet uit met behulp van de eigenschap Location en ResourceGroupName van de variabele $ResGrp:

    $DataFactory = Set-AzDataFactoryV2 -ResourceGroupName $ResGrp.ResourceGroupName `
        -Location $ResGrp.Location -Name $dataFactoryName
    

Let op de volgende punten:

  • De naam van de Azure Data Factory moet wereldwijd uniek zijn. Als de volgende fout zich voordoet, wijzigt u de naam en probeert u het opnieuw.

    The specified Data Factory name 'ADFv2QuickStartDataFactory' is already in use. Data Factory names must be globally unique.
    
  • Als u Data Factory-exemplaren wilt maken, moet het gebruikersaccount dat u gebruikt om u aan te melden bij Azure lid zijn van contributor of ownerrollen of een administrator van het Azure-abonnement.

  • Voor een lijst met Azure regio's waarin Data Factory momenteel beschikbaar is, selecteert u de regio's die u interesseren op de volgende pagina en vouwt u vervolgens Analytics uit om Data Factory uit te vouwen: Products beschikbaar per regio. De gegevensarchieven (Azure Storage, Azure SQL Database, enzovoort) en berekeningen (HDInsight, enzovoort) die door data factory worden gebruikt, kunnen zich in andere regio's bevinden.

Een gekoppelde service maken

Maak gekoppelde services in een data factory om uw gegevensarchieven en rekenservices te koppelen aan de data factory. In deze snelstartgids maakt u een Azure Storage gekoppelde dienst die wordt gebruikt als bron- en sinkopslag. De gekoppelde service bevat de verbindingsgegevens die de Data Factory-service tijdens runtime gebruikt om er verbinding mee te maken.

Aanbeveling

In deze quickstart gebruikt u accountsleutel als verificatietype voor uw gegevensarchief, maar u kunt indien nodig andere ondersteunde verificatiemethoden kiezen: SAS-URI, *service-principal en beheerde identiteit . Raadpleeg de bijbehorende secties in dit artikel voor meer informatie. Als u geheimen voor gegevensarchieven veilig wilt opslaan, wordt u ook aangeraden een Azure Key Vault te gebruiken. Raadpleeg dit artikel voor gedetailleerde illustraties.

  1. Maak een JSON-bestand met de naamAzureStorageLinkedService.jsonin de map C:\ADFv2QuickStartPSH met de volgende inhoud: (Maak de map ADFv2QuickStartPSH als deze nog niet bestaat.)

    Belangrijk

    Vervang <accountName> en <accountKey> door de naam en sleutel van uw Azure-opslagaccount voordat u het bestand opslaat.

    {
        "name": "AzureStorageLinkedService",
        "properties": {
            "annotations": [],
            "type": "AzureBlobStorage",
            "typeProperties": {
                "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountName>;AccountKey=<accountKey>;EndpointSuffix=core.windows.net"
            }
        }
    }
    

    Als u Kladblok gebruikt, selecteert u Alle bestanden voor het type Opslaan als in het dialoogvenster Opslaan als . Anders kan er een extensie aan het bestand worden toegevoegd .txt. Bijvoorbeeld: AzureStorageLinkedService.json.txt. Als u het bestand in Verkenner maakt voordat u het opent in Kladblok, ziet u mogelijk niet de .txt extensie omdat de optie Extensies verbergen voor bekende bestandstypen standaard is ingesteld. Verwijder de .txt extensie voordat u doorgaat met de volgende stap.

  2. Schakel in PowerShell over naar de map ADFv2QuickStartPSH .

    Set-Location 'C:\ADFv2QuickStartPSH'
    
  3. Voer de cmdlet Set-AzDataFactoryV2LinkedService uit om de gekoppelde service te maken: AzureStorageLinkedService.

    Set-AzDataFactoryV2LinkedService -DataFactoryName $DataFactory.DataFactoryName `
        -ResourceGroupName $ResGrp.ResourceGroupName -Name "AzureStorageLinkedService" `
        -DefinitionFile ".\AzureStorageLinkedService.json"
    

    Dit is de voorbeelduitvoer:

    LinkedServiceName : AzureStorageLinkedService
    ResourceGroupName : <resourceGroupName>
    DataFactoryName   : <dataFactoryName>
    Properties        : Microsoft.Azure.Management.DataFactory.Models.AzureBlobStorageLinkedService
    

Gegevenssets maken

In deze procedure maakt u twee gegevenssets: InputDataset en OutputDataset. Deze gegevenssets zijn van het type Binair. Ze verwijzen naar de Azure Storage gekoppelde service die u in de vorige sectie hebt gemaakt. De invoergegevensset vertegenwoordigt de brongegevens in de invoermap. In de definitie van de invoergegevensset geeft u de blobcontainer (adftutorial), de map (invoer) en het bestand (emp.txt) op dat de brongegevens bevat. De uitvoergegevensset vertegenwoordigt de gegevens die worden gekopieerd naar de bestemming. In de definitie van de uitvoergegevensset geeft u de blobcontainer (adftutorial), de map (uitvoer) en het bestand op waarnaar de gegevens worden gekopieerd.

  1. Maak een JSON-bestand met de naamInputDataset.jsonin de map C:\ADFv2QuickStartPSH , met de volgende inhoud:

    {
        "name": "InputDataset",
        "properties": {
            "linkedServiceName": {
                "referenceName": "AzureStorageLinkedService",
                "type": "LinkedServiceReference"
            },
            "annotations": [],
            "type": "Binary",
            "typeProperties": {
                "location": {
                    "type": "AzureBlobStorageLocation",
                    "fileName": "emp.txt",
                    "folderPath": "input",
                    "container": "adftutorial"
                }
            }
        }
    }
    
  2. Voer de cmdlet Set-AzDataFactoryV2Dataset uit om de gegevensset te maken: InputDataset.

    Set-AzDataFactoryV2Dataset -DataFactoryName $DataFactory.DataFactoryName `
        -ResourceGroupName $ResGrp.ResourceGroupName -Name "InputDataset" `
        -DefinitionFile ".\InputDataset.json"
    

    Dit is de voorbeelduitvoer:

    DatasetName       : InputDataset
    ResourceGroupName : <resourceGroupname>
    DataFactoryName   : <dataFactoryName>
    Structure         :
    Properties        : Microsoft.Azure.Management.DataFactory.Models.BinaryDataset
    
  3. Herhaal de stappen om de uitvoergegevensset te maken. Maak een JSON-bestand met de naamOutputDataset.jsonin de map C:\ADFv2QuickStartPSH , met de volgende inhoud:

    {
        "name": "OutputDataset",
        "properties": {
            "linkedServiceName": {
                "referenceName": "AzureStorageLinkedService",
                "type": "LinkedServiceReference"
            },
            "annotations": [],
            "type": "Binary",
            "typeProperties": {
                "location": {
                    "type": "AzureBlobStorageLocation",
                    "folderPath": "output",
                    "container": "adftutorial"
                }
            }
        }
    }
    
  4. Voer de cmdlet Set-AzDataFactoryV2Dataset uit om de OutDataset te maken.

    Set-AzDataFactoryV2Dataset -DataFactoryName $DataFactory.DataFactoryName `
        -ResourceGroupName $ResGrp.ResourceGroupName -Name "OutputDataset" `
        -DefinitionFile ".\OutputDataset.json"
    

    Dit is de voorbeelduitvoer:

    DatasetName       : OutputDataset
    ResourceGroupName : <resourceGroupname>
    DataFactoryName   : <dataFactoryName>
    Structure         :
    Properties        : Microsoft.Azure.Management.DataFactory.Models.BinaryDataset
    

Een pijplijn maken

In deze procedure maakt u een pijplijn met een kopieeractiviteit die gebruikmaakt van de invoer- en uitvoergegevenssets. Met de kopieeractiviteit worden gegevens gekopieerd uit het bestand dat u hebt opgegeven in de instellingen van de invoergegevensset naar het bestand dat u hebt opgegeven in de instellingen van de uitvoergegevensset.

  1. Maak een JSON-bestand met de naamAdfv2QuickStartPipeline.jsonin de map C:\ADFv2QuickStartPSH met de volgende inhoud:

    {
        "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. Als u de pijplijn wilt maken: Adfv2QuickStartPipeline, voert u de cmdlet Set-AzDataFactoryV2Pipeline uit.

    $DFPipeLine = Set-AzDataFactoryV2Pipeline `
        -DataFactoryName $DataFactory.DataFactoryName `
        -ResourceGroupName $ResGrp.ResourceGroupName `
        -Name "Adfv2QuickStartPipeline" `
        -DefinitionFile ".\Adfv2QuickStartPipeline.json"
    

Een pijplijnrun starten

In deze stap voert u een pijplijnrun uit.

Voer de cmdlet Invoke-AzDataFactoryV2Pipeline uit om een pijplijnuitvoering te maken. De cmdlet retourneert de id van de pijplijnuitvoering voor toekomstige bewaking.

$RunId = Invoke-AzDataFactoryV2Pipeline `
  -DataFactoryName $DataFactory.DataFactoryName `
  -ResourceGroupName $ResGrp.ResourceGroupName `
  -PipelineName $DFPipeLine.Name 

De pijplijnrun controleren.

  1. Voer het volgende PowerShell-script uit om continu de status van de pijplijnuitvoering te controleren totdat het kopiëren van de gegevens is voltooid. Kopieer/plak het volgende script in het PowerShell-venster en druk op 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
    }
    

    Hier volgt de voorbeelduitvoer van de pijplijnuitvoering:

    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. Voer het volgende script uit om uitvoeringsdetails van de kopieeractiviteit op te halen, zoals de omvang van de gelezen of weggeschreven gegevens.

    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. Controleer of u de uitvoer ziet die vergelijkbaar is met de volgende voorbeelduitvoer van het resultaat van de uitvoering van de activiteit:

    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"
    

Geïmplementeerde middelen beoordelen

De pijplijn maakt automatisch de uitvoermap aan in de blobcontainer genaamd adftutorial. Vervolgens wordt het bestand emp.txt gekopieerd van de invoermap naar de uitvoermap.

  1. Selecteer in de Azure-portal op de containerpagina adftutorialRefresh om de uitvoermap te zien.

    Schermopname van de containerpagina waar u de pagina kunt vernieuwen.

  2. Selecteer Uitvoer in de lijst met mappen.

  3. Controleer of het bestand emp.txt naar de uitvoermap is gekopieerd.

    Schermopname van de inhoud van de uitvoermap.

De hulpbronnen opschonen

De resources die u hebt gemaakt in de Quick Start kunt u op twee manieren opschonen. U kunt de Azure resourcegroep verwijderen, die alle resources in de resourcegroep bevat. Als u de andere resources intact wilt houden, verwijdert u alleen de data factory die u in deze zelfstudie hebt gemaakt.

Als u een resourcegroep verwijdert, worden alle resources die deze bevat, met inbegrip van de data factory's, ook verwijderd. Voer de volgende opdracht uit om de gehele resourcegroep te verwijderen:

Remove-AzResourceGroup -ResourceGroupName $resourcegroupname

Opmerking

Het verwijderen van een resourcegroep kan enige tijd duren. Wees geduldig met het proces

Als u alleen de data factory wilt verwijderen, niet de hele resourcegroep, voert u de volgende opdracht uit:

Remove-AzDataFactoryV2 -Name $dataFactoryName -ResourceGroupName $resourceGroupName

De pijplijn in dit voorbeeld kopieert gegevens van de ene locatie naar een andere in Azure Blob Storage. Doorloop de zelfstudies voor meer informatie over het gebruiken van Data Factory in andere scenario's.