Impostare il valore restituito della pipeline in Azure Data Factory e Azure Synapse Analytics

SI APPLICA A: Azure Data Factory Azure Synapse Analytics

Suggerimento

Provare Data Factory in Microsoft Fabric, una soluzione di analisi completa per le aziende. Microsoft Fabric copre tutti gli elementi, dallo spostamento dei dati all'analisi scientifica dei dati, all'analisi in tempo reale, alla business intelligence e alla creazione di report. Scopri come avviare gratuitamente una nuova versione di valutazione .

Nel paradigma della pipeline figlio della pipeline chiamante è possibile usare l'attività Imposta variabile per restituire valori dalla pipeline figlio alla pipeline chiamante. Nello scenario seguente è disponibile una pipeline figlio tramite l'attività Esegui pipeline. E si vogliono recuperare informazioni dalla pipeline figlio, da usare nella pipeline chiamante.

Screenshot with ExecutePipeline Activity.

Introdurre il valore restituito della pipeline, un dizionario di coppie chiave-valore, che consente le comunicazioni tra pipeline figlio e pipeline padre.

Prerequisito- Chiamata di una pipeline figlio

Come prerequisito, la progettazione richiede un'attività Esegui pipeline che chiama una pipeline figlio, con Attesa al completamento abilitato per l'attività.

Screenshot setting ExecutePipeline Activity to wait for completion.

Configurare il valore restituito della pipeline nella pipeline figlio

L'attività Imposta variabile è stata espansa per includere le variabili di sistema Valore restituito della pipeline. Non è necessario definirli a livello di pipeline,anziché a qualsiasi altra variabile usata nella pipeline.

  1. Cercare Imposta variabile nel riquadro Attività pipeline e trascinare un'attività Imposta variabile nell'area di disegno della pipeline.
  2. Selezionare l'attività Imposta variabile nell'area di disegno se non è già selezionata e quindi la scheda Variabili per modificarne i dettagli.
  3. Scegliere Valore restituito della pipeline per il tipo di variabile.
  4. Selezionare Nuovo per aggiungere una nuova coppia di valori chiave.
  5. Il numero di coppie chiave-valore che è possibile aggiungere è limitato solo dal limite di dimensioni del json restituito (4 MB).

Screenshot shows the ui for pipeline return value.

Sono disponibili alcune opzioni per i tipi valore, tra cui

Nome tipo Descrizione
Stringa Valore stringa costante. ad esempio: 'ADF è impressionante'
Expression Consente di fare riferimento all'output delle attività precedenti. È possibile usare l'interpolazione di stringhe qui per includere valori di espressione in linea, ad "The value is @{guid()}"esempio .
Matrice Si prevede una matrice di valori stringa. Premere "INVIO" per separare i valori nella matrice
Booleano True o False
Null Stato segnaposto segnale; il valore è costante null
Int Valore numerico di tipo integer. Ad esempio 42
Float Valore numerico di tipo float. Ad esempio: 2.71828
Object Avviso solo casi d'uso complessi. Consente di incorporare un elenco di coppie chiave-valore per il valore

Il valore del tipo di oggetto è definito nel modo seguente:

[{"key": "myKey1", "value": {"type": "String", "content": "hello world"}}, 
 {"key": "myKey2", "value": {"type": "String", "content": "hi"}}
]

Recupero del valore nella pipeline di chiamata

Il valore restituito della pipeline figlio diventa l'output dell'attività Execute Pipeline Activity. È possibile recuperare le informazioni con @activity('Execute Pipeline1').output.pipelineReturnValue.keyName. Il caso d'uso è illimitato. Ad esempio, è possibile usare

  • Valore int della pipeline figlio per definire il periodo di attesa per un'attività di attesa
  • Valore stringa per definire l'URL per l'attività Web
  • Payload del valore dell'espressione per un'attività script a scopo di registrazione.

Screenshot shows the calling pipeline.

Esistono due callout evidenti nel fare riferimento ai valori restituiti della pipeline.

  1. Con Il tipo Object è possibile espandere ulteriormente l'oggetto JSON annidato, ad esempio @activity('Execute Pipeline1').output.pipelineReturnValue.keyName.nextLevelKey
  2. Con Il tipo di matrice è possibile specificare l'indice nell'elenco, con @activity('Execute Pipeline1').output.pipelineReturnValue.keyName[0]. Il numero è zero indicizzato, ovvero inizia con 0.

Nota

Assicurarsi che il valore keyName a cui si fa riferimento esista nella pipeline figlio. Il generatore di espressioni di Azure Data Factory non può confermare la verifica referenziale. La pipeline avrà esito negativo se la chiave a cui si fa riferimento non è presente nel payload

Considerazioni speciali

Sebbene sia possibile includere più attività Imposta valore restituito pipeline in una pipeline, è importante assicurarsi che solo una di esse venga eseguita nella pipeline.

Screenshot with Pipeline Return Value and Branching.

Per evitare la situazione di chiave mancante nella pipeline chiamante, come descritto in precedenza, è consigliabile avere lo stesso elenco di chiavi per tutti i rami nella pipeline figlio. Prendere in considerazione l'uso di tipi Null per le chiavi che non hanno valori, in un ramo specifico.

Informazioni su un'altra attività del flusso di controllo correlata: