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