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.
İş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; }
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.
İş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 } }
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.
İş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 }
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.