Condividi tramite


** Eseguire l'attività di pipeline in Azure Data Factory e in Synapse Analytics

APPLICABILE A: Azure Data Factory Azure Synapse Analytics

Suggerimento

Data Factory in Microsoft Fabric è la nuova generazione di Azure Data Factory, con un'architettura più semplice, un'intelligenza artificiale predefinita e nuove funzionalità. Se non si ha familiarità con l'integrazione dei dati, iniziare con Fabric Data Factory. I carichi di lavoro di Azure Data Factory esistenti possono eseguire l'aggiornamento a Fabric per accedere a nuove funzionalità tra data science, analisi in tempo reale e creazione di report.

L'attività Execute Pipeline consente a una pipeline di Data Factory o Synapse di richiamare un'altra pipeline.

Creare un'attività Execute Pipeline con l'interfaccia utente

Per usare un'attività Execute Pipeline in una pipeline, completare la procedura seguente:

  1. Cercare pipeline nel riquadro Attività della pipeline, quindi trascinare un'attività Execute Pipeline nel canvas della pipeline.

  2. Selezionare la nuova attività Esegui pipeline nell'area di disegno se non è già selezionata e la relativa scheda Impostazioni per modificarne i dettagli.

    Mostra l'interfaccia utente per un'attività di esecuzione della pipeline.

  3. Selezionare una pipeline esistente o crearne una nuova usando il pulsante Nuovo. Selezionare altre opzioni e configurare i parametri per la pipeline in base alle esigenze per completare la configurazione.

Sintassi

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

Proprietà del tipo

Proprietà Descrizione Valori consentiti Obbligatoria
nome Nome dell'attività di esecuzione della pipeline. String
tipo Deve essere impostata su: ExecutePipeline. String
pipeline Pipeline di riferimento per la pipeline dipendente chiamata da questa pipeline. Un oggetto di riferimento della pipeline ha due proprietà: referenceName e type. La proprietà referenceName specifica il nome della pipeline di riferimento. La proprietà type deve essere impostata su PipelineReference. PipelineReference
parametri Parametri da passare alla pipeline chiamata Oggetto JSON che esegue il mapping dei nomi di parametro ai valori degli argomenti No
waitOnCompletion Definisce se l'esecuzione dell'attività attende che l'esecuzione della pipeline dipendente termini. Il valore predefinito è true. Boolean No

Esempio

Questo scenario comprende due pipeline:

  • Pipeline master: questa pipeline ha una sola attività Execute Pipeline che chiama la pipeline richiamata. La pipeline master accetta due parametri: masterSourceBlobContainer e masterSinkBlobContainer.
  • Pipeline richiamata: questa pipeline ha un'attività di copia che copia i dati da un'origine BLOB di Azure al sink di BLOB di Azure. La pipeline richiamata accetta due parametri: sourceBlobContainer, sinkBlobContainer.

Definizione principale della pipeline

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

Definizione della pipeline richiamata

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

Servizio collegato

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

Set di dati di origine

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

Set di dati sink

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

Esecuzione della pipeline

Per eseguire la pipeline master di questo esempio, vengono passati i valori seguenti per i parametri masterSourceBlobContainer e masterSinkBlobContainer:

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

La pipeline master inoltra questi valori alla pipeline richiamata, come illustrato nell'esempio seguente:

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

      ....
}

Avviso

L'attività Execute pipeline passa il parametro array come stringa alla pipeline figlia. Ciò è dovuto al fatto che il payload viene trasmesso dalla pipeline padre al >figlio come stringa. È possibile vederlo quando si controlla l'input passato alla pipeline figlio. Per altri dettagli, vedere questa sezione .

Vedere altre attività del flusso di controllo supportate: