OBI: Dimensión de tiempo

Ver el tema anterior Ver el tema siguiente Ir abajo

18062009

Mensaje 

OBI: Dimensión de tiempo




No hay proyecto de business intelligence en el que no necesitemos una dimensión de tiempo así que voy a contar lo que necesita OBI para que esta dimensión funcione correctamente:

  1. lo primero es importar en la capa física una o varias tablas con las fechas. Podemos utilizar la dimensión de tiempo que genera Oracle Warehouse Builder o bien una tabla propia que tenga un registro por cada día con la fecha en formato date, en texto, en número, el nombre del mes, del año, ...
  2. crear relaciones entre la tabla de tiempos y las demás tablas que tengan fechas
  3. crear en la capa de negocio una tabla lógica que utilice la tabla física de tiempo
  4. establecer la clave de la tabla lógica, que puede ser el campo con la fecha
  5. crear una dimensión para la tabla lógica de tiempo, marcar la dimensión como 'Time dimension'
  6. crear los niveles en la dimensión: año, mes y día, por ejemplo
  7. arrastrar a cada nivel los campos oportunos
  8. establecer la clave de cada nivel. En el nivel inferior la clave siempre debe ser igual a la clave de la tabla lógica
  9. establecer la clave cronológica de cada nivel. Esto quiere decir que en cada nivel de la dimensión necesitamos un campo que si ordenamos por su contenido, la tabla quede ordenada por fecha. Para esto es muy útil tener campo numérico del tipo YYYYMM para los meses, esto nos permite ordenar todos los meses de un año y a continuación los de otro, para que no salgan todos los meses de enero juntos.
  10. relacionar la dimensión de tiempo con las tablas de hechos correspondientes
  11. establecer el content de la tabla lógica de tiempo al nivel oportuno de la dimensión de tiempo
  12. establecer el content de las tablas de hechos al nivel oportuno de la dimensión de tiempo
  13. por último, es habitual tener campos descriptivos de las fechas, de tipo alfanumérico, que si los pintamos en un informe saldrán ordenados alfabéticamente, para evitar esto podemos establecer el orden de una columna basándonos en otra. Esto se hace en las propiedades de cada columna, botón Order. Ahí seleccionamos otro campo del mismo nivel de dimensión, que sí permita ordenación por fecha.


Ejemplo:
Tabla física:
.dia date, clave primaria
.dia_txt varchar2 --> '12 de enero de 2009'
.mes_num number --> de 1 a 12
.mes_txt varchar2 --> 'enero'
.mes_code number --> yyyymm, 200901
.anno number --> 2009

Tabla lógica:
.dia date, clave primaria
.dia_txt varchar2 --> ordenada por dia
.mes_num number --> ordenado por mes_code
.mes_txt varchar2 --> ordenado por mes_code
.mes_code number
.anno number

Dimensión:
Nivel año:
.anno, clave normal y cronológica, activada para drill-down
Nivel mes:
.mes_num: no es clave
.mes_txt: clave normal, activada para drill-down
.mes_code: clave cronológica, no activada para drill-down
Nivel día:
.dia: clave normal y cronológica, activada para drill-down

bvillamor

Cantidad de envíos : 388
Localización : Madrid
Fecha de inscripción : 18/02/2009

Ver perfil de usuario http://www.adiante.es

Volver arriba Ir abajo

- Temas similares
Compartir este artículo en : Excite BookmarksDiggRedditDel.icio.usGoogleLiveSlashdotNetscapeTechnoratiStumbleUponNewsvineFurlYahooSmarking

 
Permisos de este foro:
No puedes responder a temas en este foro.