Como sabéis, en casi todo proyecto de BI necesitamos una tabla de tiempos con los datos mas representativos de esta dimensión como DIA, SEMANA, MES o AÑO entre otros. Con ella seremos capaces de crear, a partir de una fecha en concreto, toda una relación de descripciones temporales asociadas. Vamos a ver como poblamos nuestra tabla lookup de tiempos usando Kettle de Pentaho (PDI).
He creado una pequeña transformation con la que podremos poblar nuestra tabla de tiempos que paso a explicaros detalladamente
- DATE_INT
Es un módulo de tipo Generate Rows. En él definiremos una fecha estática para comenzar sobre ella los diferentes cálculos que vamos a ir realizando. - DAY_SECUENCE
Módulo de tipo Get Value from Sequence. Con él, vamos a conseguir generar una sucesión de números, en nuestro caso del 1 al 10000 para poder ir sumándole esta cifra a la fecha base. - DATE_CALC
Módulo tipo Calculator. Este módulo es muy útil, si no lo conocíais, este es buen momento. Nos permite realizar cálculos con dos o más campos de nuestro flujo de transformación. En esta transformation en concreto vamos a calcular gran parte de los campos finales en este paso. - DATE_FILTER
Descartaremos fechas superiores a 2021 para nuestro ejemplo. Lo hacemos con este módulo tipo Filter rows.
- SPANISH_TEXT
Módulo tipo Formula con el que comenzaremos a crear descripciones para los campos que lo necesitan. - SPANISH_DESC
Módulo tipo Javascript donde acabamos de traducir el resto de campos de nuestra lookup de tiempos. - VALUES
Módulo tipo Select / Renames values para seleccionar definitivamente nuestros campos antes de exportar al output definitivo.
Os dejo la transformación para que la importéis en vuestro Kettle y trabajéis con ella.
Hola, muchas gracias por compartir todo esto.
La descarga de la transformación que has subido no funciona, la podrías re subir por favor, te lo agradecería demasiado.
Gracias de antemano.
Saludos
Hola Maria, perdona, el link obviamente era erróneo. Lo acabo de corregir, ya está disponible.
Saludos y gracias 😉
Por favor podrias resubir la transformación en Kettle
Hola Marie, perdona, he corregido el link de la publicación, ya funciona 😉
Hola, tengo la siguiente situación y debido a mi experiencia no se cual es la mejor vía de llevarla a cabo. Tengo un conjunto de transformaciones que se ejecutan de manera programada. Como fuente tiene una consulta que involucra varias tablas, por lo que los registros tienen campo que vienen de diferentes tablas. Ese flujo es guardado en una estructura NoSQL específicamente MongoDB. Mi pregunta es la siguiente: Si mis transformaciones se ejecutan múltiples veces, ¿Cómo hago para que cada vez que se ejecute, solamente me identifique de las fuentes [la consulta que une varias tablas] los registros nuevos y los actualizados? O sea que solo me logre leer los valores que no tengo en MongoDB, sea nuevo o por actualizar. ¿Qué componente del PDI puedo utilizar para ello o debería crear una estrategia propia?
Muchas gracias!
Gracias amigo por compartir!!!!