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. Zobacz Instalowanie programu Azure PowerShell, aby rozpocząć. 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.

  1. 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;
    }
    
  2. 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.

  1. 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
        }
    }
    
  2. 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.

  1. 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
    }
    
  2. 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).

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.