Program aracılığıyla bir Azure Data Factory izleme

ŞUNLAR IÇIN GEÇERLIDIR: Azure Data Factory Azure Synapse Analytics

Bu makalede, farklı yazılım geliştirme setleri (SDK) kullanarak bir veri fabrikasındaki işlem hattının nasıl izleneceği açıklanır.

Not

Azure ile etkileşime geçmek için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz. Azure PowerShell yükleme. 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 yalnızca 45 gün boyunca işlem hattı çalıştırma verilerini depolar. Data Factory işlem hattı çalıştırmalarıyla ilgili verileri program aracılığıyla sorguladığınızda (örneğin, PowerShell komutuyla Get-AzDataFactoryV2PipelineRun ) isteğe bağlı LastUpdatedAfter ve LastUpdatedBefore parametreleri için maksimum tarih yoktur. Ancak örneğin geçen yıla ait verileri sorgularsanız hata almazsınız ancak yalnızca son 45 günün işlem hattı çalıştırma verilerini çalıştırırsınız.

İşlem hattı çalıştırma verilerini 45 günden uzun süre tutmak istiyorsanız Azure İzleyici ile kendi tanılama günlük kaydınızı ayarlayın.

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

İşlem hattı çalıştırma özellikleri için PipelineRun API başvurusuna bakın. İşlem hattı çalıştırması yaşam döngüsü boyunca farklı bir duruma sahiptir; çalıştırma durumunun olası değerleri aşağıda listelenmiştir:

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

.NET

.NET SDK kullanarak işlem hattı oluşturma ve izleme konusunda ayrıntılı bilgi için bkz. .NET kullanarak veri fabrikası ve işlem hattı oluşturma.

  1. İşlem hattı çalıştırmasının durumunu verileri kopyalamayı tamamlayana kadar sürekli denetlemek 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. Kopyalama etkinliği çalıştırma ayrıntılarını (örneğin, okunan/yazılan verilerin boyutu) 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'sı 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 konusunda ayrıntılı bilgi için bkz. Python kullanarak veri fabrikası ve işlem hattı oluşturma.

İşlem hattı çalıştırması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'sı 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 konusunda ayrıntılı bilgi 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 ile ilgili tüm belgeler için bkz. Data Factory REST API başvurusu.

PowerShell

PowerShell kullanarak işlem hattı oluşturma ve izleme konusunda ayrıntılı bilgi 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'leriyle ilgili tüm belgeler için bkz. Data Factory PowerShell cmdlet başvurusu.

Sonraki adımlar

Data Factory işlem hatlarını izlemek için Azure İzleyici'yi kullanarak işlem hatlarını izleme makalesine bakın.