Az Azure Data Factoryben és a Synapse Analyticsben végzett tevékenységig

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!

Az Until tevékenység ugyanazokat a funkciókat biztosítja, mint a programnyelvek Do-Until ciklusos szerkezete. Egy tevékenységkészletet futtat le ciklusosan addig, amíg a tevékenységhez rendelt feltétel igaz értéket nem ad vissza. Ha egy belső tevékenység meghiúsul, a Until tevékenység nem áll le. Megadhat időtúllépési értéket a tevékenység befejezéséig.

Until-tevékenység létrehozása felhasználói felülettel

Ha egy folyamatban lévő Until tevékenységet szeretne használni, hajtsa végre a következő lépéseket:

  1. Keressen rá a Folyamattevékenységek panelEn a Until kifejezésre, és húzzon egy Until tevékenységet a folyamatvászonra.

  2. Ha még nincs kijelölve, válassza a Vászonon a Until (Amíg) tevékenységet, és a Gépház fület a részleteinek szerkesztéséhez.

    Shows the Settings tab of the Until activity in the pipeline canvas.

  3. Adjon meg egy kifejezést, amely kiértékelésre kerül a Mindaddig műveletben definiált összes gyermektevékenység után. Ha a kifejezés hamis értéket ad vissza, a Until tevékenység ismét végrehajtja az összes gyermektevékenységét. Ha igaz értékre értékel, a Amíg a tevékenység befejeződik. A kifejezés lehet konstans sztringkifejezés, vagy dinamikus kifejezések, függvények, rendszerváltozók vagy más tevékenységek kimenetei bármilyen kombinációja. Az alábbi példa egy korábban definiált, TestVariable nevű folyamattömbváltozó értékét ellenőrzi annak ellenőrzésére, hogy a folyamat kiértékelése megtörtént-e.

    Shows the  Add dynamic content  pane with an expression to check a variable for a defined value.

  4. A Tevékenységek szerkesztése gombra kattintva közvetlenül a Tevékenység szerkesztése gombra kattintva vagy a Tevékenységek fülre kattintva határozhatja meg azokat a tevékenységeket, amelyeket a Until tevékenység hajt végre. Megjelenik egy új tevékenységszerkesztő ablaktábla, ahol bármilyen tevékenységet hozzáadhat a Végrehajtásig tevékenységhez. Ebben a példában a Változó beállítása tevékenység egyszerűen a fent említett kifejezésben hivatkozott változó értékét "kész" értékre állítja, így a Amíg tevékenység kifejezése igaz lesz az első végrehajtáskor, és a Until tevékenység leáll. A valós használatban ellenőrizheti a szükséges feltételeket, és a Amíg a tevékenység továbbra is végrehajtja a gyermektevékenységeket a kifejezés kiértékelésekor, amíg a feltételek teljesülnek.

    Shows the activities editor for an Until activity with a Set Variable activity defined.

Syntax

{
    "type": "Until",
    "typeProperties": {
        "expression":  {
            "value":  "<expression that evaluates to true or false>", 
            "type": "Expression"
        },
        "timeout": "<time out for the loop. for example: 00:10:00 (10 minute)>",
        "activities": [
            {
                "<Activity 1 definition>"
            },
            {
                "<Activity 2 definition>"
            },
            {
                "<Activity N definition>"
            }
        ]
    },
    "name": "MyUntilActivity"
}

Típustulajdonságok

Tulajdonság Leírás Megengedett értékek Szükséges
név Until A tevékenység neve. Sztring Igen
típus Meg kell adni a Until értéket. Sztring Igen
Kifejezés Igaz vagy hamis értékre kiértékelendő kifejezés Kifejezés. Igen
timeout A do-until ciklus túllépi az időkorlátot a megadott idő után. Karakterlánc. d.hh:mm:ss (vagy) hh:mm:ss. Az alapértelmezett érték hét nap. A maximális érték: 90 nap. Nem
Tevékenységek Azoknak a tevékenységeknek a készlete, amelyeket addig hajtanak végre, amíg a kifejezés ki nem értékeli a következőt true: . Tevékenységek tömbje. Igen

1. példa

Feljegyzés

Ez a szakasz JSON-definíciókat és PowerShell-mintaparancsokat tartalmaz a folyamat futtatásához. A folyamat Azure PowerShell- és JSON-definíciókkal történő létrehozásához szükséges részletes útmutatást az alábbi oktatóanyagban találja : adat-előállító létrehozása az Azure PowerShell használatával.

Folyamat a Until tevékenységgel

Ebben a példában a folyamat két tevékenységgel rendelkezik: Until and Wait. A várakozási tevékenység a megadott ideig várakozik, mielőtt a webes tevékenységet futtatja a hurokban. A kifejezések és függvények megismeréséhez tekintse meg a kifejezés nyelvét és a függvényeket.

{
    "name": "DoUntilPipeline",
    "properties": {
        "activities": [
            {
                "type": "Until",
                "typeProperties": {
                    "expression": {
                        "value": "@equals('Failed', coalesce(body('MyUnauthenticatedActivity')?.status, actions('MyUnauthenticatedActivity')?.status, 'null'))",
                        "type": "Expression"
                    },
                    "timeout": "00:10:00",
                    "activities": [
                        {
                            "name": "MyUnauthenticatedActivity",
                            "type": "WebActivity",
                            "typeProperties": {
                                "method": "get",
                                "url": "https://www.fake.com/",
                                "headers": {
                                    "Content-Type": "application/json"
                                }
                            },
                            "dependsOn": [
                                {
                                    "activity": "MyWaitActivity",
                                    "dependencyConditions": [ "Succeeded" ]
                                }
                            ]
                        },
                        {
                            "type": "Wait",
                            "typeProperties": {
                                "waitTimeInSeconds": 1
                            },
                            "name": "MyWaitActivity"
                        }
                    ]
                },
                "name": "MyUntilActivity"
            }
        ]
    }
}

