Jalankan aktivitas Alur di Azure Data Factory dan Synapse Analytics

BERLAKU UNTUK:Azure Data Factory Azure Synapse Analytics

Tip

Cobalah Data Factory di Microsoft Fabric, solusi analitik all-in-one untuk perusahaan. Microsoft Fabric mencakup semuanya mulai dari pergerakan data hingga ilmu data, analitik real time, kecerdasan bisnis, dan pelaporan. Pelajari cara memulai uji coba baru secara gratis!

Aktivitas Jalankan Alur memungkinkan alur Data Factory atau Synapse memanggil alur lain.

Membuat aktivitas Alur Eksekusi dengan UI

Untuk menggunakan aktivitas Alur Eksekusi dalam alur, selesaikan langkah-langkah berikut:

  1. Cari alur di panel Aktivitas alur, dan seret aktivitas Alur Eksekusi ke kanvas alur.

  2. Pilih aktivitas Alur Eksekusi baru di kanvas jika belum dipilih, dan tab Pengaturan-nya, untuk mengedit detailnya.

    Shows the UI for an execute pipeline activity.

  3. Pilih alur yang ada atau buat yang baru menggunakan tombol Baru. Pilih opsi lain dan konfigurasikan parameter apa pun untuk alur yang diperlukan untuk menyelesaikan konfigurasi Anda.

Sintaks

{
    "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"
                }
            }
        ]
    }
}

Properti jenis

Properti Deskripsi Nilai yang diizinkan Wajib
nama Nama aktivitas jalankan alur. String Ya
jenis Harus diatur ke: ExecutePipeline. String Ya
Alur Referensi alur ke alur dependen yang dipanggil alur ini. Objek referensi alur memiliki dua properti: referenceName dan jenis. Properti referenceName menentukan nama alur referensi. Properti jenis harus disetel ke PipelineReference. PipelineReference Ya
parameter Parameter yang akan diteruskan ke alur yang dipanggil Objek JSON yang memetakan nama parameter ke nilai argumen Tidak
waitOnCompletion Menentukan apakah eksekusi aktivitas menunggu eksekusi alur dependen selesai. Default-nya adalah true. Boolean Tidak

Sampel

Skenario ini memiliki dua alur:

  • Master alur - Alur ini memiliki satu aktivitas Jalankan Alur yang memanggil alur yang dipanggil. Alur master mengambil dua parameter: masterSourceBlobContainer, masterSinkBlobContainer.
  • Alur yang dipanggil - Alur ini memiliki satu aktivitas Salin yang menyalin data dari sumber Azure Blob ke sink Azure Blob. Alur yang dipanggil mengambil dua parameter: sourceBlobContainer, sinkBlobContainer.

Definisi Alur Master

{
  "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"
      }
    }
  }
}

Definisi Alur yang dipanggil

{
  "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"
      }
    }
  }
}

Layanan tertaut

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

Himpunan data sumber

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

Himpunan data sink

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

Menjalankan alur

Untuk menjalankan alur master dalam contoh ini, nilai berikut diteruskan untuk parameter masterSourceBlobContainer dan masterSinkBlobContainer:

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

Alur master meneruskan nilai-nilai ini ke alur yang dipanggil seperti yang diperlihatkan dalam contoh berikut:

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

      ....
}

Peringatan

Aktivitas Jalankan Alur meneruskan parameter array sebagai string ke alur anak. Hal ini disebabkan oleh fakta bahwa payload diteruskan dari alur induk ke >anak sebagai string. Kita dapat melihatnya ketika kita memeriksa input yang diteruskan ke alur anak. Plese periksa bagian ini untuk detail selengkapnya.

Lihat aktivitas alur kontrol yang didukung lainnya: