Azure Data Factory'yi program aracılığıyla izleme
UYGULANANLAR: Azure Data Factory
Azure Synapse Analytics
İpucu
Kuruluşlar için hepsi bir arada analiz çözümü olan Microsoft Fabric'te Data Factory'yi deneyin. Microsoft Fabric , veri taşımadan veri bilimine, gerçek zamanlı analize, iş zekasına ve raporlamaya kadar her şeyi kapsar. Yeni bir deneme sürümünü ücretsiz olarak başlatmayı öğrenin!
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çıklanmaktadır.
Not
Azure ile etkileşim kurmak için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz. Azure PowerShell'i 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, işlem hattı çalıştırma verilerini yalnızca 45 gün boyunca 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
parametreler için en fazla tarih yoktur. Ancak örneğin geçen yıla ait verileri sorgularsanız hata almazsınız ancak yalnızca son 45 güne ait 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ının yaşam döngüsü sırasında farklı bir durumu vardır; çalıştırma durumunun olası değerleri aşağıda listelenmiştir:
- Kuyruğa alındı
- Devam Ediyor
- Başarılı Oldu
- Başarısız oldu
- İptal Ediliyor
- İptal edildi
.NET
.NET SDK'sını kullanarak işlem hattı oluşturma ve izleme adımları için bkz . .NET kullanarak veri fabrikası ve işlem hattı oluşturma.
İşlem hattı çalıştırmasının durumunu verilerin kopyalanması bitene kadar sürekli olarak 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; }
Okuma/yazma verilerinin 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'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 hakkında 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 hakkında 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 hakkında 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.
İlgili içerik
Data Factory işlem hatlarını izlemek için Azure İzleyici'yi kullanarak işlem hatlarını izleme makalesine bakın.