2. példa

A mintafolyamat adatokat másol egy bemeneti mappából egy hurok kimeneti mappájába. A ciklus akkor fejeződik be, ha az ismétlési paraméter értéke hamis, vagy egy perc elteltével túllépi az időkorlátot.

Folyamat a Until tevékenységgel (Adfv2QuickStartPipeline.json)

{
    "name": "Adfv2QuickStartPipeline",
    "properties": {
        "activities": [
            {
                "type": "Until",
                "typeProperties": {
                    "expression":  {
                        "value":  "@equals('false', pipeline().parameters.repeat)", 
                        "type": "Expression"
                    },
                    "timeout": "00:10:00",
                    "activities": [
                        {
                            "name": "CopyFromBlobToBlob",
                            "type": "Copy",
                            "inputs": [
                                {
                                    "referenceName": "BlobDataset",
                                    "parameters": {
                                        "path": "@pipeline().parameters.inputPath"
                                    },
                                    "type": "DatasetReference"
                                }
                            ],
                            "outputs": [
                                {
                                    "referenceName": "BlobDataset",
                                    "parameters": {
                                        "path": "@pipeline().parameters.outputPath"
                                    },
                                    "type": "DatasetReference"
                                }
                            ],
                            "typeProperties": {
                                "source": {
                                    "type": "BlobSource"
                                },
                                "sink": {
                                    "type": "BlobSink"
                                }
                            },
                            "policy": {
                                "retry": 1,
                                "timeout": "00:10:00",
                                "retryIntervalInSeconds": 60
                            }
                        }
                    ]
                },
                "name": "MyUntilActivity"
            }
        ],
        "parameters": {
            "inputPath": {
                "type": "String"
            },
            "outputPath": {
                "type": "String"
            },
            "repeat": {
                "type": "String"
            }                        
        }        
    }
}

Azure Storage társított szolgáltatás (AzureStorageLinkedService.json)

{
    "name": "AzureStorageLinkedService",
    "properties": {
        "type": "AzureStorage",
        "typeProperties": {
            "connectionString": "DefaultEndpointsProtocol=https;AccountName=<Azure Storage account name>;AccountKey=<Azure Storage account key>"
        }
    }
}

Paraméteres Azure Blob-adatkészlet (BlobDataset.json)

A folyamat azPath mappát a folyamat outputPath1 vagy outputPath2 paraméterének értékére állítja be.

{
    "name": "BlobDataset",
    "properties": {
        "type": "AzureBlob",
        "typeProperties": {
            "folderPath": {
                "value": "@{dataset().path}",
                "type": "Expression"
            }
        },
        "linkedServiceName": {
            "referenceName": "AzureStorageLinkedService",
            "type": "LinkedServiceReference"
        },
        "parameters": {
            "path": {
                "type": "String"
            }
        }
    }
}

JSON folyamatparaméter (PipelineParameters.json)

{
    "inputPath": "adftutorial/input",
    "outputPath": "adftutorial/outputUntil",
    "repeat": "true"
}

PowerShell-parancsok

Feljegyzés

Javasoljuk, hogy az Azure Az PowerShell modult használja az Azure-ral való interakcióhoz. Az első lépésekhez tekintse meg az Azure PowerShell telepítését ismertető szakaszt. Az Az PowerShell-modulra történő migrálás részleteiről lásd: Az Azure PowerShell migrálása az AzureRM modulból az Az modulba.

Ezek a parancsok feltételezik, hogy a JSON-fájlokat a C:\ADF mappába mentette.

Connect-AzAccount
Select-AzSubscription "<Your subscription name>"

$resourceGroupName = "<Resource Group Name>"
$dataFactoryName = "<Data Factory Name. Must be globally unique>";
Remove-AzDataFactoryV2 $dataFactoryName -ResourceGroupName $resourceGroupName -force


Set-AzDataFactoryV2 -ResourceGroupName $resourceGroupName -Location "East US" -Name $dataFactoryName
Set-AzDataFactoryV2LinkedService -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "AzureStorageLinkedService" -DefinitionFile "C:\ADF\AzureStorageLinkedService.json"
Set-AzDataFactoryV2Dataset -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "BlobDataset" -DefinitionFile "C:\ADF\BlobDataset.json"
Set-AzDataFactoryV2Pipeline -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "Adfv2QuickStartPipeline" -DefinitionFile "C:\ADF\Adfv2QuickStartPipeline.json"
$runId = Invoke-AzDataFactoryV2Pipeline -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -PipelineName "Adfv2QuickStartPipeline" -ParameterFile C:\ADF\PipelineParameters.json

while ($True) {
    $run = Get-AzDataFactoryV2PipelineRun -ResourceGroupName $resourceGroupName -DataFactoryName $DataFactoryName -PipelineRunId $runId

    if ($run) {
        if ($run.Status -ne 'InProgress') {
            Write-Host "Pipeline run finished. The status is: " $run.Status -foregroundcolor "Yellow"
            $run
            break
        }
        Write-Host  "Pipeline is running...status: InProgress" -foregroundcolor "Yellow"
        Write-Host "Activity run details:" -foregroundcolor "Yellow"
        $result = Get-AzDataFactoryV2ActivityRun -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -PipelineRunId $runId -RunStartedAfter (Get-Date).AddMinutes(-30) -RunStartedBefore (Get-Date).AddMinutes(30)
        $result

        Write-Host "Activity 'Output' section:" -foregroundcolor "Yellow"
        $result.Output -join "`r`n"
    }

    Start-Sleep -Seconds 15
}

Lásd az egyéb támogatott vezérlési folyamatokat: