Data Fusion: passa l'argomento di runtime da una pipeline a un'altra

Aug 20 2020

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

1 Juls Aug 21 2020 at 18:53

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:

  1. Dopo aver creato le pipeline, seleziona l'ultima pipeline che desideri eseguire. Nel mio caso ho la pipeline DataFusionQuickstart2 .

  1. 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.

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

  1. 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:

  1. 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.)
  2. Passaggio dell'argomento di runtime all'avvio di una pipeline (quella descritta sopra)
  3. 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).
adiideas Sep 02 2020 at 11:17

È 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.

adiideas Oct 29 2020 at 07:16

@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.