Uso de Parámetros en Construcción de Cubos
La utilización de parámetros en el diseño de los modelos multidimensional nos ayudan a liberar el uso de los mismos, y por lo tanto a construir cubos.
A continuación se presentan varios casos más usados y requeridos.
- Conexión a Fuentes de Datos
Cambio de Conexión a Base de Datos sin modificar el modelo multidimensional
- Construcción Full e Incremental
Conexión a Fuentes de Datos
Cuando se define en un modelo multidimensional la conexión a una Base de Datos, se indican valores a propiedades de conexión que pueden cambiar en el futuro, por cambio de servidor, de Base de Datos, entre otros.
Para no tener que modificar todas las conexiones definidas en los modelos multidimensionales, se pueden utilizar parámetros para ser usados en la definición
Cómo se hace?
En la pestaña General de las Propiedades del Cubo, se definen los parámetros necesarios, en nuestro caso driver, protocolo y parametros; indicando los valores respectivos.
A continuación en la definición de la Conexión a la Base de Datos (Nueva Conexión a Consultas SQL), se ingresan en las distintas ventanas los valores correspondientes y cuando sea el turno de los Campos de los parámetros definidos los indicaremos con su nombre entre símbolos de $. De esta forma en el momento de la utilización de ellos serán reemplazados los valores definidos.
Cambio de Conexión a Base de Datos sin modificar el modelo multidimensional
Continuando con el ejemplo anterior nos puede ocurrir que deseamos modificar los parámetros de conexióna una base de datos sin tener que modificar el modelo multidimensional.
Para ello utilizaremos el archivo de parámetros .cfg.
Cómo se hace?
En nuestro caso vamos a cambiar de ubicación de la Base de Datos, de localhost a otra ip (192.168.0.10).
Se genera un archivo plano (ASCII), llamado vinos.cfg y que contiene el nombre del parámetro y el nuevo valor. El archivo puede contener varios parámetros y el único requerimiento es que estén definidos en el modelo multidimensional.
parametro=//192.168.0.10:1527/Vinos
Finalmente cuando se realice la construcción del cubo con el comando builder, se debe incluir en la línea de comandos el uso de este archivo con la opcion -cfg=path/vinos.cfg.
De esta forma se reemplazará el valor de //localhost:1527/Vinos por el de //192.168.0.10:1527/Vinos.
Construcción con intervalo de fechas a requerimiento
En ocasiones nos puede pasar que necesitemos construir un cubo con períodos de fechas distintas, para analizar algún comportamiento en particular; y sin editar el modelo multidimensional.
Cómo se hace?
Se parte de la base de que tenemos una consulta sql de extracción de datos ya diseñada y con condiciones de limitar por una fecha de inicio y fecha final.
select * from vinos_ventas where fecha >= '2015-01-01' and fecha < '2015-02-01'
Además que la forma de indicar la fecha al motor de base de datos sea la presentada ('AAAA-MM-DD')
Definir dos parámetros fechainico y fechafin
Modificar la consulta sql por los parámetros definidos
select * from vinos_ventas where fecha >= '$fechainicio$' and fecha < '$fechafin$'
Se genera un archivo plano (ASCII), llamado vinos.cfg y que contiene el nombre de los parámetros con sus nuevos valores.
fechainicio=2015-02-01 fechafin=2015-02-15
Finalmente cuando se realice la construcción del cubo con el comando builder, se debe incluir en la línea de comandos el uso de este archivo con la opcion -cfg=path/vinos.cfg.
De esta forma se genera un nuevo cubo con información entre el 01 y el 15 de febrero de 2015.
Construcción Full e Incremental
En muchas ocasiones vamos a necesitar definir un modelo multidimensional con construcciones full e incremental, donde diariamente incrementamos/agregamos al cubo datos del día anterior.
Este procedimiento es muy comunmente utilizado en los modelos de Ventas.
Cómo se hace?
Queremos desarrollar un modelo multidimensional de análisis de Ventas, donde diariamente incrementaremos el cubo con las ventas del día anterior.
Para el desarrollo de lograr un modelo con construcción full e incremental se deberán realizar tres pasos fundamentales:
- Definición de parámetros - Debemos definir un parámetro para controlar la fecha de ingreso de datos
- Definición de Input Sets. Uno para construcción Full y otro Incremental.
- Definición de fuentes de datos involucradas en los dos tipos de construcción; y controladas por el parámetro fecha.
Definición de parámetros
En la imagen a continuación se observa como configurar un parámetro para obtener la fecha y con el formato que necesitamos para el motor de base de datos en cuestión. En nuestro caso lo aplicaremos al modelo multidimensional de Bodegas Ventas que viene con la instalación de O3BI (<O3BI>/files/Bodegas/BodegasVentas.mdl)
Agregando los parámetros desde la pestaña General de las propiedades del Cubo.
Definición de Input Sets
En el mismo panel de las propiedadades se define un nuevo Input Set que llamaremos Inc y del Tipo Incremental
Definición de Fuentes de Datos
En lo que refiere a las Tablas de Hechos, definimos una consulta para la construcción full, donde extraermos todos los datos; y otra para la construcción incremental donde extraemos los datos del día anterior.
En el código sql de extracción de datos para la ventas incrementales introducimos el uso del parámetro FechaIncremento.
Para que en la ejecución de la consulta sql extraiga los datos del día anterior vamos a utilizar el valor de la FechaIncremento última, es decir del momento de construcción del cubo, agregando al final del nombre del parámetro el postfijo .OLD. De esta manera tomaremos el valor que quedó guardado en el cubo como FechaIncremento.OLD
La utilización del postfijo .OLD, es de gran utilidad para las construcciones incrementales, ya que podemos utilizar respaldos de nuestros cubos de días anteriores y construir incrementalmente desde esas fechas.
De la misma manera debemos agregar y generar el código sql pertinente, a todas aquellas tablas que sean de Hechos. En nuestro caso de ejemplo la consulta de Costos.
Finalmente debemos relacionar las consultas a los distintos Input Sets.
Cómo usar builder para estas construcciones full e incrementales
Para construir los cubos de forma full o incremental debemos indicarle al comando builder que input set utilizará.Un completo detalle del uso del comando builder lo encuentra en el manual correspondiente.
builder -debug -logfile=C:\IdeaSoft\o3bi\files\Bodega\BodegaVentas.log -logtype=clear C:\IdeaSoft\o3bi\files\Bodega\BodegaVenta.srv
builder -debug -logfile=C:\IdeaSoft\o3bi\files\Bodega\BodegaVentasInc.log -logtype=clear C:\IdeaSoft\o3bi\files\Bodega\BodegaVentaInc.srv -is=Inc
Para la construcción de tipo Full no hay porque indicar la opción -is, el comando builder toma como valor predeterminado el tipo Full.