Wykonywanie zadania aktywności potoku w Azure Data Factory i Synapse Analytics

DOTYCZY: Azure Data Factory Azure Synapse Analytics

Napiwek

Data Factory w usłudze Microsoft Fabric jest następną generacją Azure Data Factory z prostszą architekturą, wbudowaną sztuczną inteligencją i nowymi funkcjami. Jeśli dopiero zaczynasz integrować dane, zacznij od Fabric Data Factory. Istniejące obciążenia ADF można zaktualizować do Fabric, aby uzyskać dostęp do nowych możliwości w zakresie nauki o danych, analiz w czasie rzeczywistym oraz raportowania.

Działanie Execute Pipeline pozwala potokowi w usłudze Data Factory lub Synapse na wywoływanie innych potoków.

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 (Wykonywanie potoku) na kanwie, jeśli jeszcze nie zostało wybrane, i przejdź do jego karty Ustawienia, aby edytować jego szczegóły.

    Przedstawia interfejs użytkownika dla aktywności wykonawczej w potoku.

  3. Wybierz istniejący przepływ lub utwórz nowy przy użyciu przycisku Nowy. Wybierz inne opcje i skonfiguruj dowolne 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łasność opis Dozwolone wartości Wymagane
imię Nazwa działania wykonywania potoku. String Tak
typ Musi być ustawiona na: ExecutePipeline. String Tak
potok 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 referencyjnego. Właściwość type musi być ustawiona na PipelineReference. PipelineReference Tak
parametry Parametry do przekazania do wywoływanego potoku Obiekt JSON mapujący nazwy parametrów na wartości argumentów Nie.
czekajNaZakończenie Określa, czy wykonywanie czynności będzie oczekiwać na zakończenie wykonywania współzależnego rurociągu. Ustawieniem domyślnym jest true. logiczny Nie.

Przykład

Ten scenariusz ma dwa przepływy danych:

  • Główny potok — ten potok ma jedną akcję Execute Pipeline, która wywołuje uruchamiany potok. Potok główny przyjmuje dwa parametry: masterSourceBlobContainer, masterSinkBlobContainer.
  • Wywołany potok — ten potok ma jedno zadanie kopiowania, które kopiuje dane ze źródła obiektów blob Azure do docelowego obiektu blob Azure. Wywoływany potok przyjmuje dwa parametry: sourceBlobContainer, sinkBlobContainer.

Definicja głównego potoku danych

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

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 potoku wywoływanego, 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 podczas sprawdzania danych wejściowych przekazanych do potoku podrzędnego. Aby uzyskać więcej informacji, zapoznaj się z tą sekcją .

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