Rövid útmutató: Azure Data Factory létrehozása a PowerShell használatával
A következőkre vonatkozik: Azure Data Factory Azure Synapse Analytics
Tipp.
Próbálja ki a Data Factoryt a Microsoft Fabricben, amely egy teljes körű elemzési megoldás a nagyvállalatok számára. A Microsoft Fabric az adattovábbítástól az adatelemzésig, a valós idejű elemzésig, az üzleti intelligenciáig és a jelentéskészítésig mindent lefed. Ismerje meg, hogyan indíthat új próbaverziót ingyenesen!
Ez a rövid útmutató bemutatja, hogyan hozhat létre Azure Data Factoryt a PowerShell használatával. Az adat-előállítóban létrehozott folyamat adatokat másol egy Azure-blobtároló egyik mappájából egy másikba. Az adatok Azure Data Factoryval történő átalakításának útmutatásáért olvassa el az az adatok Spark segítségével történő átalakítását ismertető oktatóanyagot.
Megjegyzés:
Ez a cikk nem mutatja be részletesen a Data Factory szolgáltatást. Ha szeretné megismerni az Azure Data Factoryt, tekintse meg Az Azure Data Factory bemutatását.
Előfeltételek
Azure subscription
Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot.
Azure roles
Data Factory-példányok létrehozásához az Azure-ba történő bejelentkezéshez használt felhasználói fióknak a közreműködő vagy tulajdonos szerepkör tagjának, vagy az Azure-előfizetés rendszergazdájának kell lennie. Az előfizetésben lévő engedélyek megtekintéséhez nyissa meg az Azure Portalt, válassza ki a felhasználónevét a jobb felső sarokban, válassza a "..." ikont a további lehetőségekhez, majd válassza a Saját engedélyek lehetőséget. Ha több előfizetéshez is rendelkezik hozzáféréssel, válassza ki a megfelelő előfizetést.
A Data Factory gyermekerőforrásai – beleértve az adatkészletek, társított szolgáltatások, folyamatok, eseményindítók és integrációs modulok – létrehozására és kezelésére az alábbi követelmények vonatkoznak:
- A gyermekerőforrások Microsoft Azure Portalon való létrehozásához és kezeléséhez a Data Factory közreműködője szerepkörhöz kell tartoznia az erőforráscsoport szintjén vagy felette.
- A gyermekerőforrások PowerShell-lel vagy az SDK-val való létrehozásához és kezeléséhez a közreműködő szerepkör is elegendő az erőforráscsoport szintjén vagy felette.
Ha szeretne példautasításokat látni arra, hogyan kell egy felhasználót a szerepkörhöz adni, olvassa el a Szerepkörök hozzáadása című cikket.
További információkért tekintse meg a következő cikkeket:
Azure Storage account
Ebben a rövid útmutatóban egy általános célú Azure Storage-fiókot (pontosabban Blob Storage-t) használ forrás- és céladattárként. Ha nem rendelkezik általános célú Azure Storage-fiókkal, a tárfiók létrehozásához tekintse meg a Tárfiók létrehozása című témakört.
A tárfiók nevének lekérése
Ehhez a rövid útmutatóhoz szüksége van az Azure Storage-fiók nevére. Az alábbi eljárás lépéseket tartalmaz a tárfiók nevének lekéréséhez:
- Egy webböngészőben nyissa meg az Azure Portalt , és jelentkezzen be az Azure-felhasználónevével és jelszavával.
- Az Azure Portal menüjében válassza a Minden szolgáltatás, majd a Storage-fiókok> lehetőséget. A Tárfiókokat bármelyik lapról megkeresheti és kiválaszthatja.
- A Tárfiókok lapon szűrjön a tárfiókra (ha szükséges), majd válassza ki a tárfiókot.
A Tárfiókokat bármelyik lapról megkeresheti és kiválaszthatja.
Blobtároló létrehozása
Ebben a szakaszban egy adftutorial nevű blobtárolót hoz létre az Azure Blob Storage-ban.
A tárfiók lapján válassza az Áttekintés>tárolók lehetőséget.
<A Fióknév> - tárolók lap eszköztárán válassza a Tároló lehetőséget.
Az Új tároló párbeszédablakban adja meg az adftutorial nevet, és kattintson az OK gombra. A <Fióknév> - tárolók lapja úgy frissül, hogy az adftutorial szerepeljen a tárolók listájában.
Bemeneti mappa és fájl hozzáadása a blobtárolóhoz
Ebben a szakaszban létrehoz egy bemenet nevű mappát a létrehozott tárolóban, majd feltölt egy mintafájlt a bemeneti mappába. Mielőtt hozzákezdene, nyisson meg egy szövegszerkesztőt, például Jegyzettömb, és hozzon létre egy emp.txt nevű fájlt a következő tartalommal:
John, Doe
Jane, Doe
Mentse a fájlt a C:\ADFv2QuickStartPSH mappába. (Ha a mappa még nem létezik, hozza létre.) Ezután térjen vissza az Azure Portalra, és kövesse az alábbi lépéseket:
<A Fióknév> - tárolók lapján, ahol abbahagyta, válassza az adftutorial lehetőséget a frissített tárolók listájából.
- Ha bezárta az ablakot, vagy egy másik oldalra ment, jelentkezzen be újra az Azure Portalra .
- Az Azure Portal menüjében válassza a Minden szolgáltatás, majd a Storage-fiókok> lehetőséget. A Tárfiókokat bármelyik lapról megkeresheti és kiválaszthatja.
- Válassza ki a tárfiókot, majd válassza a Tárolók>adftutorial lehetőséget.
Az adftutorial tárolóoldal eszköztárán válassza a Feltöltés lehetőséget.
A Blob feltöltése lapon válassza a Fájlok mezőt, majd keresse meg és válassza ki az emp.txt fájlt.
Bontsa ki a Speciális címsort. A lap most az alábbi módon jelenik meg:
A Feltöltés mappába mezőbe írja be a bemenetet.
Kattintson a Feltöltés gombra. A listában meg kell jelennie az emp.txt fájlnak és a feltöltés állapotának.
A Blob feltöltése lap bezárásához válassza a Bezárás ikont (X).
Tartsa nyitva az adftutorial tárolólapot. A segítségével ellenőrizheti ennek a rövid útmutatónak az eredményét.
Azure PowerShell
Megjegyzés:
We recommend that you use the Azure Az PowerShell module to interact with Azure. See Install Azure PowerShell to get started. To learn how to migrate to the Az PowerShell module, see Migrate Azure PowerShell from AzureRM to Az.
Kövesse az Azure PowerShell telepítését és konfigurálását ismertető cikkben szereplő utasításokat a legújabb Azure PowerShell-modulok telepítéséhez.
Figyelmeztetés
Ha nem a PowerShell és a Data Factory modul legújabb verzióit használja, deszerializálási hibákba ütközhet a parancsok futtatása közben.
Bejelentkezés a PowerShellbe
Indítsa el a gépén a PowerShellt. A PowerShellt hagyja megnyitva a rövid útmutató végéig. Ha bezárja és újra megnyitja, akkor újra futtatnia kell ezeket a parancsokat.
Futtassa a következő parancsot, és adja meg az Azure Portalra való bejelentkezéshez használt Azure-beli felhasználónevét és jelszavát:
Connect-AzAccount
Futtassa a következő parancsot a fiókhoz tartozó előfizetések megtekintéséhez.
Get-AzSubscription
Ha több előfizetés is tartozik a fiókjához, futtassa a következő parancsot a használni kívánt előfizetés kiválasztásához. Cserélje le a SubscriptionId kifejezést az Azure-előfizetés azonosítójára:
Select-AzSubscription -SubscriptionId "<SubscriptionId>"
Adat-előállító létrehozása
Adjon meg egy olyan változót, amelyet később a PowerShell-parancsokban az erőforráscsoport neveként fog használni. Másolja az alábbi parancsszöveget a PowerShellbe, adja meg az Azure-erőforráscsoport nevét idézőjelek között, majd futtassa a parancsot. For example:
"ADFQuickStartRG"
.$resourceGroupName = "ADFQuickStartRG";
Ha az erőforráscsoport már létezik, előfordulhat, hogy nem kívánja felülírni. Rendeljen egy másik értéket a
$ResourceGroupName
változóhoz, majd futtassa újra a parancsotFuttassa az alábbi parancsot az Azure-erőforráscsoport létrehozásához:
$ResGrp = New-AzResourceGroup $resourceGroupName -location 'East US'
Ha az erőforráscsoport már létezik, előfordulhat, hogy nem kívánja felülírni. Rendeljen egy másik értéket a
$ResourceGroupName
változóhoz, majd futtassa újra a parancsot.Adjon meg egy változót az adat-előállító nevéhez.
Fontos
Frissítse az adat-előállító nevét, hogy globálisan egyedi legyen. Például: ADFTutorialFactorySP1127.
$dataFactoryName = "ADFQuickStartFactory";
Az adat-előállító létrehozásához futtassa a következő Set-AzDataFactoryV2 parancsmagot az $ResGrp változó Hely és ResourceGroupName tulajdonságával:
$DataFactory = Set-AzDataFactoryV2 -ResourceGroupName $ResGrp.ResourceGroupName ` -Location $ResGrp.Location -Name $dataFactoryName
Vegye figyelembe a következő szempontokat:
Az Azure Data Factory nevének globálisan egyedinek kell lennie. Ha a következő hibaüzenetet kapja, módosítsa a nevet, majd próbálkozzon újra.
The specified Data Factory name 'ADFv2QuickStartDataFactory' is already in use. Data Factory names must be globally unique.
Data Factory-példányok létrehozásához a felhasználói fióknak, amellyel belép az Azure-ba, a közreműködő vagy tulajdonos szerepkörök tagjának, vagy az Azure-előfizetés rendszergazdájának kell lennie.
Azon Azure-régiók megtekintéséhez, amelyekben jelenleg elérhető a Data Factory, a következő lapon válassza ki az Önt érdeklő régiókat, majd bontsa ki az Elemzés részt, és keresse meg a Data Factory: Elérhető termékek régiók szerint szakaszt. Az adat-előállítók által használt adattárak (Azure Storage, Azure SQL Database stb.) és számítási erőforrások (HDInsight stb.) más régiókban is lehetnek.
Társított szolgáltatás létrehozása
Társított szolgáltatásokat hozhat létre egy adat-előállítóban az adattárak és a számítási szolgáltatások adat-előállítóhoz történő társításához. Ebben a rövid útmutatóban létrehoz egy Azure Storage-beli társított szolgáltatást, amely forrás- és fogadóadattárként is használható. A társított szolgáltatás azon kapcsolatadatokkal rendelkezik, amelyeket a Data Factory szolgáltatás használ futtatáskor a hozzá való kapcsolódáshoz.
Tipp.
Ebben a rövid útmutatóban a fiókkulcsot használja az adattár hitelesítési típusaként, de más támogatott hitelesítési módszereket is választhat: SAS URI, szolgáltatásnév és felügyelt identitás, ha szükséges. A részletekért tekintse meg a cikk megfelelő szakaszait. Az adattárak titkos kulcsainak biztonságos tárolásához javasoljuk az Azure Key Vault használatát is. Részletes illusztrációkat ebben a cikkben talál.
Hozzon létre egy AzureStorageLinkedService.json nevű JSON-fájlt a C:\ADFv2QuickStartPSH mappában az alábbi tartalommal (ha még nem létezne, hozza létre az ADFv2QuickStartPSH nevű mappát).
Fontos
A fájl mentése előtt az <accountName> és az <accountKey> kifejezést cserélje le az Azure Storage-fiók nevére és kulcsára.
{ "name": "AzureStorageLinkedService", "properties": { "annotations": [], "type": "AzureBlobStorage", "typeProperties": { "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountName>;AccountKey=<accountKey>;EndpointSuffix=core.windows.net" } } }
Ha a Jegyzettömböt használja, a Mentés másként párbeszédpanel Fájltípus mezőjénél válassza a Minden fájl lehetőséget. Ellenkező esetben a rendszer
.txt
kiterjesztést adhat a fájlhoz. For example,AzureStorageLinkedService.json.txt
. Ha létrehozza a fájlt a Fájlkezelőben, mielőtt megnyitná a Jegyzettömbben, előfordulhat, hogy nem fogja látni a hozzáadott.txt
kiterjesztést, mivel alapértelmezés szerint engedélyezve van az Ismert fájltípusok kiterjesztéseinek elrejtése beállítás. A továbblépés előtt távolítsa el a hozzáadott.txt
kiterjesztést.A PowerShellben lépjen az ADFv2QuickStartPSH mappára.
Set-Location 'C:\ADFv2QuickStartPSH'
Futtassa a Set-AzDataFactoryV2LinkedService parancsmagot a társított szolgáltatás létrehozásához: AzureStorageLinkedService.
Set-AzDataFactoryV2LinkedService -DataFactoryName $DataFactory.DataFactoryName ` -ResourceGroupName $ResGrp.ResourceGroupName -Name "AzureStorageLinkedService" ` -DefinitionFile ".\AzureStorageLinkedService.json"
Itt látható a minta kimenete:
LinkedServiceName : AzureStorageLinkedService ResourceGroupName : <resourceGroupName> DataFactoryName : <dataFactoryName> Properties : Microsoft.Azure.Management.DataFactory.Models.AzureBlobStorageLinkedService
Adatkészletek létrehozása
A feladat részeként két adatkészletet hoz létre, az InputDataset és az OutputDataset adatkészletet. Ezek az adatkészletek bináris típusúak. Az előző szakaszban létrehozott Azure Storage-beli társított szolgáltatásra hivatkoznak. A bemeneti adatkészlet a bemeneti mappában lévő forrásadatokat jelenti. A bemeneti adatkészlet definíciójában adhatja meg a forrásadatokat tartalmazó blobtároló (adftutorial), mappa (input) és fájl (emp.txt) nevét. A kimeneti adatkészlet a célhelyre másolt adatokat jelenti. A kimeneti adatkészlet definíciójában adhatja meg annak a blobtárolónak (adftutorial), mappának (output) és fájlnak a nevét, amelybe az adatok át lesznek másolva.
Hozzon létre egy InputDataset.json nevű JSON-fájlt a C:\ADFv2QuickStartPSH mappában a következő tartalommal:
{ "name": "InputDataset", "properties": { "linkedServiceName": { "referenceName": "AzureStorageLinkedService", "type": "LinkedServiceReference" }, "annotations": [], "type": "Binary", "typeProperties": { "location": { "type": "AzureBlobStorageLocation", "fileName": "emp.txt", "folderPath": "input", "container": "adftutorial" } } } }
Az adatkészlet létrehozásához futtassa a Set-AzDataFactoryV2Dataset parancsmagot az InputDataset parancsmaggal.
Set-AzDataFactoryV2Dataset -DataFactoryName $DataFactory.DataFactoryName ` -ResourceGroupName $ResGrp.ResourceGroupName -Name "InputDataset" ` -DefinitionFile ".\InputDataset.json"
Itt látható a minta kimenete:
DatasetName : InputDataset ResourceGroupName : <resourceGroupname> DataFactoryName : <dataFactoryName> Structure : Properties : Microsoft.Azure.Management.DataFactory.Models.BinaryDataset
A kimeneti adatkészlet létrehozásához ismételje meg ezeket a lépéseket. Hozzon létre egy OutputDataset.json nevű JSON-fájlt a C:\ADFv2QuickStartPSH mappában a következő tartalommal:
{ "name": "OutputDataset", "properties": { "linkedServiceName": { "referenceName": "AzureStorageLinkedService", "type": "LinkedServiceReference" }, "annotations": [], "type": "Binary", "typeProperties": { "location": { "type": "AzureBlobStorageLocation", "folderPath": "output", "container": "adftutorial" } } } }
Futtassa a Set-AzDataFactoryV2Dataset parancsmagot az OutDataset létrehozásához.
Set-AzDataFactoryV2Dataset -DataFactoryName $DataFactory.DataFactoryName ` -ResourceGroupName $ResGrp.ResourceGroupName -Name "OutputDataset" ` -DefinitionFile ".\OutputDataset.json"
Itt látható a minta kimenete:
DatasetName : OutputDataset ResourceGroupName : <resourceGroupname> DataFactoryName : <dataFactoryName> Structure : Properties : Microsoft.Azure.Management.DataFactory.Models.BinaryDataset
Folyamat létrehozása
Ebben az eljárásban egy másolási tevékenységgel rendelkező folyamatot hoz létre, amely a bemeneti és kimeneti adatkészleteket használja. A másolási tevékenység adatokat másol a bemeneti adatkészlet beállításaiban megadott fájlból a kimeneti adatkészlet beállításaiban megadott fájlba.
Hozzon létre egy Adfv2QuickStartPipeline.json nevű JSON-fájlt a C:\ADFv2QuickStartPSH mappában az alábbi tartalommal.
{ "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": [] } }
A folyamat létrehozásához futtassa a Set-AzDataFactoryV2Pipeline parancsmagot az Adfv2QuickStartPipeline parancsmaggal.
$DFPipeLine = Set-AzDataFactoryV2Pipeline ` -DataFactoryName $DataFactory.DataFactoryName ` -ResourceGroupName $ResGrp.ResourceGroupName ` -Name "Adfv2QuickStartPipeline" ` -DefinitionFile ".\Adfv2QuickStartPipeline.json"
Folyamat futásának létrehozása
Ebben a lépésben létrehoz egy folyamatfuttatást.
Futtassa az Invoke-AzDataFactoryV2Pipeline parancsmagot egy folyamatfuttatás létrehozásához. A parancsmag visszaadja a folyamat futásának azonosítóját a későbbi monitorozás céljából.
$RunId = Invoke-AzDataFactoryV2Pipeline `
-DataFactoryName $DataFactory.DataFactoryName `
-ResourceGroupName $ResGrp.ResourceGroupName `
-PipelineName $DFPipeLine.Name
A folyamat futásának monitorozása
A folyamat futási állapotának folyamatos, az adatok másolásának befejezéséig tartó ellenőrzéséhez futtassa az alábbi PowerShell-szkriptet. Másolja/illessze be az alábbi szkriptet a PowerShell-ablakba, majd nyomja le az Enter billentyűt.
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 }
Itt látható a folyamat futásának mintakimenete:
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 :
A másolási tevékenység futtatási részleteinek (például az írt vagy olvasott adatok méretének) lekéréséhez futtassa az alábbi szkriptet.
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"
Győződjön meg arról, hogy a kimenet hasonlít az alábbi tevékenységfuttatás eredményének mintakimenetéhez:
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"
Üzembe helyezett erőforrások áttekintése
A folyamat automatikusan létrehozza a kimeneti mappát az adftutorial blobtárolóban. Ezután átmásolja az emp.txt fájlt a bemeneti mappából a kimeneti mappába.
Az Azure Portal adftutorial tárolólapján válassza a Frissítés lehetőséget a kimeneti mappa megtekintéséhez.
Válassza ki a kimenetet a mappalistában.
Ellenőrizze, hogy az emp.txt fájl bekerült-e a kimeneti mappába.
Clean up resources
Kétféleképpen távolíthatja el a rövid útmutatóban létrehozott erőforrásokat. Törölheti az Azure-erőforráscsoportot, amely tartalmazza az erőforráscsoportban lévő összes erőforrást. Ha a többi erőforrást érintetlenül szeretné hagyni, csak az ebben az oktatóanyagban létrehozott adat-előállítót törölje.
Egy erőforráscsoport törlése a csoportban található összes erőforrást törli, beleértve az adat-előállítókat is. Az alábbi parancsot futtassa a teljes erőforráscsoport törléséhez:
Remove-AzResourceGroup -ResourceGroupName $resourcegroupname
Megjegyzés:
Egy erőforráscsoport elvetése eltarthat egy ideig. Várjon türelmesen, amíg a folyamat befejeződik
Ha csak az adat-előállítót szeretné törölni, nem pedig a teljes erőforráscsoportot, futtassa az alábbi parancsot:
Remove-AzDataFactoryV2 -Name $dataFactoryName -ResourceGroupName $resourceGroupName
Kapcsolódó tartalom
A példában szereplő folyamat adatokat másol az egyik helyről egy másikra egy Azure Blob Storage-ban. A Data Factory más forgatókönyvekben való használatát ismertető további információkért tekintse meg az oktatóanyagokat.