Wiki Markup |
---|
{scrollbar}
----
*{_}O3 Builder{_}* es el componente responsable de la construcción de los datamarts, a partir de los modelos definidos con *O3 Designer*.
La construcción del datamart puede ser en forma total (o completa), o incremental.
La construcción completa puede realizarse desde el mismo *O3 Designer*, con la opción Generar Cubo del menú Archivo, o con el componente *{_}O3 Builder{_}*.
La construcción incremental se realiza únicamente con el componente *{_}O3 Builder{_}*.
Cuando la construcción de un datamart requiere mucho tiempo y gran cantidad de recursos del sistema, es conveniente programar dicho proceso con el uso de "shell scripts" de forma tal que el mismo se realice en horas de poca actividad del sistema.
La misma programación es utilizada para actualizar los datamarts existentes en forma regular y automática.
Para construir un datamart con el componente *{_}O3 Builder{_}*, se debe tener acceso a:
* Directorio de archivos de texto para las fuentes de datos de texto.
* Fuentes de datos SQL a través de conexiones JDBC / ODBC.
La construcción o actualización de los datamarts puede ser monitoreada a través de mensajes definidos en *O3 Designer* asociados a los posibles estados de finalización de dicho proceso.
El *{_}O3 Builder{_}* puede enviar correos a los destinatarios definidos en el propio modelo, informando sobre el éxito o fracaso de la construcción. (Ver "[Acciones de Construcción|o3man:Definiendo Acciones de Construcción]").
h1. Construcción Completa (FULL)
Cuando se ejecuta la construcción desde el *O3 Designer*, el datamart generado corresponde al modelo activo actualmente en el *O3 Designer*.
h1. Construcción Incremental
La construcción incremental es utilizada para actualizar la información del datamart, evitando la reconstrucción completa a los efectos de ahorrar tiempo y recursos del sistema.
Para la construcción incremental, debe prestarse especial atención en la configuración de los Input Sets y eventualmente de los parámetros de construcción que se utilicen.
Las fuentes de datos que forman el Input Set Incremental deben proporcionar únicamente los nuevos datos del datamart. Si estas fuentes de datos incluyen datos que ya forman parte del datamart, el mismo contendrá datos duplicados. Cuando se definen las fuentes de datos:
* Asegúrese de que la fuente de datos contenga solamente registros para agregar.
* Limite las fuentes de datos de consultas SQL usando las expresiones WHERE apropiadas.
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.
(!) Durante las construcciones incrementales se toma la definición del datamart (modelo) que se encuentra en el propio archivo .cube. 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.
h2. 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 posible referirse al valor anterior del parámetro usando:
| $ParameterName.old$ |
Esto significa que se puede incluir el valor real del parámetro y el valor previo en las condiciones de la expresión WHERE como forma de cargar los datos generados desde la última construcción. Por ejemplo:
| SELECT * \\
FROM Facturas \\
WHERE date > $TODAY.old$ AND date <$TODAY$ |
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ámetros de Construcción|o3man:Definiendo Parámetros de Construcción]"
----
{children}
----
{scrollbar} |
...
O3 Builder es el componente responsable de la construcción de los datamarts, a partir de los modelos definidos con O3 Designer.
La construcción del datamart puede ser en forma total (o completa), o incremental.
La construcción completa puede realizarse desde el mismo O3 Designer, con la opción Generar Cubo del menú Archivo, o con el componente O3 Builder.
La construcción incremental se realiza únicamente con el componente O3 Builder.
La construcción o actualización de los datamarts puede ser monitoreada a través de mensajes definidos en O3 Designer asociados a los posibles estados de finalización de dicho proceso.
El O3 Builder puede enviar correos a los destinatarios definidos en el propio modelo, informando sobre el éxito o fracaso de la construcción. Ver Acciones de Construcción.
Construcción Completa (FULL)
Cuando se ejecuta la construcción desde el O3 Designer, el datamart generado corresponde al modelo activo actualmente en el O3 Designer.
Construcción Incremental
La construcción incremental es utilizada para actualizar la información del datamart, evitando la reconstrucción completa a los efectos de ahorrar tiempo y recursos del sistema.
Para la construcción incremental, debe prestarse especial atención en la configuración de los Input Sets y eventualmente de los parámetros de construcción que se utilicen.
Las fuentes de datos que forman el Input Set Incremental deben proporcionar únicamente los nuevos datos del datamart. Si estas fuentes de datos incluyen datos que ya forman parte del datamart, el mismo contendrá datos duplicados.
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. 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:
$ParameterName.old$ |
Esto significa que se puede incluir el valor real del parámetro y el valor previo en las condiciones de la expresión WHERE como forma de cargar los datos generados desde la última construcción. Por ejemplo:
SELECT * |
Para 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) |
---|