Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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:
- Ga in een webbrowser naar de Azure portal en meld u aan met uw Azure gebruikersnaam en wachtwoord.
- 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.
- 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.
Ga naar de opslagaccountpagina en selecteer Overzicht>Containers.
Selecteer < op de werkbalk van de > - .
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.
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:
Op de pagina <Accountnaam> - Containers waar u was gebleven, selecteert u adftutorial uit de bijgewerkte lijst met containers.
- Als u het venster hebt gesloten of naar een andere pagina bent gegaan, meldt u zich opnieuw aan bij de Azure-portal.
- 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.
- Selecteer uw opslagaccount en selecteer vervolgens Containers>adftutorial.
Selecteer in de werkbalk van de containerpagina adftutorialUploaden.
Selecteer op de pagina Blob uploaden het venster Bestanden en blader vervolgens naar en selecteer het bestand emp.txt.
Vouw de kop Geavanceerd uit. De pagina wordt nu als volgt weergegeven:
In het vak Uploaden naar map voert u invoer in.
Selecteer de knop Uploaden. U zou het bestand emp.txt en de status van de upload nu in de lijst moeten zien.
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
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.
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-AzAccountVoer de volgende opdracht uit om alle abonnementen voor dit account weer te geven:
Get-AzSubscriptionAls 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
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
$ResourceGroupNamevariabele en de opdracht opnieuw uitvoerenVoer 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
$ResourceGroupNamevariabele en voer de opdracht opnieuw uit.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";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.
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.txtextensie omdat de optie Extensies verbergen voor bekende bestandstypen standaard is ingesteld. Verwijder de.txtextensie voordat u doorgaat met de volgende stap.Schakel in PowerShell over naar de map ADFv2QuickStartPSH .
Set-Location 'C:\ADFv2QuickStartPSH'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.
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" } } } }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.BinaryDatasetHerhaal 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" } } } }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.
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": [] } }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.
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 :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"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.
Selecteer in de Azure-portal op de containerpagina adftutorialRefresh om de uitvoermap te zien.
Selecteer Uitvoer in de lijst met mappen.
Controleer of het bestand emp.txt naar de uitvoermap is gekopieerd.
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
Verwante inhoud
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.