نشاط تنفيذ المسار في Azure Data Factory وSynapse Analytics

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

تلميح

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

يسمح نشاط تنفيذ المسار لأي مسار Data Factory أو Synapse باستدعاء مسار آخر.

إنشاء نشاط Execute Pipeline باستخدام واجهة المستخدم

لاستخدام نشاط Execute Pipeline في بنية أساسية، أكمل الخطوات التالية:

  1. ابحث عن البنية الأساسية جزء أنشطة البنية الأساسية، واسحب نشاط Execute Pipeline إلى لوحة البنية الأساسية.

  2. حدّد نشاط Execute Pipeline الجديد على اللوحة إذا لم يكن محدداً بالفعل، وحدد علامة التبويب الإعدادات لتحرير تفاصيله.

    Shows the UI for an execute pipeline activity.

  3. حدّد بنية أساسية حالية أو أنشئ واحدة جديدة باستخدام الزر جديد. حدّد خيارات أخرى وكوّن أي معلمات للبنية الأساسية كما هو مطلوب لإكمال التكوين الخاص بك.

بناء الجملة

{
    "name": "MyPipeline",
    "properties": {
        "activities": [
            {
                "name": "ExecutePipelineActivity",
                "type": "ExecutePipeline",
                "typeProperties": {
                    "parameters": {                        
                        "mySourceDatasetFolderPath": {
                            "value": "@pipeline().parameters.mySourceDatasetFolderPath",
                            "type": "Expression"
                        }
                    },
                    "pipeline": {
                        "referenceName": "<InvokedPipelineName>",
                        "type": "PipelineReference"
                    },
                    "waitOnCompletion": true
                 }
            }
        ],
        "parameters": [
            {
                "mySourceDatasetFolderPath": {
                    "type": "String"
                }
            }
        ]
    }
}

خصائص النوع

الخاصية ‏‏الوصف القيم المسموح بها المطلوب
الاسم اسم نشاط تنفيذ المسار. السلسلة‬ ‏‏نعم‬
النوع يجب تعيينه إلى: ExecutePipeline. السلسلة‬ ‏‏نعم‬
pipeline مرجع المسار إلى المسار التابع الذي يستدعيه هذا المسار. لعنصر مرجع المسار خاصيتين: referenceName والنوع. تحدد الخاصية referenceName اسم مسار المرجع. يجب تعيين خاصية النوع إلى PipelineReference. PipelineReference ‏‏نعم‬
المعلمات المعلمات التي سيتم تمريرها إلى المسار الذي تم استدعاؤه كائن JSON الذي يعين أسماء المعلمات لقيم وسيطة لا
waitOnCompletion تحديد ما إذا كان تنفيذ النشاط ينتظر انتهاء تنفيذ المسار التابع. الوضع الافتراضي صحيح. Boolean لا

عينة

يحتوي هذا السيناريو على مسارين:

  • مسار رئيسي - يحتوي هذا المسار على نشاط تنفيذ مسار واحد يستدعي المسار الذي تم استدعاؤه. يأخذ المسار الرئيسي معلمتين: masterSourceBlobContainer، masterSinkBlobContainer.
  • مسار تم استدعاؤه - يحتوي هذا المسار على نشاط نسخ واحد يقوم بنسخ البيانات من مصدر Azure Blob إلى متلقي Azure Blob. يأخذ المسار الذي تم استدعاؤه معلمتين: sourceBlobContainer، sinkBlobContainer.

تعريف المسار الرئيسي

{
  "name": "masterPipeline",
  "properties": {
    "activities": [
      {
        "type": "ExecutePipeline",
        "typeProperties": {
          "pipeline": {
            "referenceName": "invokedPipeline",
            "type": "PipelineReference"
          },
          "parameters": {
            "sourceBlobContainer": {
              "value": "@pipeline().parameters.masterSourceBlobContainer",
              "type": "Expression"
            },
            "sinkBlobContainer": {
              "value": "@pipeline().parameters.masterSinkBlobContainer",
              "type": "Expression"
            }
          },
          "waitOnCompletion": true
        },
        "name": "MyExecutePipelineActivity"
      }
    ],
    "parameters": {
      "masterSourceBlobContainer": {
        "type": "String"
      },
      "masterSinkBlobContainer": {
        "type": "String"
      }
    }
  }
}

