Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
GÄLLER FÖR:
Azure Data Factory
Azure Synapse Analytics
Tips/Råd
Prova Data Factory i Microsoft Fabric, en allt-i-ett-analyslösning för företag. Microsoft Fabric omfattar allt från dataflytt till datavetenskap, realtidsanalys, business intelligence och rapportering. Lär dig hur du kan starta en ny provperiod gratis!
Den här snabbstarten beskriver hur du använder PowerShell för att skapa en Azure Data Factory. Den pipeline du skapar i den här datafabriken kopierar data från en mapp till en annan mapp i Azure Blob Storage. Om du vill se en självstudie som visar hur du omvandlar data med Azure Data Factory går du till Tutorial: Transform data using Spark (Självstudie: Omvandla data med Spark).
Anmärkning
Den här artikeln innehåller ingen detaljerad introduktion till Data Factory-tjänsten. En introduktion till Azure Data Factory-tjänsten finns i Introduktion till Azure Data Factory.
Förutsättningar
Azure-prenumeration
Om du inte har en Azure-prenumeration, skapa ett gratis konto innan du börjar.
Roller i Azure
Om du vill skapa Data Factory-instanser måste det användarkonto som du använder för att logga in på Azure vara medlem i rollen deltagare eller ägare eller administratör för Azure-prenumerationen. Om du vill visa de behörigheter som du har i prenumerationen går du till Azure-portalen, väljer ditt användarnamn i det övre högra hörnet, väljer ikonen "..." för fler alternativ och väljer sedan Mina behörigheter. Om du har åtkomst till flera prenumerationer väljer du rätt prenumeration.
För att skapa och hantera underordnade resurser för Data Factory – inklusive datauppsättningar, länkade tjänster, pipelines, utlösare och integreringskörningar – gäller följande krav:
- Om du vill skapa och hantera underordnade resurser i Azure-portalen måste du tillhöra Data Factory Contributor-rollen på resursgruppsnivå eller högre.
- För att skapa och hantera underordnade resurser med PowerShell eller SDK är contributorrollen på resursnivå eller högre tillräcklig.
Exempelinstruktioner om hur du lägger till en användare i en roll finns i artikeln Lägg till roller .
Mer information finns i följande artiklar:
Azure Storage-konto
Du använder ett Allmänt Azure Storage-konto (särskilt Blob Storage) som både käll - och måldatalager i den här snabbstarten. Om du inte har något allmänt Azure Storage-konto kan du läsa Skapa ett lagringskonto för att skapa ett.
Hämta namnet på lagringskontot
Du behöver namnet på ditt Azure Storage-konto för den här snabbstarten. Följande procedur innehåller steg för att hämta namnet på ditt lagringskonto:
- I en webbläsare går du till Azure-portalen och loggar in med ditt Användarnamn och lösenord för Azure.
- På Azure-portalens meny väljer du Alla tjänster, sedan Lagring>Lagringskonton. Du kan också söka efter och välja Lagringskonton från valfri sida.
- På sidan Lagringskonton filtrerar du efter ditt lagringskonto (om det behövs) och väljer sedan ditt lagringskonto.
Du kan också söka efter och välja Lagringskonton från valfri sida.
Skapa en blobcontainer
I det här avsnittet skapar du en blobcontainer med namnet adftutorial i Azure Blob Storage.
På sidan lagringskonto väljer duÖversiktscontainrar>.
I verktygsfältet på sidan <Kontonamn> - Containrar, väljer du Container.
I dialogrutan Ny container anger du adftutorial som namn och väljer sedan OK. Sidan <Containrar för kontonamn> - uppdateras så att den innehåller adftutorial i listan över containrar.
Lägg till en mapp och en fil för blobbehållaren
I det här avsnittet skapar du en mapp med namnet input i containern som du skapade och laddar sedan upp en exempelfil till indatamappen. Innan du börjar öppnar du en textredigerare som Anteckningar och skapar en fil med namnet emp.txt med följande innehåll:
John, Doe
Jane, Doe
Spara filen i mappen C:\ADFv2QuickStartPSH . (Om mappen inte redan finns skapar du den.) Gå sedan tillbaka till Azure-portalen och följ dessa steg:
På sidan <Kontonamncontainrar> - där du slutade väljer du adftutorial i den uppdaterade listan med containrar.
- Om du stängde fönstret eller gick till en annan sida loggar du in på Azure-portalen igen.
- På Azure-portalens meny väljer du Alla tjänster, sedan Lagring>Lagringskonton. Du kan också söka efter och välja Lagringskonton från valfri sida.
- Välj ditt lagringskonto och därefter välj Containrar>adftutorial.
I verktygsfältet för containersidan adftutorial väljer du Ladda upp.
På sidan Ladda upp blob väljer du rutan Filer och bläddrar sedan till och väljer filenemp.txt .
Expandera Avancerat rubriken. Sidan visas nu som följer:
I rutan Ladda upp till mapp anger du indata.
Välj knappen Ladda upp. Du bör se filen emp.txt och uppladdningens status i listan.
Välj ikonen Stäng (ett X) för att stänga sidan Ladda upp blob.
Håll sidan adftutorial container öppen. Du använder den för att verifiera utdata i slutet av den här snabbstarten.
Azure PowerShell
Anmärkning
Vi rekommenderar att du använder Azure Az PowerShell-modulen för att interagera med Azure. Se Installera Azure PowerShell för att komma igång. För att lära dig hur du migrerar till Az PowerShell-modulen, se Migrera Azure PowerShell från AzureRM till Az.
Installera de senaste Azure PowerShell-modulerna enligt instruktionerna i Installera och konfigurera Azure PowerShell.
Varning
Om du inte använder de senaste versionerna av PowerShell- och Data Factory-modulen kan du stöta på deserialiseringsfel när du kör kommandona.
Logga in på PowerShell
Starta PowerShell på datorn. Håll PowerShell öppet till slutet av den här snabbstarten. Om du stänger och öppnar igen måste du köra dessa kommandon igen.
Kör följande kommando och ange samma Azure-användarnamn och lösenord som du använder för att logga in på Azure-portalen:
Connect-AzAccountKör följande kommando för att visa alla prenumerationer för det här kontot:
Get-AzSubscriptionOm du ser flera prenumerationer som är associerade med ditt konto kör du följande kommando för att välja den prenumeration som du vill arbeta med. Ersätt SubscriptionId med ID:t för din Azure-prenumeration:
Select-AzSubscription -SubscriptionId "<SubscriptionId>"
Skapa en datafabrik
Definiera en variabel för resursgruppens namn som du kan använda senare i PowerShell-kommandon. Kopiera följande kommandotext till PowerShell, ange ett namn för Azure-resursgruppen med dubbla citattecken och kör sedan kommandot. Till exempel:
"ADFQuickStartRG".$resourceGroupName = "ADFQuickStartRG";Om resursgruppen redan finns behöver du kanske inte skriva över den. Tilldela variabeln
$ResourceGroupNameett annat värde och kör kommandot igenKör följande kommando för att skapa en Azure-resursgrupp:
$ResGrp = New-AzResourceGroup $resourceGroupName -location 'East US'Om resursgruppen redan finns behöver du kanske inte skriva över den. Tilldela variabeln
$ResourceGroupNameett annat värde och kör kommandot igen.Definiera en variabel för datafabrikens namn.
Viktigt!
Uppdatera namnet på datafabriken så att det är globalt unikt. Till exempel ADFTutorialFactorySP1127.
$dataFactoryName = "ADFQuickStartFactory";Om du vill skapa datafabriken kör du följande Set-AzDataFactoryV2-cmdlet med egenskapen Location och ResourceGroupName från variabeln $ResGrp:
$DataFactory = Set-AzDataFactoryV2 -ResourceGroupName $ResGrp.ResourceGroupName ` -Location $ResGrp.Location -Name $dataFactoryName
Observera följande punkter:
Namnet på Azure Data Factory måste vara globalt unikt. Om du får följande felmeddelande ändrar du namnet och försöker igen.
The specified Data Factory name 'ADFv2QuickStartDataFactory' is already in use. Data Factory names must be globally unique.Om du vill skapa Data Factory-instanser måste det användarkonto som du använder för att logga in på Azure vara medlem i deltagar - eller ägarroller eller som administratör för Azure-prenumerationen.
Om du vill ha en lista över Azure-regioner där Data Factory för närvarande är tillgängligt väljer du de regioner som intresserar dig på följande sida och expanderar sedan Analytics för att hitta Data Factory: Produkter som är tillgängliga per region. Datalagren (Azure Storage, Azure SQL Database osv.) och beräkningarna (HDInsight osv.) som används i Data Factory kan finnas i andra regioner.
Skapa en länkad tjänst
Skapa länkade tjänster i en datafabrik för att länka dina datalager och beräkningstjänster till datafabriken. I den här snabbstarten skapar du en länkad Azure Storage-tjänst som används som både käll- och mottagararkiv. Den länkade tjänsten har anslutningsdata som Data Factory-tjänsten använder under körning för att ansluta till den.
Tips/Råd
I den här snabbstarten använder du kontonyckeln som autentiseringstyp för ditt datalager, men du kan välja andra autentiseringsmetoder som stöds: SAS-URI, *Tjänstens huvudnamn och Hanterad identitet om det behövs. Mer information finns i motsvarande avsnitt i den här artikeln . Om du vill lagra hemligheter för datalager på ett säkert sätt rekommenderar vi också att du använder ett Azure Key Vault. Mer information finns i den här artikeln .
Skapa en JSON-fil med namnet AzureStorageLinkedService.json i mappen C:\ADFv2QuickStartPSH med följande innehåll: (Skapa mappen ADFv2QuickStartPSH om den inte redan finns.).
Viktigt!
Ersätt <accountName> och <accountKey> med namnet och nyckeln för ditt Azure Storage-konto innan du sparar filen.
{ "name": "AzureStorageLinkedService", "properties": { "annotations": [], "type": "AzureBlobStorage", "typeProperties": { "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountName>;AccountKey=<accountKey>;EndpointSuffix=core.windows.net" } } }Om du använder Anteckning, välj Alla filer som Spara som typ i dialogrutan Spara som. Annars kan det lägga till
.txttillägg till filen. Till exempelAzureStorageLinkedService.json.txt. Om du skapar filen i Utforskaren innan du öppnar den.txti Anteckningar kanske du inte ser tillägget eftersom alternativet Dölj tillägg för kända filtyper har angetts som standard..txtTa bort tillägget innan du fortsätter till nästa steg.I PowerShell växlar du till mappen ADFv2QuickStartPSH .
Set-Location 'C:\ADFv2QuickStartPSH'Kör cmdleten Set-AzDataFactoryV2LinkedService för att skapa den länkade tjänsten: AzureStorageLinkedService.
Set-AzDataFactoryV2LinkedService -DataFactoryName $DataFactory.DataFactoryName ` -ResourceGroupName $ResGrp.ResourceGroupName -Name "AzureStorageLinkedService" ` -DefinitionFile ".\AzureStorageLinkedService.json"Här är exempelutdata:
LinkedServiceName : AzureStorageLinkedService ResourceGroupName : <resourceGroupName> DataFactoryName : <dataFactoryName> Properties : Microsoft.Azure.Management.DataFactory.Models.AzureBlobStorageLinkedService
Skapa datauppsättningar
I den här proceduren skapar du två datauppsättningar: InputDataset och OutputDataset. Dessa datauppsättningar är av typen Binär. De refererar till den länkade Azure Storage-tjänst du skapade i föregående avsnitt. Datauppsättningen för indata representerar källdata i indatamappen. I datauppsättningsdefinitionen för indata anger du blobcontainern (adftutorial), mappen (indata) och filen (emp.txt) som innehåller källdata. Datauppsättningen för utdata representerar de data som kopieras till destinationen. I datauppsättningsdefinitionen för utdata anger du blobcontainern (adftutorial), mappen (utdata) och filen som data kopieras till.
Skapa en JSON-fil med namnet InputDataset.json i mappen C:\ADFv2QuickStartPSH med följande innehåll:
{ "name": "InputDataset", "properties": { "linkedServiceName": { "referenceName": "AzureStorageLinkedService", "type": "LinkedServiceReference" }, "annotations": [], "type": "Binary", "typeProperties": { "location": { "type": "AzureBlobStorageLocation", "fileName": "emp.txt", "folderPath": "input", "container": "adftutorial" } } } }Skapa datauppsättningen: InputDataset genom att köra cmdleten Set-AzDataFactoryV2Dataset .
Set-AzDataFactoryV2Dataset -DataFactoryName $DataFactory.DataFactoryName ` -ResourceGroupName $ResGrp.ResourceGroupName -Name "InputDataset" ` -DefinitionFile ".\InputDataset.json"Här är exempelutdata:
DatasetName : InputDataset ResourceGroupName : <resourceGroupname> DataFactoryName : <dataFactoryName> Structure : Properties : Microsoft.Azure.Management.DataFactory.Models.BinaryDatasetUpprepa stegen för att skapa utdatauppsättningen. Skapa en JSON-fil med namnet OutputDataset.json i mappen C:\ADFv2QuickStartPSH med följande innehåll:
{ "name": "OutputDataset", "properties": { "linkedServiceName": { "referenceName": "AzureStorageLinkedService", "type": "LinkedServiceReference" }, "annotations": [], "type": "Binary", "typeProperties": { "location": { "type": "AzureBlobStorageLocation", "folderPath": "output", "container": "adftutorial" } } } }Kör cmdleten Set-AzDataFactoryV2Dataset för att skapa OutDataset.
Set-AzDataFactoryV2Dataset -DataFactoryName $DataFactory.DataFactoryName ` -ResourceGroupName $ResGrp.ResourceGroupName -Name "OutputDataset" ` -DefinitionFile ".\OutputDataset.json"Här är exempelutdata:
DatasetName : OutputDataset ResourceGroupName : <resourceGroupname> DataFactoryName : <dataFactoryName> Structure : Properties : Microsoft.Azure.Management.DataFactory.Models.BinaryDataset
Skapa en processkedja
I den här proceduren skapar du en pipeline med en kopieringsaktivitet som använder datauppsättningarna för indata och utdata. Kopieringsaktiviteten kopierar data från den fil som du angav i indatauppsättningsinställningarna till filen som du angav i inställningarna för utdatauppsättningen.
Skapa en JSON-fil med namnet Adfv2QuickStartPipeline.json i mappen C:\ADFv2QuickStartPSH med följande innehåll:
{ "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": [] } }Skapa pipelinen: Adfv2QuickStartPipeline genom att köra cmdleten Set-AzDataFactoryV2Pipeline .
$DFPipeLine = Set-AzDataFactoryV2Pipeline ` -DataFactoryName $DataFactory.DataFactoryName ` -ResourceGroupName $ResGrp.ResourceGroupName ` -Name "Adfv2QuickStartPipeline" ` -DefinitionFile ".\Adfv2QuickStartPipeline.json"
Skapa en pipelinekörning
I det här steget skapar du en pipelinekörning.
Kör cmdleten Invoke-AzDataFactoryV2Pipeline för att skapa en pipelinekörning. Cmdleten returnerar pipelinekörnings-ID:t för framtida övervakning.
$RunId = Invoke-AzDataFactoryV2Pipeline `
-DataFactoryName $DataFactory.DataFactoryName `
-ResourceGroupName $ResGrp.ResourceGroupName `
-PipelineName $DFPipeLine.Name
Övervaka pipelinekörningen
Kör följande PowerShell-skript för att kontinuerligt kontrollera statusen för pipelinekörningen tills den har kopierat data. Kopiera/klistra in följande skript i PowerShell-fönstret och tryck på RETUR.
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 }Här är exempelutdata från pipelinekörning:
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 :Kör följande skript för att hämta detaljer om kopieringskörningen, till exempel storleken på den data som har lästs eller skrivits.
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"Bekräfta att du ser utdata som liknar följande exempelutdata för aktivitetskörningsresultatet:
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"
Granska distribuerade resurser
Pipeline skapar automatiskt utdatamappen i blobcontainern adftutorial. Filen emp.txt kopieras från indatamappen till utdatamappen.
I Azure-portalen går du till containersidan adftutorial och väljer Uppdatera för att se utfilsmappen.
Välj utdata i mapplistan.
Kontrollera att emp.txt har kopierats till utdatamappen.
Rensa resurser
Du kan rensa de resurser som du skapade i snabbstarten på två sätt. Du kan ta bort den Azure-resursgrupp som innehåller alla resurser i resursgruppen. Om du vill behålla de andra resurserna intakta ska du bara ta bort den datafabrik du har skapat i den här självstudiekursen.
När du tar bort en resursgrupp tas alla resurser inklusive datafabriker i den bort. Kör följande kommando om du vill ta bort hela resursgruppen:
Remove-AzResourceGroup -ResourceGroupName $resourcegroupname
Anmärkning
Det kan ta lite tid att ta bort en resursgrupp. Ha tålamod med processen
Om du bara vill ta bort datafabriken, inte hela resursgruppen, kör du följande kommando:
Remove-AzDataFactoryV2 -Name $dataFactoryName -ResourceGroupName $resourceGroupName
Relaterat innehåll
Pipeline i det här exemplet kopierar data från en plats till en annan i Azure Blob Storage. Gå igenom självstudiekurserna om du vill lära dig hur du använder Data Factory i fler scenarier.