Open Business Intelligence

La red del Business Intelligence

Buen día a todos.

Estoy utilizando la herramienta BI Pentaho, quiero comenzar comentando que soy nuevo utilizándolo. En este momento me encuentro implementando un data warehouse con fines de aprendizaje, he diseñado una base de datos relacional a base de datos obtenidos por las represas hidroeléctricas de mi país. Ya he diseñado mi data warehouse con una estructura de estrella, con sus respectivas dimensiones y tablas de hechos.

Bueno para la implementación de un ETL utilizo la aplicación de pentaho PDI (la versión de la comunidad 5.4.1), ya hice unas transformaciones que me ayudaron a poblar las tablas de dimensiones que en este caso tengo 3 que son: dim_operador, dim_planta, dim_tiempo. Para poblar dim_operador y dim_tiempo he extraído de mi base de datos relacional los nombres de operadoras (Empresas que generan energía) y plantas (plantas generadoras por cada empresa) respectivamente, la verdad solo los nombres necesito y con dim_tiempo he utilizado un procedimiento almacenado que me llene con fechas de cada día desde el 1-1-2015 hasta 31-12-2016. Ok ya con lo anterior me surge el siguiente problema… Poblar la tabla de hechos (sería la inyección de energía por planta), pero manteniendo integro los datos.

Me explico, de la base de datos relacional hay una tabla llamada OPERADORES de los cuales he poblado mi dimensión DIM_OPERADORES guardando SÓLO los nombres de las plantas por lo tanto almacenan una llave primaria diferente (siendo la del data warehouse el orden en el que ingresan de 1 hasta n operadoras) y así con las otras dimensiones. Ahora quiero poblar mi tabla de hechos, en un table input he generado una consulta que me muestre las inyecciones por planta, la planta que lo genera, la operadora de esa planta y el mes de cuando fue tomado el dato. Quiero guardar esta información en mi tabla hechos pero quiero que compare los valores de esta consulta con los nombres de que estén en las dimensiones y que en tabla de hechos me tome la llave primaria de ese nombre, eso básicamente.

 

No sé que Step realiza esto, la ayuda que encuentro es muy poca la verdad así que recurro a ustedes para que me ayuden a resolver este problema que tengo, de antemano ¡Muchísimas gracias!

P.D. Adjunto imagenes que espero ayuden a comprender mi problema. Ahora bien si hay una forma más facil de hacerlo podrían iluminarme :D

Etiquetas: Hechos, Integridad, PDI, dimensiones

Visitas: 350

Archivos adjuntos

Las respuestas están cerradas para esta discusión.

Respuestas a esta discusión

Buenos Días Wilfredo,

Algunas opciones que puedes tener a través de los steps pueden ser el database lookup.

o hacer la combinación con los pasos (table input que apunte a tu dimensión, stream lookup) para realizar el mismo trabajo que databse lookup  ya que el primer paso que te mencione revisa para cada registro en la toda la tabla, y cuando la dimensión es muy grande y es mucha data no es muy eficiente, en cambio la segunda trae toda los datos de una de la tabla y los compara mucho mas rápido.

otro paso que he probado la semana pasada es el "combination lookup/update" consulta tu dimensión y te trae la llave primaria que tiene tu dimensión, y ademas realiza la actualizacion de la dimensión (aunque esto ultimo yo lo realizo antes en otra transformacion, así que solo me traerá los id para la tabla de hechos).

cualquier duda me comentas.

Saludos

Muchas gracias por responder Ivan.

Al final en la desesperación lo hice de otra forma, tomando los id que si son de las tablas relacionales para no tener este incoveniente (Aunque imagino que no es recomendable hacerlo). Me hubiese gustado encontrar mas ejemplos sobre el uso de los steps pero desafortunamente no encontraba muchos de utilidad. Gracias por tu tiempo!

Crees que me podrías ayudar con este inconveniente

Saludos

Hola Wilfredo,

puedes utilizar los id que vienen la tablas relacionales, el tema del id propio o autoincremental de la dimensión, facilita después la comparación de los id ya que solo serian números, pero si tus id que estas usando también son numero no seria mucho problema.

Si quieres puedes enviarme un mail a mi correo, ivanpincheirahenriquez@gmail.com y te puedo enviar un ETL Sencillo para llenar un DW con info de la base de datos AdventureWorks 2014 (pero se puede usar la 2008 en adelante).

ahi utilizo varios steps que utilizo siempre en mi trabajo.

Saludos

RSS

Distintivo

Cargando…

© 2020   Creado por Emilio.   Tecnología de

Emblemas  |  Reportar un problema  |  Términos de servicio