¿Cómo escribir un fichero en destino con el nodo local fs con un nombre específico?
Por defecto, cuando se escribe un fichero usando el nodo “local fs“ como esto
el fichero de salida tendrá un UUID como nombre de archivo. Esto es necesario por la funcionalidad interna de streamsets, pero podemos cambiarlo.
Para evitar esto, añadiremos un evento de salida al local fs activando su producción de eventos
y añadiremos un Shell Executor a esta salida
con este nodo podemos ejecutar código shell una vez el fichero ha sido cerrado (y por tanto completamente escrito). Para renombrar el fichero añadiremos algunas variables desde los parámetros y los datos del evento de cierre.
Usaremos el FILEPATH y el FILEOUTNAME (que viene de un parámetro) y escribiremos el código para renombrar el fichero de forma dinámica
#!/bin/bash
echo $FILEPATH
mv $FILEPATH /tmp/out/2021-04-08-10/$FILEOUTNAME.csv
exit 0