Open Business Intelligence

La red del Business Intelligence

Objetivo:
* Presentación de esquema de trabajo.
* Crear ocho transformaciones, que extraigan los datos desde un oltp y los almacenen en una base de datos MySQL.
* Crear un trabajo, que ejecute estas ocho transformaciones.
* Guardar y Ejecutar el trabajo.


Requisitos:
* Haber leído [Tutorial 01].


Esquema de trabajo:
Para la realización de esta actividad, vamos a tener en cuenta el siguiente esquema:


Este esquema se compone de tres elementos:
* OLTP: fuente de datos interna/externa. En nuestro ejemplo, archivos .dbf.


* Almacenamiento Intermedio: base de datos en donde se guardarán los datos importantes provenientes de los OLTP y de los procesos ETL, que son necesarios para poblar el DW. En nuestro ejemplo, base de datos "intermedio" (MySQL).

* DW: base de datos correspondiente al Data Warehouse. En nuestro ejemplo, base de datos "datawarehouse", (MySQL).



Pasos generales:

1) Crear Bases de Datos:
Crear las siguientes base de datos en MySQL:
* intermedio.
* datawarehouse.

2) Crear/Poblar tablas de la base de datos "Intermedio":
* Crear una carpeta con el nombre “oltp” en [...\data-integration], y pegar en ella los archivos .dbf adjuntos (añadir al archivo adjunto la extensión .rar y descomprimirlo).
* Crear una carpeta con el nombre “etl” en [...\data-integration], que sera en donde guardaremos las Transformaciones y Trabajos.
* Crear las siguientes transformaciones, tomando como entradas los archivos .dbf adjuntos:
___* clientes - Pje Intermedio
___* facturacabecera - Pje Intermedio
___* facturadetalle - Pje Intermedio
___* productos - Pje Intermedio
___* proveedores - Pje Intermedio
___* rubros - Pje Intermedio
___* vendedores - Pje Intermedio
___* zonas - Pje Intermedio

3) Crear un Trabajo:
* Ir a Fichero → Nuevo → Trabajo

4) Crear pasos:
4.1)
* En el panel izquierdo seleccionar la pestaña “Objetos principales”.

4.2)
* Seleccionar el paso General → Start y arrantrarlo a la zona de trabajo.

4.3)
* Seleccionar el paso General → Transformación y arrantrarlo a la zona de trabajo.
* Acceder al paso, haciendo doble clic sobre el mismo.
* Para este ejemplo, completaremos solo dos campos:
___* Nombre de la entrada de trabajo: es el nombre que tendrá el paso, en este caso “clientes - Pje Intermedio”.
___* Nombre del archivo de transformación: es el nombre y path de la transformación a la que nos referimos, en este caso “file:///home/datos/programas/data-integration/etl/clientes - Pje Intermedio.ktr”

4.4)
Unir el paso Start con el paso Transformación.

4.5)
Repetir el paso 4.3 para incluir a todas las Transformaciones creadas en el paso 2.
Unir cada nueva transformación con la anterior creada.

4.6)
* Seleccionar el paso General → Exito y arrantrarlo a la zona de trabajo.
* Unir a este, el último paso Transformación creado.

4.7)
* Seleccionar el paso General → Abortar trabajo y arrantrarlo a la zona de trabajo.
* Unir cada paso Transformación a este nuevo paso.

5) Guardar el Trabajo:
* Ir a Fichero → Guardar como...
* Seleccionar el lugar y nombre del archivo, en este caso “Pje Intermedio”

6) Ejecutar el Trabajo
* Ir a Trabajo → Ejecutar
* Presionar “Ejecutar”

Listo! Si han seguido los pasos correctamente, deberían obtener el siguiente resultado:


PD: Los esquemas utilizados en este tutorial, son los que utiliza mi colega Mariano Mattío en su video tutorial OpenI. Gracias Mariano!


Espero les sea útil.
Saludos.

Visitas: 12938

Archivos adjuntos

Respuestas a esta discusión

SIGNIFICA que al crear mis dimension crearia un un identificador unico secuencial  y este seria como quien dice mi clave primaria.. estoy bien o estoy equivocada y quedaria asi mi dimension

idalmacen codemp nomalm porque  solo esto quiero en mi dimension

siguiendo los pasos del [ tutorial 3 ]me quedo asi ahora mi pregunta es ese codemp que es el codigo de empresa y viene directamente de la tabla empresa que esta formado por los campos codem, nomemp,direcc... bueno estos datos podria hace runa dimension empresa o seria redundancia

Si existe ja jerarquía empresa>almacen (o lo que sea) sería correcto

 

