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. Lihat Menginstal Azure PowerShell untuk memulai. 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.

  1. 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;
    }
    
  2. 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.

  1. 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
        }
    }
    
  2. 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.

  1. 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
    }
    
  2. 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.

Lihat artikel Memantau alur menggunakan Azure Monitor untuk mempelajari tentang menggunakan Azure Monitor untuk memantau alur Data Factory.