Share via


Quickstart: Een Azure Data Factory maken met behulp van PowerShell

Van toepassing op: Azure Data Factory Azure Synapse Analytics

Aanbeveling

Probeer Data Factory uit in Microsoft Fabric, een alles-in-één analyseoplossing voor ondernemingen. Microsoft Fabric omvat alles, van gegevensverplaatsing tot gegevenswetenschap, realtime analyses, business intelligence en rapportage. Meer informatie over het gratis starten van een nieuwe proefversie .

In deze quickstart wordt beschreven hoe u PowerShell gebruikt om een Azure Data Factory te maken. Met de pijplijn die u in deze data factory maakt, worden gegevens gekopieerd van één map naar een andere map in een Azure Blob Storage. Zie Zelfstudie: Gegevens transformeren met Spark voor meer informatie over het transformeren van gegevens met Azure Data Factory.

Opmerking

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

Vereiste voorwaarden

Azure-abonnement

Als je geen Azure-abonnement hebt, maak dan een gratis account aan voordat je begint.

Azure-rollen

Als u Data Factory-exemplaren wilt maken, moet het gebruikersaccount waarmee u zich bij Azure aanmeldt, lid zijn van de rol Inzender of Eigenaar, of moet dit een beheerder van het Azure-abonnement zijn. Als u de machtigingen wilt bekijken die u binnen het abonnement hebt, gaat u naar Azure Portal, selecteert u uw gebruikersnaam rechtsboven in de hoek, selecteert u het pictogram "..." voor meer opties en selecteert u Mijn 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 in de Azure Portal wilt maken en beheren, moet u de rol Data Factory Contributor op het niveau van de resourcegroep of hoger hebben.
  • 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-opslagaccount

In deze quickstart gebruikt u een algemeen Azure Storage-account, specifiek Blob Storage, als zowel bron- als doelgegevensarchief. Raadpleeg het artikel Een opslagaccount maken als u geen Azure Storage-account hebt voor algemene doeleinden en er een wilt maken.

De naam van het opslagaccount ophalen

In deze quickstart hebt u de naam van uw Azure Storage-account nodig. 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 Alle services en selecteer 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 in Azure Blob Storage een blobcontainer met de naam adftutorial.

  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 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 weer aan bij de Azure Portal.
    2. Selecteer in het menu Azure Portal Alle services en selecteer 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

We raden u aan om de Azure Az PowerShell-module te gebruiken om met Azure te communiceren. Zie Azure PowerShell installeren om aan de slag te gaan. Om te leren hoe u naar de Az PowerShell-module kunt migreren, zie Migrate Azure PowerShell from AzureRM to Az.

Installeer de nieuwste Azure PowerShell-modules met de instructies in Azure PowerShell installeren en configureren.

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 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-gegevensfactory 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 inzender - of eigenaarrollen , of een beheerder van het Azure-abonnement.

  • Voor een lijst met Azure-regio’s waarin Data Factory momenteel beschikbaar is, selecteert u op de volgende pagina de regio’s waarin u geïnteresseerd bent, vouwt u vervolgens Analytics uit en gaat u naar Data Factory: Beschikbare producten per regio. De gegevensopslag (Azure Storage, Azure SQL Database, enzovoort) en rekenprocessen (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 quickstart maakt u een gekoppelde Azure Storage-service die wordt gebruikt als zowel de bron- als de doelopslag. 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. Het ook raadzaam om een Azure Key Vault te gebruiken om geheimen voor gegevensarchieven veilig op te slaan. 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 gekoppelde Azure Storage-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 Vernieuwen in Azure Portal op de pagina adftutorial-container om de uitvoermap weer te geven.

    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, met alle resources uit de resourcegroep. 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

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