Saludos

 

Mariano

gracias.. una pregunta mas.. cuando se crea la tabla id_cliente ese nuevo campo idNuevo TENGO QUE ASIGNARLE que sea clave primaria al momento de su creacion

hola otra pregunta al momento  que hago este paso : En la pestaña actual (Selecciona & Modifica), seleccionar los siguientes campos:
___Nombre Campo | Renombrar a:
___* idalm | codalm
 estaria cambiando mis codigos que estaba en la base con el nuevo secuencial y mi tabla me

asi:

 

y su tabla antes de aplicar lo de arriba estaba asi:

eso significa que esta bien o estoy haciendo mal? gracias de antemano

disculpe al crear la tabla id_cliente del tutorial 3 con que tipo de dato se crean porq por ejemplo en mi caso en codalm de la figura que esta arribita mi tipo de datos son alfanumericos y al crear id_cliente el codalm se crea con el mismo tipo de dato y el nuevo campo a crear con el mismo tipo de dato? ejemplo: codalm varchar(2) y idalm varchar82) si pongo asi no me salen todos los datos al momento de cargar mi tabla de hechos
y mi tabla de hecho esta asi de la misma forma como esta en el tutorial 4 pero no me sale nada de datos en que estoy fallando =( please ayuda
select c.codemp,
a.fecfac as Fecha,
d.idalm,/*nuevo cod creado*/
e.idven,
f.idcli,
g.idprod,
b.cantid as cantidad_Vendidas,
sum(b.preuni*b.cantid) as Ventas_Brutas,
(((b.preuni*b.cantid) *b.desren)/100) as Valor_descuento,
sum(b.totren)as Total_con_Desc,
sum(a.totfac)as Total_Venta

from encabezadofacturas a, renglonesfacturas b, dm_empresa_dim c,
id_almacen d, id_vendedor e, id_clientes f, id_productos g

where c.codemp=a.codemp
and a.numfac=b.numfac
and d.idalm=a.codalm
and e.idven=a.codven
and f.idcli=a.codcli
and g.idprod=b.codart
GROUP BY

c.codemp, a.fecfac, d.idalm,e.idven,f.idcli;
una pregunta si ya creo mi clave subrogada al momento de crear mi dimension ya el campo codemp que esta en la figura anterior ya no iria, porq empresa la voy hacer dimension ya que tiene jerarquia

Buenas maricela, te respondo:

* Sí, tanto "idNuevo" como "idCliente" deben ser claves principales.

 

* De acuerdo a las imagenes que muestras, estaría bien si al hacer un join entre tu tabla de dimensión y tu tabla "ids_Clientes" obtienen los mismo códigos iniciales, es decir, (02, 05, A4, ZZ).

 

* Al crear "ids_Clientes" el campo referido a "idCliente" debe ser del mismo tipo y longitud que en el OLTP, pero recuerda que "idNuevo" es siempre númerico. Con respecto a la consulta SQL, deberías probarla tú, ya que me es imposible hacerlo con solo ver la sentencia.

 

* No entendí tu pregunta.

Bernabeu, por favor si pudieras ayudarme, estoy trabajando en la implementación de un DW y me encontré con el siguiente problema, tengo datos de controles a transporte publico y a pasajeros donde estos controles tienen infracciones a los conductores, propietarios y a los pasajeros y estos a su ves tienen rechazos, se que mi primera relación es uno a muchos (un control puede tener muchas infracciones pero una infracción solo pertenece a un solo control) y la segunda es muchos a muchos (una infracción puede tener muchos rechazos y un rechazo puede pertenecer a muchas infracciones), mi problema es poder visualizar esto en un cubo. como por ejemplo 

ver cuantas infracciones utilizan el rechazo xxxxxx en la región xxxxxx y el responsable xxxxxxx

Gracias.

Buenas Leonardo, cómo estás?

La verdad que no me quedó muy claro tu planteo. Puedes iniciar un nuevo foro y detallar más tu consulta, añadiendo alguna imagen de tu DW de ser posible.

Saludos

Buen día Darío, ¿me podrías ayudar por favor?, tengo una duda... ¿La Base de Datos "intermedio" debe tener las tablas con su estructura del OLTP o del DW?

Gracias por tu ayuda.

Estimado,

la BD intermedio debe tener una estructura tal que pueda soportar las fuentes de datos, por ello será mas bien parecida a tu OLTP + fuentes de datos extra si las tienes.

Saludos

Mariano

RSS

Distintivo

Cargando…

© 2021   Creado por Emilio.   Tecnología de

Emblemas  |  Reportar un problema  |  Términos de servicio