Wykonywanie działania potoku w usługach Azure Data Factory i Synapse Analytics

DOTYCZY: Azure Data Factory Azure Synapse Analytics

Napiwek

Wypróbuj usługę Data Factory w usłudze Microsoft Fabric — rozwiązanie analityczne typu all-in-one dla przedsiębiorstw. Usługa Microsoft Fabric obejmuje wszystko, od przenoszenia danych do nauki o danych, analizy w czasie rzeczywistym, analizy biznesowej i raportowania. Dowiedz się, jak bezpłatnie rozpocząć nową wersję próbną !

Działanie Execute Pipeline (Wykonywanie potoku) umożliwia potokowi usługi Data Factory lub Synapse wywoływanie innego potoku.

Tworzenie działania Execute Pipeline za pomocą interfejsu użytkownika

Aby użyć działania Execute Pipeline w potoku, wykonaj następujące kroki:

  1. Wyszukaj potok w okienku Działania potoku i przeciągnij działanie Execute Pipeline do kanwy potoku.

  2. Wybierz nowe działanie Execute Pipeline (Wykonaj potok) na kanwie, jeśli nie zostało jeszcze wybrane, a jej karta Ustawienia, aby edytować jego szczegóły.

    Shows the UI for an execute pipeline activity.

  3. Wybierz istniejący potok lub utwórz nowy przy użyciu przycisku Nowy. Wybierz inne opcje i skonfiguruj wszystkie parametry potoku zgodnie z wymaganiami, aby ukończyć konfigurację.

Składnia

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

Właściwości typu

Właściwości opis Dozwolone wartości Wymagania
name Nazwa działania wykonywania potoku. String Tak
type Musi być ustawiona na: ExecutePipeline. String Tak
Rurociągu Odwołanie do potoku zależnego wywoływanego przez ten potok. Obiekt referencyjny potoku ma dwie właściwości: referenceName i type. Właściwość referenceName określa nazwę potoku odwołania. Właściwość type musi być ustawiona na PipelineReference. PipelineReference Tak
parameters Parametry do przekazania do wywoływanego potoku Obiekt JSON mapujący nazwy parametrów na wartości argumentów Nie.
waitOnCompletion Określa, czy wykonywanie działania oczekuje na zakończenie wykonywania potoku zależnego. Ustawieniem domyślnym jest true. Wartość logiczna Nie.

Przykład

Ten scenariusz ma dwa potoki:

  • Potok główny — ten potok ma jedno działanie Execute Pipeline, które wywołuje wywoływany potok. Potok główny przyjmuje dwa parametry: masterSourceBlobContainer, masterSinkBlobContainer.
  • Wywoływany potok — ten potok ma jedną działanie Kopiuj, która kopiuje dane ze źródła obiektu blob platformy Azure do ujścia obiektu blob platformy Azure. Wywoływany potok przyjmuje dwa parametry: sourceBlobContainer, sinkBlobContainer.

Definicja potoku głównego

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

Definicja wywoływanego potoku

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

Połączona usługa

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

Źródłowy zestaw danych

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

Zestaw danych ujścia

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

Uruchamianie potoku

Aby uruchomić potok główny w tym przykładzie, następujące wartości są przekazywane dla parametrów masterSourceBlobContainer i masterSinkBlobContainer:

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

Potok główny przekazuje te wartości do wywoływanego potoku, jak pokazano w poniższym przykładzie:

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

      ....
}

Ostrzeżenie

Działanie Execute Pipeline przekazuje parametr tablicy jako ciąg do potoku podrzędnego. Wynika to z faktu, że ładunek jest przekazywany z potoku nadrzędnego do elementu podrzędnego >jako ciąg. Widzimy to po sprawdzeniu danych wejściowych przekazanych do potoku podrzędnego. Zobacz tę sekcję , aby uzyskać więcej informacji.

Zobacz inne obsługiwane działania przepływu sterowania: