...
Para las consultas SQL es posible incluir parámetros de construcción en la cláusula WHERE que limite los registros obtenidos de acuerdo con el valor que toman en cada construcción. Por ejemplo, se pueden definir condiciones dependientes de las fechas de registro o rangos de valores tales como números de facturas, etc.
Note |
---|
Durante las construcciones incrementales se toma la definición del datamart (modelo multidimensional,) que se encuentra en el propio archivo .cube, como así también los valores de los parámetros definidos. Esto significa que en el caso de realizar algún cambio al archivo .mdl es necesario primero realizar una construcción completa para tomar los cambios y luego realizar las incrementales. |
Los posibles casos a utilizar son muy variados y dependerá del tipo de información que tengamos.
Ejemplo
Consideremos la construcción incremental de un datamart de estadísticas de ventas en el que se agregan diariamente las ventas del día anterior. Podría agregar una condición a la sentencia SQL utilizando como fechas límite los parámetros de construcción:
$TODAY$ y $YESTERDAY$ |
Además, O3 mantiene todos los parámetros para el último valor de construcción. Es Trabajando sobre el modelo multidimensional de Vinos que se entrega con el instalador.
Este datamart esta definido para construirse en las primeras horas de la mañana de cada días.
Lo primero que tenemos que hacer es definir un Input Set que sea del Tipo Incremental (Inc), con el botón Agregar.
Este input set servirá para indicar a las fuentes de datos en qué construcción deben ejecutarse, en la solapa de Input Set.
De esta manera vamos a poder tener consultas que se ejecutarán en las construcciones Full y otras para las construcciones Incrementales, o ambas.
Por ejemplo para las consultas que son Tablas de Hechos tendremos una consulta Full y otra Incremental, mientras que para las consultas que son Tablas de Dimensión indicaremos ambos Input Set.
Tabla de Hechos Full | Tabla de Hechos Incremental | Tablas de Dimensión |
---|---|---|
Ahora debemos definir las consultas de fuentes de las Tablas de Hechos, donde en la Full indicaremos extraer todos los datos y en la incremental con un filtro que indique los datos del día anterior.
Nombre Consulta | Consulta | Input Set |
---|---|---|
Ventas Full | SELECT * FROM VINOS_VENTAS | Full |
Ventas Incremental | SELECT * FROM VINOS_VENTAS where FECHA >= $Fecha_Construccion.OLD$ | Inc |
Se observa que se ha utilizado el parámetro Fecha_Construccion, que deberemos definir en Parámetros del Cubo (para más detalles referirse a la página Definiendo Parámetros)
Note |
---|
La definición de un parámetro para filtrar por fechas en una consulta sql, es particular de cada Base de Datos y se debe prestar mucha atención en su definición. Por lo general es un campo de tipo texto. Para nuestro caso fue definido ---> =(Concatenar(Texto(Año(Hoy())),"-",Derecha(Concatenar("00",(Texto(Mes(Hoy())))),2),"-",Derecha(Concatenar("00",(Texto(Dia(Hoy())))),2))) para formar un string del tipo AAAA-MM-DD |
Cuando se construye el cubo el valor de éste y los demás parámetros quedan en el cubo construído. Por lo tanto es posible referirse al valor anterior del parámetro usando:
...
SELECT * |
Estos parámetros no están predefinidos. Deben definirse en el Panel General del Modelo. Para más detalles referirse a la página Definiendo ParámetrosPara nuestro caso en particular utilizaremos $Fecha_Construccion.OLD$. Al indicar que este valor sea Controlador (casilla activada), el O3Builder no permitirá que se construya incrementalmente el cubo con el mismo valor que está en el cubo.
Teniendo entonces el modelo multidimensional definido debemos hacer primero una construcción Full y luego las Incrementales, utilizando el O3Builder
Wiki Markup |
---|
{scrollbar} |
Child pages (Children Display) |
---|