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 all-in-one per le aziende. Microsoft Fabric copre tutto, dallo spostamento dati al data science, all'analisi in tempo reale, alla business intelligence e alla creazione di report. Vedere le informazioni su come iniziare una nuova prova gratuita!
Nel paradigma pipeline chiamante-pipeline figlio, è 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à Execute Pipeline. Si vogliono inoltre recuperare le informazioni dalla pipeline figlio, per poi usarle nella pipeline chiamante.
Introdurre il valore restituito della pipeline, un dizionario di coppie chiave-valore, che consente le comunicazioni tra le pipeline figlio e la pipeline padre.
Prerequisito: chiamata a una pipeline figlio
Come prerequisito, la progettazione richiede un'attività Execute Pipeline che chiami una pipeline figlio, con l’opzione In attesa di completamento abilitata per l'attività.
Configurare il valore restituito della pipeline nella pipeline figlio
È stata espansa l'attività Imposta variabile per includere le variabili di sistema del Valore restituito della pipeline. Non è tuttavia necessario definirle a livello di pipeline, a differenza di qualsiasi altra variabile usata nella pipeline.
- Cercare Imposta variabile nel riquadro Attività pipeline e trascinare un'attività Imposta variabile nell'area di disegno della pipeline.
- Selezionare l'attività Imposta variabile nell'area di lavoro se non è già selezionata e quindi la relativa scheda Variabili per modificarne i dettagli.
- Scegliere Valore restituito della pipeline per il tipo di variabile.
- Selezionare Nuovo per aggiungere una nuova coppia chiave-valore.
- Il numero di coppie chiave-valore che è possibile aggiungere è limitato solo dalla dimensione del codice JSON restituito (4 MB).
Sono disponibili alcune opzioni per i tipi valore, tra cui
Nome tipo | Descrizione |
---|---|
Stringa | Un valore di stringa costante. Ad esempio, ''ADF è impressionante''. |
Espressione | Consente di fare riferimento all'output delle attività precedenti. In questo caso, è possibile usare l’interpolazione di stringhe per includere i valori delle espressioni in linea, ad esempio "The value is @{guid()}" . |
Array | Tale metodo prevede una matrice di valori stringa. Premere il tasto "INVIO" per separare i valori nella matrice |
Booleano | True o False |
Null | Stato segnaposto segnale; il valore è la costante null |
Int | Un valore numerico di tipo intero. Ad esempio: 42. |
Float | Un valore numerico di tipo float. Ad esempio: 2.71828. |
Object | Avviso solo per i 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. È 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.
- Un payload del valore dell'espressione per un'attività di script a scopo di registrazione.
Sono presenti due callout evidenti nel riferimento ai valori restituiti della pipeline.
- Con il tipo Oggetto, è possibile espandere ulteriormente l'oggetto json annidato, ad esempio @activity('Execute Pipeline1').output.pipelineReturnValue.keyName.nextLevelKey
- Con il tipo di Matrice, è possibile specificare l'indice nell'elenco, con @activity('Execute Pipeline1').output.pipelineReturnValue.keyName[0]. Il numero è indicizzato a zero, 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.
Per evitare il problema delle chiavi mancanti descritto in precedenza quando si chiama la pipeline, è consigliabile disporre dello stesso elenco di chiavi per tutti i rami della pipeline figlio. Prendere in considerazione l'uso di tipi Null per le chiavi che non dispongono di valori in un ramo specifico.
Il linguaggio delle espressioni di Azure Data Factory non supporta direttamente oggetti JSON inline. È invece necessario concatenare correttamente stringhe ed espressioni.
Ad esempio, per l'espressione JSON seguente:
{ "datetime": "@{utcnow()}", "date": "@{substring(utcnow(),0,10)}", "year": "@{substring(utcnow(),0,4)}", "month": "@{substring(utcnow(),5,2)}", "day": "@{substring(utcnow(),8,2)}" }
Un'espressione equivalente di Azure Data Factory sarà:
@{ concat( '{', '"datetime": "', utcnow(), '", ', '"date": "', substring(utcnow(),0,10), '", ', '"year": "', substring(utcnow(),0,4), '", ', '"month": "', substring(utcnow(),5,2), '", ', '"day": "', substring(utcnow(),8,2), '"', '}' ) }
Contenuto correlato
Informazioni su un'altra attività del flusso di controllo correlata: