Azure veri fabrikasını program aracılığıyla izleme

AŞAĞıDAKILER IÇIN GEÇERLIDIR: Azure Data Factory Azure Synapse Analytics

Bu makalede, farklı yazılım geliştirme setlerini (SDK) kullanarak bir veri fabrikasında işlem hattının nasıl izlenir?

Not

Bu makale Azure Az PowerShell modülünü kullanacak şekilde güncelleştirilmiştir. Az PowerShell modülü, Azure ile etkileşim kurmak için önerilen PowerShell modülüdür. Az PowerShell modülünü kullanmaya başlamak için Azure PowerShell’i yükleyin. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.

Veri aralığı

Data Factory işlem hattı çalıştırma verilerini yalnızca 45 gün boyunca depolar. İşlem hattı çalıştırmaları hakkında program aracılığıyla Data Factory sorgularken (örneğin, PowerShell komutuyla) isteğe bağlı ve parametreler için maksimum Get-AzDataFactoryV2PipelineRun LastUpdatedAfter tarih LastUpdatedBefore yoktur. Ancak örneğin, geçen yıla göre verileri sorgularsanız hatayla değil yalnızca son 45 günlük işlem hattı çalıştırma verilerini alırsınız.

İşlem hattı çalıştırma verilerini 45 gün boyunca tutmak için, ile kendi tanılama günlüklerinizi Azure İzleyici.

İşlem hattı çalıştırma bilgileri

İşlem hattı çalıştırma özellikleri için Bkz. PipelineRun API başvurusu. İşlem hattı çalıştırması yaşam döngüsü sırasında farklı bir durumdadır ve çalıştırma durumunun olası değerleri aşağıda listelenmiştir:

  • Kuyruğa alındı
  • Giriş
  • Başarılı
  • Başarısız
  • İptal Ediliyor
  • İptal Edildi

.NET

.NET SDK kullanarak işlem hattı oluşturma ve izleme hakkında eksiksiz bir yol için bkz. .NET kullanarak veri fabrikası ve işlem hattı oluşturma.

  1. İşlem hattı çalıştırması veri kopyalamayı bitirene kadar durumunu sürekli olarak kontrol etmek için aşağıdaki kodu ekleyin.

    // 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. Okunan/yazılan verilerin boyutu gibi kopyalama etkinliği çalıştırma ayrıntılarını alan aşağıdaki kodu ekleyin.

    // 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();
    

.NET SDK ile ilgili tüm belgeler için bkz. Data Factory .NET SDK başvurusu.

Python

Python SDK'sını kullanarak işlem hattı oluşturma ve izleme hakkında eksiksiz bir yol için bkz. Python kullanarak veri fabrikası ve işlem hattı oluşturma.

İşlem hattı çalıştırmalarını izlemek için aşağıdaki kodu ekleyin:

# 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])

Python SDK ile ilgili tüm belgeler için bkz. Data Factory Python SDK başvurusu.

REST API

REST API kullanarak işlem hattı oluşturma ve izleme hakkında eksiksiz bir yol için bkz. REST API kullanarak veri fabrikası ve işlem hattı oluşturma.

  1. İşlem hattı çalıştırma durumunu, verileri kopyalama işlemi tamamlanıncaya kadar sürekli olarak denetlemek için aşağıdaki betiği çalıştırın.

    $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. Kopyalama etkinliği çalıştırma ayrıntılarını (örneğin, okunan/yazılan verilerin boyutu) almak için aşağıdaki betiği çalıştırın.

    $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
    

REST API hakkında eksiksiz belgeler için bkz. Data Factory REST API başvurusu.

PowerShell

PowerShell kullanarak işlem hattı oluşturma ve izleme hakkında eksiksiz bir yol için bkz. PowerShell kullanarak veri fabrikası ve işlem hattı oluşturma.

  1. İşlem hattı çalıştırma durumunu, verileri kopyalama işlemi tamamlanıncaya kadar sürekli olarak denetlemek için aşağıdaki betiği çalıştırın.

    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. Kopyalama etkinliği çalıştırma ayrıntılarını (örneğin, okunan/yazılan verilerin boyutu) almak için aşağıdaki betiği çalıştırın.

    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"
    

PowerShell cmdlet'leri hakkında eksiksiz belgeler için bkz. Data Factory PowerShell cmdlet başvurusu.

Sonraki adımlar

İşlem hatlarını izlemek için Azure İzleyici hakkında bilgi edinmek için bkz. Azure İzleyici işlem Data Factory izleme.