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.

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.

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
  • Failed
  • É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.