تعريف المسار الذي تم استدعاؤه

{
  "name": "invokedPipeline",
  "properties": {
    "activities": [
      {
        "type": "Copy",
        "typeProperties": {
          "source": {
            "type": "BlobSource"
          },
          "sink": {
            "type": "BlobSink"
          }
        },
        "name": "CopyBlobtoBlob",
        "inputs": [
          {
            "referenceName": "SourceBlobDataset",
            "type": "DatasetReference"
          }
        ],
        "outputs": [
          {
            "referenceName": "sinkBlobDataset",
            "type": "DatasetReference"
          }
        ]
      }
    ],
    "parameters": {
      "sourceBlobContainer": {
        "type": "String"
      },
      "sinkBlobContainer": {
        "type": "String"
      }
    }
  }
}

الخدمة المرتبطة

{
    "name": "BlobStorageLinkedService",
    "properties": {
    "type": "AzureStorage",
    "typeProperties": {
      "connectionString": "DefaultEndpointsProtocol=https;AccountName=*****;AccountKey=*****"
    }
  }
}

مجموعة بيانات المصدر

{
    "name": "SourceBlobDataset",
    "properties": {
    "type": "AzureBlob",
    "typeProperties": {
      "folderPath": {
        "value": "@pipeline().parameters.sourceBlobContainer",
        "type": "Expression"
      },
      "fileName": "salesforce.txt"
    },
    "linkedServiceName": {
      "referenceName": "BlobStorageLinkedService",
      "type": "LinkedServiceReference"
    }
  }
}

مجموعة بيانات المتلقي

{
    "name": "sinkBlobDataset",
    "properties": {
    "type": "AzureBlob",
    "typeProperties": {
      "folderPath": {
        "value": "@pipeline().parameters.sinkBlobContainer",
        "type": "Expression"
      }
    },
    "linkedServiceName": {
      "referenceName": "BlobStorageLinkedService",
      "type": "LinkedServiceReference"
    }
  }
}

تشغيل المسار

لتشغيل المسار الرئيسي في هذا المثال، يتم تمرير القيم التالية للمعلمات masterSourceBlobContainer وmasterSinkBlobContainer:

{
  "masterSourceBlobContainer": "executetest",
  "masterSinkBlobContainer": "executesink"
}

يقوم المسار الرئيسي بإعادة توجيه هذه القيم إلى المسار الذي تم استدعاؤه كما هو موضح في المثال التالي:

{
    "type": "ExecutePipeline",
    "typeProperties": {
      "pipeline": {
        "referenceName": "invokedPipeline",
        "type": "PipelineReference"
      },
      "parameters": {
        "sourceBlobContainer": {
          "value": "@pipeline().parameters.masterSourceBlobContainer",
          "type": "Expression"
        },
        "sinkBlobContainer": {
          "value": "@pipeline().parameters.masterSinkBlobContainer",
          "type": "Expression"
        }
      },

      ....
}

تحذير

يقوم نشاط Execute Pipeline بتمرير معلمة الصفيف كسلسلة إلى البنية الأساسية لبرنامج ربط العمليات التجارية التابعة. ويرجع ذلك إلى حقيقة أن الحمولة يتم تمريرها من البنية الأساسية لبرنامج ربط العمليات التجارية الأصل إلى >التابع كسلسلة. يمكننا رؤيته عندما نتحقق من الإدخال الذي تم تمريره إلى البنية الأساسية لبرنامج ربط العمليات التجارية التابعة. راجع هذا القسم للحصول على مزيد من التفاصيل.

راجع أنشطة تدفق التحكم الأخرى المدعومة: