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. Az első lépésekhez tekintse meg Az Azure PowerShell telepítése 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
- Folyamatban
- 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.
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; }
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.
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 } }
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.
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 }
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.
Kapcsolódó tartalom
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.