Memantau Azure Data Factory secara terprogram

Azure Data Factory Azure Synapse Analytics

Petunjuk

Data Factory di Microsoft Fabric adalah generasi Azure Data Factory berikutnya, dengan arsitektur yang lebih sederhana, AI bawaan, dan fitur baru. Jika Anda baru menggunakan integrasi data, mulailah dengan Fabric Data Factory. Beban kerja ADF yang ada dapat ditingkatkan ke Fabric untuk mengakses kemampuan baru di seluruh ilmu data, analitik real time, dan pelaporan.

Artikel ini menjelaskan cara memantau alur di pabrik data dengan menggunakan kit pengembangan perangkat lunak (SDK) yang berbeda.

Catatan

Kami menyarankan agar Anda menggunakan modul Az PowerShell Azure untuk berinteraksi dengan Azure. Untuk memulai, lihat Install Azure PowerShell. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Migrasikan Azure PowerShell dari AzureRM ke Az.

Rentang data

Data Factory hanya menyimpan data proses 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 meminta data selama setahun terakhir, sebagai contoh, Anda tidak akan mendapatkan kesalahan tetapi hanya data proses alur dari 45 hari terakhir.

Jika Anda ingin menyimpan data jalan alur selama lebih dari 45 hari, siapkan log diagnostik Anda sendiri dengan Azure Monitor.

Informasi pelaksanaan pipeline

Untuk properti jalur eksekusi, lihat referensi API PipelineRun. Eksekusi pipa data memiliki status yang berbeda selama siklus kerjanya, status eksekusi yang memungkinkan tercantum di bawah ini:

  • Dalam antrean
  • SedangBerlangsung
  • Berhasil
  • Gagal
  • Membatalkan
  • Dibatalkan

.NET

Untuk panduan lengkap membuat dan memantau alur menggunakan .NET SDK, lihat Buat 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 untuk mengambil detail pelaksanaan aktivitas salin, misalnya ukuran data yang dibaca atau 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 SDK .NET, lihat referensi Data Factory .NET SDK.

Python

Untuk panduan lengkap membuat dan memantau alur menggunakan Python SDK, lihat Buat pabrik data dan alur menggunakan Python.

Untuk memantau jalannya pipeline, 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 SDK Python, 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 detail eksekusi aktivitas salin, 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 detail eksekusi aktivitas salin, 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 Monitor pipeline menggunakan Azure Monitor untuk mempelajari tentang menggunakan Azure Monitor untuk memantau alur Data Factory.