نشاط If Condition في مصنع بيانات Azure ومسار Synapse Analytics
ينطبق على: Azure Data Factory Azure Synapse Analytics
تلميح
جرب Data Factory في Microsoft Fabric، وهو حل تحليلي متكامل للمؤسسات. يغطي Microsoft Fabric كل شيء بدءا من حركة البيانات إلى علم البيانات والتحليلات في الوقت الحقيقي والمعلومات المهنية وإعداد التقارير. تعرف على كيفية بدء إصدار تجريبي جديد مجانا!
يوفر نشاط If Condition الوظيفة نفسها التي توفرها العبارة الشرطية في لغات الكمبيوتر. ينفذ مجموعة من الأنشطة عند تقييم الشرط إلى true
ومجموعة أخرى من الأنشطة عند تقييم الشرط إلى false
.
إنشاء نشاط If Condition باستخدام واجهة المستخدم
لاستخدام نشاط If Condition في البنية الأساسية لبرنامج ربط العمليات التجارية، أكمل الخطوات التالية:
ابحث عن If في جزء أنشطة المسار، واسحب نشاط If Condition إلى لوحة البنية الأساسية لبرنامج ربط العمليات التجارية.
حدد نشاط If Condition الجديد على اللوحة إذا لم يكن محددًا بالفعل، وعلامة التبويب Activities الخاصة به، لتحرير تفاصيله.
أدخل تعبيرًا يرجع قيمة منطقية صحيحة أو خطأ. يمكن أن يكون هذا أي مجموعة من التعبيرات أو الوظائفأو متغيرات النظامأو مخرجات الأنشطة الأخرى.
حدد أزرار تحرير الأنشطة في علامة التبويب الأنشطة لـ If Condition، أو مباشرة من If Condition على لوحة البنية الأساسية لبرنامج ربط العمليات التجارية، لإضافة الأنشطة التي سيتم تنفيذها عند تقييم التعبير إلى
true
أوfalse
.
بناء الجملة
{
"name": "<Name of the activity>",
"type": "IfCondition",
"typeProperties": {
"expression": {
"value": "<expression that evaluates to true or false>",
"type": "Expression"
},
"ifTrueActivities": [
{
"<Activity 1 definition>"
},
{
"<Activity 2 definition>"
},
{
"<Activity N definition>"
}
],
"ifFalseActivities": [
{
"<Activity 1 definition>"
},
{
"<Activity 2 definition>"
},
{
"<Activity N definition>"
}
]
}
}
خصائص النوع
الخاصية | الوصف | القيم المسموح بها | المطلوب |
---|---|---|---|
الاسم | اسم نشاط if-condition . | السلسلة | نعم |
النوع | يجب أن تُعين إلى IfCondition | السلسلة | نعم |
تعبير | التعبير الذي يجب تقييمه إلى صواب أو خطأ | التعبير مع نوع النتيجة المنطقية | نعم |
ifTrueActivities | مجموعة الأنشطة التي تنفذ عند تقييم التعبير إلى true . |
صفيف | نعم |
ifFalseActivities | مجموعة الأنشطة التي تنفذ عند تقييم التعبير إلى false . |
صفيف | نعم |
مثال
ينسخ المسار في هذا المثال البيانات من مجلد المدخلات إلى مجلد المخرجات. يتحدد مجلد المخرجات بواسطة قيمة معلمة المسار: routeSelection. إذا كانت قيمة routeSelection صحيحة، تُنسخ البيانات إلى outputPath1. وإذا كانت قيمة routeSelection غير صحيحة، تُنسخ البيانات إلى outputPath2.
إشعار
يقدم هذا القسم تعريفات JSON وعينة أوامر PowerShell لتشغيل المسار. للحصول على برامج معاينة مع إرشادات تدريجية لإنشاء مسار باستخدام تعريفات Azure PowerShell وJSON، راجع البرنامج التعليمي: إنشاء مصنع بيانات باستخدام Azure PowerShell.
مسار مع نشاط IF-Condition (Adfv2QuickStartPipeline.json)
{
"name": "Adfv2QuickStartPipeline",
"properties": {
"activities": [
{
"name": "MyIfCondition",
"type": "IfCondition",
"typeProperties": {
"expression": {
"value": "@bool(pipeline().parameters.routeSelection)",
"type": "Expression"
},
"ifTrueActivities": [
{
"name": "CopyFromBlobToBlob1",
"type": "Copy",
"inputs": [
{
"referenceName": "BlobDataset",
"parameters": {
"path": "@pipeline().parameters.inputPath"
},
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "BlobDataset",
"parameters": {
"path": "@pipeline().parameters.outputPath1"
},
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "BlobSource"
},
"sink": {
"type": "BlobSink"
}
}
}
],
"ifFalseActivities": [
{
"name": "CopyFromBlobToBlob2",
"type": "Copy",
"inputs": [
{
"referenceName": "BlobDataset",
"parameters": {
"path": "@pipeline().parameters.inputPath"
},
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "BlobDataset",
"parameters": {
"path": "@pipeline().parameters.outputPath2"
},
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "BlobSource"
},
"sink": {
"type": "BlobSink"
}
}
}
]
}
}
],
"parameters": {
"inputPath": {
"type": "String"
},
"outputPath1": {
"type": "String"
},
"outputPath2": {
"type": "String"
},
"routeSelection": {
"type": "String"
}
}
}
}
مثال آخر للتعبير هو:
"expression": {
"value": "@equals(pipeline().parameters.routeSelection,1)",
"type": "Expression"
}
خدمة تخزين Azure المرتبطة (AzureStorageLinkedService.json)
{
"name": "AzureStorageLinkedService",
"properties": {
"type": "AzureStorage",
"typeProperties": {
"connectionString": "DefaultEndpointsProtocol=https;AccountName=<Azure Storage account name>;AccountKey=<Azure Storage account key>"
}
}
}
مجموعة بيانات Azure Blob ذات معلمات (BlobDataset.json)
يُعين المسارfolderPath إلى قيمة outputPath1 أو outputPath2 معلمة المسار.
{
"name": "BlobDataset",
"properties": {
"type": "AzureBlob",
"typeProperties": {
"folderPath": {
"value": "@{dataset().path}",
"type": "Expression"
}
},
"linkedServiceName": {
"referenceName": "AzureStorageLinkedService",
"type": "LinkedServiceReference"
},
"parameters": {
"path": {
"type": "String"
}
}
}
}
معلمة المسار JSON (PipelineParameters.json)
{
"inputPath": "adftutorial/input",
"outputPath1": "adftutorial/outputIf",
"outputPath2": "adftutorial/outputElse",
"routeSelection": "false"
}
أوامر PowerShell
إشعار
نوصي باستخدام الوحدة النمطية Azure Az PowerShell للتفاعل مع Azure. للبدء، راجع تثبيت Azure PowerShell. لمعرفة كيفية الترحيل إلى الوحدة النمطية Az PowerShell، راجع ترحيل Azure PowerShell من AzureRM إلى Az.
تفترض هذه الأوامر أنك قد حفظت ملفات JSON في المجلد: C:\ADF.
Connect-AzAccount
Select-AzSubscription "<Your subscription name>"
$resourceGroupName = "<Resource Group Name>"
$dataFactoryName = "<Data Factory Name. Must be globally unique>";
Remove-AzDataFactoryV2 $dataFactoryName -ResourceGroupName $resourceGroupName -force
Set-AzDataFactoryV2 -ResourceGroupName $resourceGroupName -Location "East US" -Name $dataFactoryName
Set-AzDataFactoryV2LinkedService -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "AzureStorageLinkedService" -DefinitionFile "C:\ADF\AzureStorageLinkedService.json"
Set-AzDataFactoryV2Dataset -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "BlobDataset" -DefinitionFile "C:\ADF\BlobDataset.json"
Set-AzDataFactoryV2Pipeline -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "Adfv2QuickStartPipeline" -DefinitionFile "C:\ADF\Adfv2QuickStartPipeline.json"
$runId = Invoke-AzDataFactoryV2Pipeline -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -PipelineName "Adfv2QuickStartPipeline" -ParameterFile C:\ADF\PipelineParameters.json
while ($True) {
$run = Get-AzDataFactoryV2PipelineRun -ResourceGroupName $resourceGroupName -DataFactoryName $DataFactoryName -PipelineRunId $runId
if ($run) {
if ($run.Status -ne 'InProgress') {
Write-Host "Pipeline run finished. The status is: " $run.Status -foregroundcolor "Yellow"
$run
break
}
Write-Host "Pipeline is running...status: InProgress" -foregroundcolor "Yellow"
}
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"
المحتوى ذو الصلة
راجع أنشطة تدفق التحكم الأخرى المدعومة: