lunes, 13 de enero de 2020

KETTLE_EMPTY_STRING_DIFFERS_FROM_NULL




Pentaho Data Integration (PDI) o más conocida por el nombre Kettle  es uno de los componentes de Pentaho Suite, es una herramienta de las que hablamos en la entrada anterior en este blog. Con esta herramienta podemos crear procesos ETLs con enorme facilidad y destaca por ser Open Source. Tiene una interface gráfica llamada Spoon


Pentaho Data Integration Demo
  
Tras esta breve introducción paso a comentar que esta herramienta contine un fichero de configuración general donde se almacenan las variables globales y que vamos a poder usarlo para poder parametrizar nuestros jobs y nuestras transformaciones de una forma comoda. Es muy util para poder trabajar en distintos entornos (pre-producción, produccíon o desarrollo), en diferentes conexiones de bases de datos, directorios donde se encuantran nuestros procesos, etc. 

En uno de los foros de la comunidad de Pentaho encontré el siguiente problema que tiene un usuario. Partiendo de esta duda vamos a dar a conocer una variable llamada KETTLE_EMPTY_STRING_DIFFERS_FROM_NULL.
 

Ocurre que en Kettle cuando un campo es de tipo String,cuyo campo puede venir de un tipo VARCHAR y un TEXT de una Base de Datos, el problema es que en Kettle cuando un campo está vacío en la Base de Datos nuestra herramienta lo interpreta como un campo NULL y como bien sabemos no es lo mismo. Esto nos puede dar quebraderos de cabeza o tener que añadir pasos a nuestro proceso ETL para adaptarlo a nuestra necesidad.

Por defecto, si no ponemos dicha variable con el valor a YES no pone el valor a vacío y lo pone como NULL cuando el registro viene con ese campo vacío.  




Nuestro amigo de la comunidad si que sabe que haciendo este cambio funciona lo que queremos hacer, pero no logra hacerlo, para eso tenemos dos opciones, la primera desde el Spoon deberemos ir a  Editar >  Edit the kettle.properties  file, o con atajo de teclado CRTL+ALT+P. En esta primera opción el cambio se hace dedes la GUI como se ve en la pantalla anterior, es bastante cómodo.
 
La otra opción es ir a nuestra carpeta de usuario de Windows, por ejemplo C:/Usuarios/UserHomePC/ dentro de esta carpeta habrá una llamada .kettle y dentro de la misma un fichero llamado kettle.properties, en este fichero tenemos que encontrar la variable en cuestión y poner el valor del parámetro a YES , recordar que tras hacer estos cambios es conveniente cerrar el Spoon y volver a abrirlo para que surjan efecto. Espero que os sirva para vuestros desarrolos esta buena ayuda.