Megosztás a következőn keresztül:


Azure Data Factory programozott monitorozása

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 cikk azt ismerteti, hogyan monitorozhat folyamatokat egy adat-előállítóban különböző szoftverfejlesztői készletek (SDK-k) használatával.

Feljegyzés

Javasoljuk, hogy az Azure Az PowerShell modult használja az Azure-ral való interakcióhoz. Első lépésként tekintse meg az Azure PowerShell telepítését ismertető témakört. 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.

Adattartomány

A Data Factory csak 45 napig tárolja a folyamatfuttatási adatokat. Amikor programozott módon kérdez le adatokat a Data Factory-folyamatfuttatásokról – például a PowerShell-paranccsal Get-AzDataFactoryV2PipelineRun –, a választható LastUpdatedAfter és LastUpdatedBefore paraméterek maximális dátumai nincsenek. Ha például az elmúlt évre vonatkozó adatokat kérdez le, akkor nem fog hibaüzenetet kapni, csak a folyamatfuttatási adatokat az elmúlt 45 napból.

Ha több mint 45 napig szeretné megőrizni a folyamatfuttatási adatokat, állítsa be saját diagnosztikai naplózását az Azure Monitorral.

Folyamatfuttatási információk

A folyamatfuttatás tulajdonságaiért tekintse meg a PipelineRun API-referenciát. A folyamatfuttatások életciklusa során eltérő állapotban vannak, a futtatási állapot lehetséges értékeit az alábbiakban találja:

  • Feldolgozási sorban
  • Bejövő forgalom
  • Sikeres
  • Sikertelen
  • Érvénytelenítés
  • Érvénytelenítve

.NET

A folyamatok .NET SDK-val történő létrehozásának és monitorozásának teljes körű útmutatóját lásd : Data Factory és folyamat létrehozása a .NET használatával.

  1. Adja hozzá a következő kódot a folyamatfuttatás állapotának folyamatos ellenőrzéséhez, amíg be nem fejeződik az adatok másolása.

    // Monitor the pipeline run
    Console.WriteLine("Checking pipeline run status...");
    PipelineRun pipelineRun;
    while (true)
    {
        pipelineRun = client.PipelineRuns.Get(resourceGroup, dataFactoryName, runResponse.RunId);
        Console.WriteLine("Status: " + pipelineRun.Status);
        if (pipelineRun.Status == "InProgress" || pipelineRun.Status == "Queued")
            System.Threading.Thread.Sleep(15000);
        else
            break;
    }
    
  2. Adja hozzá a következő kódot, amely lekéri a másolási tevékenység futtatási adatait, például az olvasási/írási adatok méretét.

    // Check the copy activity run details
    Console.WriteLine("Checking copy activity run details...");
    
    RunFilterParameters filterParams = new RunFilterParameters(
        DateTime.UtcNow.AddMinutes(-10), DateTime.UtcNow.AddMinutes(10));
    ActivityRunsQueryResponse queryResponse = client.ActivityRuns.QueryByPipelineRun(
        resourceGroup, dataFactoryName, runResponse.RunId, filterParams);
    if (pipelineRun.Status == "Succeeded")
        Console.WriteLine(queryResponse.Value.First().Output);
    else
        Console.WriteLine(queryResponse.Value.First().Error);
    Console.WriteLine("\nPress any key to exit...");
    Console.ReadKey();
    

A .NET SDK-val kapcsolatos teljes dokumentációért tekintse meg a Data Factory .NET SDK-referenciáját.

Python

A folyamatok Python SDK-val történő létrehozásának és monitorozásának teljes körű útmutatóját lásd : Adat-előállító és folyamat létrehozása a Python használatával.

A folyamat futtatásának figyeléséhez adja hozzá a következő kódot:

# Monitor the pipeline run
time.sleep(30)
pipeline_run = adf_client.pipeline_runs.get(
    rg_name, df_name, run_response.run_id)
print("\n\tPipeline run status: {}".format(pipeline_run.status))
filter_params = RunFilterParameters(
    last_updated_after=datetime.now() - timedelta(1), last_updated_before=datetime.now() + timedelta(1))
query_response = adf_client.activity_runs.query_by_pipeline_run(
    rg_name, df_name, pipeline_run.run_id, filter_params)
print_activity_run_details(query_response.value[0])

A Python SDK teljes dokumentációját a Data Factory Python SDK-referenciajában találja.

REST API

A folyamatok REST API-val történő létrehozásának és monitorozásának teljes körű útmutatóját lásd : Data Factory és folyamat létrehozása REST API használatával.

  1. 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 szkriptet.

    $request = "https://management.azure.com/subscriptions/${subsId}/resourceGroups/${resourceGroup}/providers/Microsoft.DataFactory/factories/${dataFactoryName}/pipelineruns/${runId}?api-version=${apiVersion}"
    while ($True) {
        $response = Invoke-RestMethod -Method GET -Uri $request -Header $authHeader
        Write-Host  "Pipeline run status: " $response.Status -foregroundcolor "Yellow"
    
        if ( ($response.Status -eq "InProgress") -or ($response.Status -eq "Queued") ) {
            Start-Sleep -Seconds 15
        }
        else {
            $response | ConvertTo-Json
            break
        }
    }
    
  2. 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.

    $request = "https://management.azure.com/subscriptions/${subscriptionId}/resourceGroups/${resourceGroupName}/providers/Microsoft.DataFactory/factories/${factoryName}/pipelineruns/${runId}/queryActivityruns?api-version=${apiVersion}&startTime="+(Get-Date).ToString('yyyy-MM-dd')+"&endTime="+(Get-Date).AddDays(1).ToString('yyyy-MM-dd')+"&pipelineName=Adfv2QuickStartPipeline"
    $response = Invoke-RestMethod -Method POST -Uri $request -Header $authHeader
    $response | ConvertTo-Json
    

A REST API teljes dokumentációját a Data Factory REST API-referenciájában találja.

PowerShell

A folyamatok PowerShell-lel történő létrehozásának és monitorozásának teljes körű útmutatóját az Adat-előállító és -folyamat létrehozása a PowerShell használatával című témakörben talál.

  1. 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 szkriptet.

    while ($True) {
        $run = Get-AzDataFactoryV2PipelineRun -ResourceGroupName $resourceGroupName -DataFactoryName $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 30
    }
    
  2. 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-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"
    
    Write-Host "\nActivity 'Error' section:" -foregroundcolor "Yellow"
    $result.Error -join "`r`n"
    

A PowerShell-parancsmagok teljes dokumentációját a Data Factory PowerShell-parancsmagok referenciájában találja.

A Data Factory-folyamatok Monitorozása az Azure Monitor használatával című cikkből megtudhatja, hogy az Azure Monitor hogyan figyeli a Data Factory-folyamatokat.