Open Business Intelligence

La red del Business Intelligence

Objetivo:
* Crear una transformación, que extraiga los datos desde un oltp y los almacene en el Data Warehouse.
* Utilizar los id secuenciales creados en el tutorial anterior.
* Crear un trabajo.


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


Pasos generales:

1) Crear Transformación para poblar DW_VentasFact:
Crear una nueva Transformación y llamarla: “DW_VentasFact – Load Datawarehouse”.

2) Crear pasos:
2.1)
Añadir a la zona de trabajo el paso: Entrada → Entrada Tabla
Acceder al paso.
Crear y probar la conexión a la base de datos “intermedio”.
Pegar la siguiente consulta y previsualizar los datos:

SELECT
c.fecha
,ic.idNuevo as idCliente
,iv.idNuevo as idVendedor
,ip.idNuevo as idProducto
,sum(d.cantidad) as cantidad
,sum(d.cantidad*p.precio) as importe
FROM
facturacabecera c
INNER JOIN facturadetalle d ON c.idFactura=d.idFactura
INNER JOIN productos p ON d.idProducto=p.idProducto
INNER JOIN ids_Clientes ic ON ic.idCliente = c.idCliente
INNER JOIN ids_Vendedores iv ON iv.idVendedor = c.idVendedor
INNER JOIN ids_Productos ip ON ip.idProducto = d.idProducto
WHERE
c.anulada=0
GROUP BY
c.fecha, ic.idNuevo, ic.idNuevo, ip.idNuevo;


Presionar Aceptar.


2.2)
Añadir a la zona de trabajo el paso: Salida → Salida Tabla
Unir el paso del punto 2.1 con este paso.
Acceder al paso.
La conexión será a “datawarehouse”, la tabla destino “DW_VentasFact” y se tildará la opción vaciar tabla.
Presionar Aceptar.

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



3) Crear un Trabajo:
3.1)
Crear un nuevo Trabajo y llamarlo: “Load Datawarehouse”.

3.2)
Arrastrar a la zona de trabajo, configurar y realizar las uniones pertinentes de los pasos necesarios para crear lo siguiente:


3.3)
Ejecutar el Trabajo.


Espero les sea útil.
Saludos.

Visitas: 7441

Respuestas a esta discusión

Buen día Cristian.

Ya viste este tutorial: [Tutorial 05] Estructura de la Dimesión Tiempo y Procedure de carga...

Saludos

Estoy peleando para convertirlo a postgres.

Gracias.

una pregunta como podria hacerse el proceso del group by y el SUM(de los campos) con los componentes visuales del pdi y no desde el codigo como se muestra aqui?? gracias

Buen día Dennis, cómo estás?

Tendrías que utilizar el Step Statistics | Group by.

Te muestro un ejemplo:

1) El Step Data Grid devuelve:

2) El Step Sort rows ordena el Dataset mediante los campos que serán utilizados para realizar la agrupación. Realizar esta ordenación es un requerimiento del Step Group by.

3) El Step Group by realiza la agrupación y agregación correspondiente.

3.1) Establecemos los campos de agrupación:

3.2) Establecemos la agregación, en este caso será SUM del campo cantidad:

4) El resultado final es:

Te adjunto la Transformation que he utilizado para el ejemplo.

Saludos

--

Ing. Bernabeu R. Dario
web | youtube | twitter
Archivos adjuntos

Buenas tardes, gracias por responder mis preguntas anteriores.. tengo otra duda.. porque la sentencia sql de carga de la tabla de hechos la realiza utilizando las tablas del esquema intermedio y no sobre las dimensiones del dw??

Pego una copia de la sentencia para mejor interpretacion de la pregunta...

Gracias!

Guillermo

SELECT
c.fecha
,ic.idNuevo as idCliente
,iv.idNuevo as idVendedor
,ip.idNuevo as idProducto
,sum(d.cantidad) as cantidad
,sum(d.cantidad*p.precio) as importe
FROM
facturacabecera c
INNER JOIN facturadetalle d ON c.idFactura=d.idFactura
INNER JOIN productos p ON d.idProducto=p.idProducto
INNER JOIN ids_Clientes ic ON ic.idCliente = c.idCliente
INNER JOIN ids_Vendedores iv ON iv.idVendedor = c.idVendedor
INNER JOIN ids_Productos ip ON ip.idProducto = d.idProducto
WHERE
c.anulada=0
GROUP BY
c.fecha, ic.idNuevo, ic.idNuevo, ip.idNuevo;

Buen día Guillermo, cómo estás?

Es una cuestión de estrategia de carga, en donde los datos para la carga son tomados únicamente desde el almacenamiento intermedio. En este caso las tablas ids_Clientes, ids_Vendedores, etc.. solo se encuentran en el almacenamiento intermedio.

Saludos

--

Ing. Bernabeu R. Dario
web | youtube | twitter

RSS

Distintivo

Cargando…

© 2017   Creado por Emilio.   Tecnología de

Emblemas  |  Reportar un problema  |  Términos de servicio