Programowe monitorowanie usługi Azure Data Factory
DOTYCZY: Azure Data Factory Azure Synapse Analytics
Napiwek
Wypróbuj usługę Data Factory w usłudze Microsoft Fabric — rozwiązanie analityczne typu all-in-one dla przedsiębiorstw. Usługa Microsoft Fabric obejmuje wszystko, od przenoszenia danych do nauki o danych, analizy w czasie rzeczywistym, analizy biznesowej i raportowania. Dowiedz się, jak bezpłatnie rozpocząć nową wersję próbną !
W tym artykule opisano sposób monitorowania potoku w fabryce danych przy użyciu różnych zestawów SDK (software development kit).
Uwaga
Do interakcji z platformą Azure zalecamy używanie modułu Azure Az w programie PowerShell. Aby rozpocząć, zobacz Instalowanie programu Azure PowerShell. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.
Zakres danych
Usługa Data Factory przechowuje tylko dane uruchomienia potoku przez 45 dni. Podczas programowego wykonywania zapytań dotyczących danych dotyczących przebiegów potoku usługi Data Factory — na przykład za pomocą polecenia Get-AzDataFactoryV2PipelineRun
programu PowerShell — nie ma żadnych maksymalnych dat dla parametrów opcjonalnych LastUpdatedAfter
i LastUpdatedBefore
. Jeśli jednak wykonasz zapytanie o dane z ostatniego roku, na przykład nie zostanie wyświetlony błąd, ale tylko dane uruchomienia potoku z ostatnich 45 dni.
Jeśli chcesz przechowywać dane uruchamiania potoku przez ponad 45 dni, skonfiguruj własne rejestrowanie diagnostyczne za pomocą usługi Azure Monitor.
Informacje o przebiegu potoku
Aby uzyskać informacje o właściwościach przebiegu potoku, zapoznaj się z dokumentacją interfejsu API PipelineRun. Przebieg potoku ma inny stan w trakcie cyklu życia, a możliwe wartości stanu uruchomienia są wymienione poniżej:
- W kolejce
- InProgress
- Powodzenie
- Nie działa
- Anulowanie
- Anulowane
.NET
Aby zapoznać się z kompletnym przewodnikiem tworzenia i monitorowania potoku przy użyciu zestawu .NET SDK, zobacz Tworzenie fabryki danych i potoku przy użyciu platformy .NET.
Dodaj następujący kod, aby stale sprawdzać stan uruchomienia potoku do momentu zakończenia kopiowania danych.
// 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; }
Dodaj następujący kod, który pobiera szczegóły uruchomienia działania kopiowania, na przykład rozmiar odczyt/zapis danych.
// 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();
Aby uzyskać pełną dokumentację dotyczącą zestawu .NET SDK, zobacz Dokumentacja zestawu .NET SDK usługi Data Factory.
Python
Aby zapoznać się z kompletnym przewodnikiem tworzenia i monitorowania potoku przy użyciu zestawu SDK języka Python, zobacz Tworzenie fabryki danych i potoku przy użyciu języka Python.
Aby monitorować przebieg potoku, dodaj następujący kod:
# 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])
Aby uzyskać pełną dokumentację dotyczącą zestawu PYTHON SDK, zobacz Data Factory Python SDK reference (Dokumentacja zestawu SDK języka Python usługi Data Factory).
Interfejs API REST
Aby zapoznać się z kompletnym przewodnikiem tworzenia i monitorowania potoku przy użyciu interfejsu API REST, zobacz Tworzenie fabryki danych i potoku przy użyciu interfejsu API REST.
Uruchom następujący skrypt, aby stale sprawdzać stan uruchomienia potoku do momentu zakończenia kopiowania danych.
$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 } }
Uruchom następujący skrypt, aby pobrać szczegóły uruchomienia działania kopiowania, na przykład rozmiar odczytanych/zapisanych danych.
$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
Aby uzyskać pełną dokumentację dotyczącą interfejsu API REST, zobacz Dokumentacja interfejsu API REST usługi Data Factory.
PowerShell
Aby zapoznać się z kompletnym przewodnikiem tworzenia i monitorowania potoku przy użyciu programu PowerShell, zobacz Tworzenie fabryki danych i potoku przy użyciu programu PowerShell.
Uruchom następujący skrypt, aby stale sprawdzać stan uruchomienia potoku do momentu zakończenia kopiowania danych.
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 }
Uruchom następujący skrypt, aby pobrać szczegóły uruchomienia działania kopiowania, na przykład rozmiar odczytanych/zapisanych danych.
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"
Aby uzyskać pełną dokumentację dotyczącą poleceń cmdlet programu PowerShell, zobacz Data Factory PowerShell cmdlet reference (Dokumentacja poleceń cmdlet programu PowerShell w usłudze Data Factory).
Powiązana zawartość
Zobacz Artykuł Monitorowanie potoków przy użyciu usługi Azure Monitor , aby dowiedzieć się więcej na temat monitorowania potoków usługi Data Factory przy użyciu usługi Azure Monitor.