Fusión de datos: pase el argumento en tiempo de ejecución de una canalización a otra
Tengo un argumento de tiempo de ejecución establecido en el espacio de nombres que es business_date: $ {logicStartTime (yyyy-MM-dd)}. Estoy usando este argumento en mi canalización y quiero usar el mismo en otra canalización. Hay muchas canalizaciones consecutivas y quiero que el valor sea el mismo en todas las canalizaciones una vez calculado en la primera canalización. supongamos que el valor se calcula como '2020-08-20 20:14:11' y una vez que la canalización uno tuvo éxito, paso este argumento a la canalización 2, pero como estos argumentos se definen en el nivel del espacio de nombres, se anula cuando se inicia la canalización2.
¿Cómo puedo evitar que se vuelva a calcular este valor?
Respuestas
Como se comentó anteriormente, puede configurar una canalización para activar otra canalización; puede establecer una variable de tiempo de ejecución en la primera canalización y esta variable se establecerá en las canalizaciones activadas. Puede crear un disparador entrante siguiendo los siguientes pasos:
- Una vez que haya creado sus canalizaciones, seleccione la última canalización que desea ejecutar. En mi caso, tengo el pipeline DataFusionQuickstart2 .

- En la aplicación de canalización, en el lado izquierdo, haga clic en "Activadores entrantes" -> "Establecer activadores de canalización" y verá las canalizaciones que puede activar. Compruebe el evento que activará el DataFusionQuickstart2 oleoducto desde DataFusionQuickstart y activarlo.

- Si echa un vistazo a la canalización anterior DataFusionQuickstar , verá, en la opción de disparo de salida (lado derecho), las canalizaciones que serán activadas por DataFusionQuickstar .

- Finalmente configure su argumento de tiempo de ejecución.

Información Adicional
En esta publicación , se mencionó que hay tres formas de establecer el argumento de tiempo de ejecución de una canalización:
- Complemento Argument Setter (puede escribir ese valor en un archivo en la primera canalización. En todas las canalizaciones posteriores, cree un parámetro para leer ese archivo).
- Pasar el argumento del tiempo de ejecución al iniciar una canalización (la descrita anteriormente)
- Configuración de preferencias (proporciona la capacidad de guardar información de configuración en varios niveles del sistema, incluida la instancia CDAP, el espacio de nombres, la aplicación y los niveles de programa)
Puede anotar ese valor en un archivo en la primera canalización. En todas las canalizaciones posteriores, cree un parámetro para leer ese archivo. De esa manera, se debe lograr el objetivo.
@Sudhir, puede explorar PREFERENCIAS. https://cdap.atlassian.net/wiki/spaces/DOCS/pages/477561058/Preferences+HTTP+RESTful+API
Ha establecido la variable a nivel de espacio de nombres y, según su hallazgo, se evalúa cada vez que se usa.
¿Puedes intentar configurarlo a nivel de aplicación? Y páselo a la siguiente tubería. Creo que en ese caso, debería evaluarse solo una vez en esa aplicación específica (canalización) y, a partir de entonces, se pasaría el valor.
La preferencia también está disponible a nivel de programa.