sábado, 14 de abril de 2012

La tabla de tiempo en un DataWarehouse

La dimension o tabla del tiempo, permite que el analisis que realizamos en las gráficas o indicadores que construimos con las herramientas de Oracle BI (Oracle Business Intelligence - Inteligencia de negocios) se pueda realizar en función de: hora, dias, meses, años, trimestres, etc.

Para construir por cuenta propia esta dimension seria una tarea algo engorrosa, es por eso que Oracle permite adicionar una Dimesion del tiempo al momento de construir el Datawarehouse por medio de la herramienta Design Center.


La tabla que se crea a partir del asistente, cuenta con muchos campos, no debemos confundirnos con esto, ya que podemos utilizar solo los campos que en verdad nos puede servir en la aplicación. Esa discriminación de los campos se puede realizar al momento de llenar la tabla (ya que esta se crea vacia), o al momento de construir el repositorio por medio del ADMINISTRATION BI TOOL, se pueden retirar los campos o columnas que quedaron vacias o que no necesitamos. Lo mas lógico es llenar esta dimension antes de empezar a insertar datos en el cubo que creamos.

Les dejo entonces un script sencillo en PL/SQL que permite llenar la dimension del tiempo:


Declare

FechaFin date;
Fecha      date;

Begin

/*Se inicializan las varibles dependiento desde y hasta que año se desea llenar
la tabla TIEMPO*/

Fecha    := to_date('2010-01-01','yyyy-MM-dd');
FechaFin := to_date('2013-12-31','yyyy-MM-dd');


WHILE Fecha < FechaFin LOOP

     DBMS_OUTPUT.PUT_LINE('Mes: ' || TO_CHAR(Fecha,'YYYYMMDD') );

     INSERT INTO TiempoQ(DIMENSION_KEY, DAY_ID, DAY, DAY_DESCRIPTION, DAY_NAME,           MONTH_OF_YEAR,
     CALENDAR_YEAR_ID, CALENDAR_MONTH_NAME, CALENDAR_MONTH_DESCRIPTION)
     SELECT
     TO_CHAR(Fecha,'YYYYMMDD'),
     TO_CHAR(Fecha,'D'),
     fecha,
     TO_CHAR(Fecha,'DY'),
     TO_CHAR(Fecha,'DY'),
     TO_CHAR(Fecha,'MM'),    
     TO_CHAR(Fecha,'YYYY'),
     TO_CHAR(Fecha,'MONTH'),
     TO_CHAR(Fecha,'YYYY-MM')
     FROM DUAL;

     SELECT Fecha+1 into Fecha from dual;
   
End loop;

End;


Si te gustó este articulo, te invitamos a que veas la publicidad al lado derecho del blog y que des clic sobre ella, te lo agradecemos.
 




No hay comentarios:

Publicar un comentario