Data Fusion: passa l'argomento di runtime da una pipeline a un'altra
Sto avendo un argomento di runtime impostato nel namespace che è business_date: $ {logicalStartTime (yyyy-MM-dd)}. Sto usando questo argomento nella mia pipeline e voglio usare lo stesso in un'altra pipeline. Ci sono molte pipeline back to back e desidero che il valore sia lo stesso in tutte le pipeline una volta calcolato nella prima pipeline. supponiamo che il valore venga calcolato come '2020-08-20 20:14:11' e una volta che la pipeline è riuscita sto passando questo argomento alla pipeline 2, ma poiché questi argomenti sono definiti a livello di spazio dei nomi, viene sovrascritto all'avvio di pipeline2.
Come posso impedire che questo valore venga ricalcolato?
Risposte
Come è stato commentato in precedenza, è possibile impostare una pipeline per attivare un'altra pipeline; è possibile impostare una variabile di runtime nella prima pipeline e questa variabile verrà impostata nelle pipeline attivate. Puoi creare un trigger in entrata seguendo i passaggi successivi:
- Dopo aver creato le pipeline, seleziona l'ultima pipeline che desideri eseguire. Nel mio caso ho la pipeline DataFusionQuickstart2 .

- Nell'applicazione pipeline, sul lato sinistro, fai clic su "Trigger in entrata" -> "Imposta trigger pipeline" e vedrai i tubi che puoi attivare. Controllare l'evento che attiverà l' DataFusionQuickstart2 oleodotto da DataFusionQuickstart e abilitarlo.

- Se dai un'occhiata alla pipeline precedente DataFusionQuickstar vedrai, nell'opzione trigger outbound (lato destro), le pipeline che verranno innescate da DataFusionQuickstar .

- Infine imposta il tuo argomento di runtime.

Informazioni aggiuntive
In questo post , è stato detto che ci sono tre modi per impostare l'argomento di runtime di una pipeline:
- Plugin Argument Setter (puoi annotare quel valore in un file nella prima pipeline. In tutte le pipeline successive, crea un parametro per leggere quel file.)
- Passaggio dell'argomento di runtime all'avvio di una pipeline (quella descritta sopra)
- Impostazione delle preferenze (Offre la possibilità di salvare le informazioni di configurazione a vari livelli del sistema, inclusi i livelli di istanza CDAP, spazio dei nomi, applicazione e programma).
È possibile annotare quel valore in un file nella prima pipeline. In tutte le pipeline successive, crea un parametro per leggere quel file. In questo modo, l'obiettivo dovrebbe essere raggiunto.
@Sudhir, puoi esplorare le PREFERENZE. https://cdap.atlassian.net/wiki/spaces/DOCS/pages/477561058/Preferences+HTTP+RESTful+API
Hai impostato la variabile a livello di spazio dei nomi e secondo la tua scoperta viene valutata ogni volta che viene utilizzata.
Puoi provare a impostarlo a livello di applicazione? E passalo alla prossima pipeline. Credo che in quel caso, dovrebbe essere valutato solo una volta in quella specifica applicazione (pipeline) e successivamente il valore sarebbe passato.
La preferenza è disponibile anche a livello di programma.