Memantau Azure Data Factory secara terprogram
BERLAKU UNTUK: Azure Data Factory
Azure Synapse Analytics
Tip
Cobalah Data Factory di Microsoft Fabric, solusi analitik all-in-one untuk perusahaan. Microsoft Fabric mencakup semuanya mulai dari pergerakan data hingga ilmu data, analitik real time, kecerdasan bisnis, dan pelaporan. Pelajari cara memulai uji coba baru secara gratis!
Artikel ini menjelaskan cara memantau alur di pabrik data dengan menggunakan kit pengembangan perangkat lunak (SDK) yang berbeda.
Catatan
Sebaiknya Anda menggunakan modul Azure Az PowerShell untuk berinteraksi dengan Azure. Untuk memulai, lihat Menginstal Azure PowerShell. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.
Rentang data
Data Factory hanya menyimpan data eksekusi alur selama 45 hari. Saat Anda mengkueri secara terprogram untuk data tentang eksekusi alur Data Factory - misalnya, dengan perintah PowerShell Get-AzDataFactoryV2PipelineRun
- tidak ada tanggal maksimum untuk parameter opsional LastUpdatedAfter
dan LastUpdatedBefore
. Tetapi jika Anda mengkueri data selama setahun terakhir, misalnya, Anda tidak akan mendapatkan kesalahan tetapi hanya mendapatkan data eksekusi alur dari 45 hari terakhir.
Jika Anda ingin menyimpan data eksekusi alur selama lebih dari 45 hari, siapkan pembuatan log diagnostik Anda sendiri dengan Azure Monitor.
Informasi eksekusi alur
Untuk properti eksekusi alur, lihat Referensi PipelineRun API. Eksekusi alur memiliki status yang berbeda selama siklus hidupnya, nilai yang mungkin dari status eksekusi tercantum di bawah ini:
- Dalam antrean
- SedangBerlangsung
- Berhasil
- Gagal
- Membatalkan
- Dibatalkan
.NET
Untuk panduan lengkap membuat dan memantau alur menggunakan .NET SDK, lihat Membuat pabrik data dan alur menggunakan .NET.
Tambahkan kode berikut untuk terus memeriksa status eksekusi alur sampai selesai menyalin data.
// 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; }
Tambahkan kode berikut ke yang mengambil detail eksekusi aktivitas salin, misalnya, ukuran data yang dibaca/ditulis.
// 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();
Untuk dokumentasi lengkap tentang .NET SDK, lihat Referensi Data Factory .NET SDK.
Python
Untuk panduan lengkap membuat dan memantau alur menggunakan Python SDK, lihat Membuat pabrik data dan alur menggunakan Python.
Untuk memantau eksekusi alur, tambahkan kode berikut:
# 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])
Untuk dokumentasi lengkap tentang Python SDK, lihat Referensi Data Factory Python SDK.
REST API
Untuk panduan lengkap membuat dan memantau alur menggunakan REST API, lihat Membuat pabrik data dan alur menggunakan REST API.
Jalankan skrip berikut ini untuk terus memeriksa status eksekusi alur hingga selesai menyalin data.
$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 } }
Jalankan skrip berikut untuk mengambil aktivitas salin detail eksekusi, misalnya, ukuran data yang dibaca/ditulis.
$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
Untuk dokumentasi lengkap tentang REST API, lihat Referensi Data Factory REST API.
PowerShell
Untuk panduan lengkap membuat dan memantau alur menggunakan PowerShell, lihat Membuat pabrik data dan alur menggunakan PowerShell.
Jalankan skrip berikut ini untuk terus memeriksa status eksekusi alur hingga selesai menyalin data.
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 }
Jalankan skrip berikut untuk mengambil aktivitas salin detail eksekusi, misalnya, ukuran data yang dibaca/ditulis.
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"
Untuk dokumentasi lengkap tentang cmdlet PowerShell, lihat Referensi cmdlet Data Factory PowerShell.
Konten terkait
Lihat artikel Memantau alur menggunakan Azure Monitor untuk mempelajari tentang menggunakan Azure Monitor untuk memantau alur Data Factory.