مراقبة Azure Data Factory برمجيا

ينطبق على:Azure Data Factory Azure Synapse Analytics

تلميح

جرب Data Factory في Microsoft Fabric، وهو حل تحليلي متكامل للمؤسسات. يغطي Microsoft Fabric كل شيء بدءا من حركة البيانات إلى علم البيانات والتحليلات في الوقت الحقيقي والمعلومات المهنية وإعداد التقارير. تعرف على كيفية بدء إصدار تجريبي جديد مجانا!

توضح هذه المقالة كيفية مراقبة مسار في مصنع بيانات باستخدام عُدد تطوير برامج مختلفة (SDK).

إشعار

نوصي باستخدام الوحدة النمطية Azure Az PowerShell للتفاعل مع Azure. للبدء، راجع تثبيت Azure PowerShell. لمعرفة كيفية الترحيل إلى الوحدة النمطية Az PowerShell، راجع ترحيل Azure PowerShell من AzureRM إلى Az.

نطاق البيانات

تُخزن خدمة Data Factory بيانات تشغيل المسار لمدة 45 يوماً فقط. عند الاستعلام برمجياً عن البيانات حول تشغيل مسار Data Factory - على سبيل المثال، مع أمر PowerShell Get-AzDataFactoryV2PipelineRun - لا يوجد حد أقصى لتواريخ معلمات LastUpdatedAfter وLastUpdatedBefore الاختيارية. ولكن إذا كنت تستعلم عن البيانات للعام الماضي، على سبيل المثال، لن تحصل على خطأ ولكنك ستحصل على بيانات تشغيل المسار من آخر 45 يوماً.

إذا كنت ترغب في الاحتفاظ ببيانات تشغيل المسار لأكثر من 45 يوماً، قم بإعداد التسجيل التشخيصي الخاص بك باستخدام Azure Monitor.

معلومات تشغيل المسار

بالنسبة لخصائص تشغيل المسار، راجع مرجع واجهة برمجة تطبيقات PipelineRun. تختلف حالة تشغيل المسار أثناء دورة حياته، ويتم إدراج القيم المحتملة لحالة التشغيل أدناه:

  • موضوع في قائمة انتظار
  • قيد التقدم
  • تم بنجاح
  • فاشل
  • إلغاء الأمر
  • ملغى

.NET

للحصول على إرشادات تفصيلية كاملة عن إنشاء مسار ومراقبته باستخدام عدة تطوير برامج .NET، راجع إنشاء مصنع بيانات ومسار باستخدام .NET.

  1. أضف التعليمة البرمجية التالية للتحقق باستمرار من حالة تشغيل المسار حتى تنتهي من نسخ البيانات.

    // 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. أضِف التعليمة البرمجية التالية إلى الذي يسترد تفاصيل تشغيل نشاط النسخ، مثل حجم البيانات التي يجري قراءتها/ كتابتها.

    // 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، راجع مرجع عدة تطوير برامج .NET في Data Factory.

Python

للحصول على إرشادات تفصيلية كاملة عن إنشاء مسار ومراقبته باستخدام عدة تطوير برامج Python، راجع إنشاء مصنع بيانات ومسار باستخدام Python.

لمراقبة تشغيل المسار، أضف التعليمة البرمجية التالية:

# 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، راجع مرجع عدة تطوير برامج Python في Data Factory.

واجهة برمجة تطبيقات REST

للحصول على إرشادات تفصيلية كاملة عن إنشاء مسار ومراقبته باستخدام واجهة برمجة تطبيقات REST، راجع إنشاء مصنع بيانات ومسار باستخدام واجهة برمجة تطبيقات REST.

  1. تشغيل البرنامج النصي التالي للتحقق باستمرار من حالة تشغيل التدفق حتى تنتهي من نسخ البيانات.

    $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. تشغيل البرنامج النصي التالي لاسترداد نسخ نشاط تشغيل التفاصيل، على سبيل المثال، حجم البيانات قراءة/ كتابة.

    $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، راجع مرجع واجهة برمجة تطبيقات REST في Data Factory.

PowerShell

للحصول على إرشادات تفصيلية كاملة عن إنشاء مسار ومراقبته باستخدام PowerShell، راجع إنشاء مصنع بيانات ومسار باستخدام PowerShell.

  1. تشغيل البرنامج النصي التالي للتحقق باستمرار من حالة تشغيل التدفق حتى تنتهي من نسخ البيانات.

    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. تشغيل البرنامج النصي التالي لاسترداد نسخ نشاط تشغيل التفاصيل، على سبيل المثال، حجم البيانات قراءة/ كتابة.

    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 cmdlets، راجع مرجع أمر PowerShell cmdlet في Data Factory.

راجع مقالة مراقبة المسارات باستخدام Azure Monitor للتعرف على استخدام Azure Monitor لمراقبة مسارات Data Factory.