Definiendo el O3 Query

El procedimiento de definiciĆ³n de consultas detalladas a la base de datos requiere realizar los siguientes pasos:

  • DefiniciĆ³n de la conexiĆ³n a la base de datos.

  • EspecificaciĆ³n de los datos que se desean obtener de la base de datos como resultado de la consulta y su relaciĆ³n con las dimensiones del datamart.

  • Filtros a utilizar en la Consulta Drill Through entre el Datamart y el O3Query

  • DefiniciĆ³n del archivo de configuraciĆ³n requerido para asociar el datamart con la o las consultas definidas.

Estas definiciones se desarrollan en ambiente desktop con el O3 Browser y son almacenadas en primera instancia localmente donde se ejecuta el componente O3 Browser, para luego ser publicadas en el servidor y ser consultadas en la web.

Definiendo Conexiones a Bases de Datos

La configuraciĆ³n a la base de datos depende del DBMS y del driver utilizado, es decir si se utiliza un manejador de tipo ODBC Ć³ JDBC.

Para las conexiones que utilicen ODBC se debe definir la correspondiente fuente de datos del sistema desde el panel de control de Windows.

Para las conexiones que utilicen drivers JDBC, se deben realizar en primera instancia, modificaciones en la instalaciĆ³n de O3BI y de acuerdo a la Base de Datos. Estas modificaciones se indican en documento aparte, ya que luego no hay que realizarlas nuevamente.

Las definiciones de conexiones a Bases de Datos son distintas para el uso local/desarrollo como para el uso por la web (Ambiente de ProducciĆ³n)

DefiniciĆ³n Conexiones en Ambiente Desktop

Las conexiones se definen a travĆ©s de la opciĆ³n "Editar Conexiones de Bases de Datos" de la entrada "EdiciĆ³n" del menĆŗ "Archivo" de O3 Browser.

Luego elegir Desde Repositorio Local, no elegir Desde Repositorio Remoto porque se destruye el archivo de configuraciĆ³n para el ambiente web.

En el Panel de la Izquierda se observan las Conexiones Definidas y a la derecha su configuraciĆ³n.

Con la instalaciĆ³n vienen definidas tres conexiones de ejemplo.

Para definir una nueva conexiĆ³n a la base de datos se deben seguir los siguientes pasos:

  • Seleccionar con el botĆ³n derecho del ratĆ³n la etiqueta "Conexiones" para desplegar el menĆŗ.

  • Elegir la opciĆ³n "Nueva ConexiĆ³n" de la entrada "Agregar" del menĆŗ.

  • Seleccionar la nueva conexiĆ³n para desplegar el panel derecho y completar sus propiedades.

Campo

JDBC

ODBC (en desuso)

Campo

JDBC

ODBC (en desuso)

Nombre

Es el nombre dado a la conexiĆ³n. Se referencia desde la definiciĆ³n de la consulta.

Es el nombre dado a la conexiĆ³n. Se referencia desde la definiciĆ³n de la consulta.

Usuario

Usuario con permisos de consulta sobre la base de datos

Usuario con permisos de consulta sobre la base de datos

Clave

Clave del usuario con permisos de consulta sobre la base de datos

Clave del usuario con permisos de consulta sobre la base de datos

Controlador

sun.jdbc.odbc.JdbcOdbcDriver

Clase del controlador. La misma es especificada en la documentaciĆ³n del controlador utilizado. (Ver Drivers JDBC mĆ”s utilizados)

Tipo de Driver

SQL

SQL

URL

URL a la base de datos deseada. Depende del controlador utilizado y figura en su documentaciĆ³n

jdbc:odbc:<DATASOURCE>. Donde DATASOURCE es la Fuente ODBC creada.

  • Probar la conexiĆ³n a la base de datos, presionando el botĆ³n "Verificar".
    El mensaje "ConexiĆ³n realizada" indica que la conexiĆ³n ha sido definida exitosamente.

    Ā 

  • Guardar los cambios con el botĆ³n "Grabar".

Estas configuraciones quedan guardadas en el archivo <O3>\config\query\edf\config\connections.xml

Ā 

AdemĆ”s de agregar una nueva conexiĆ³n en el panel de conexiones, es posible: modificar una conexiĆ³n existente y/o eliminar una conexiĆ³n.

Si se desea modificar una conexiĆ³n existente se debe:

  1. Seleccionar la conexiĆ³n que se desea modificar.

  2. Modificar las propiedades de la conexiĆ³n

  3. Probar la conexiĆ³n a la base de datos, presionando el botĆ³n "Verificar".
    El mensaje "ConexiĆ³n realizada" indica que la conexiĆ³n ha sido definida exitosamente.

  4. Guardar los cambios con el botĆ³n "Grabar".

Si se desea eliminar una conexiĆ³n existente se debe:

  1. Seleccionar con el botĆ³n derecho del ratĆ³n la conexiĆ³n que se desea eliminar para abrir el menĆŗ.

  2. Elegir la opciĆ³n "Borrar".

  3. Guardar los cambios con el botĆ³n "Grabar".

DefiniciĆ³n de Conexiones en el O3BI Server (Ambiente Web)

Esta configuraciĆ³n la debemos realizar en la instalaciĆ³n del Servidor de O3BI, y en forma manual.

En Ambiente Web las conexiones definidas por el panel del O3Browser no nos sirven, debemos desarrollar datasource para ello.

Estos datasource los vamos a definir editando el archivo connections.xml que se encuentra en <O3>\server\istore\query\config

El siguiente es un ejemplo para definir el datasource para el Cubo de Vinos.

<?xml version="1.0" encoding="UTF-8"?> <connectionMapping xmlns="connectionMapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.isoft.com.uy/schemas/edf/ConnectionMapping.xsd"> <dataSource nameJNDI="java:jboss/datasources/Vinos-ds" schema="Vinos"/> </connectionMapping>

Prestar atenciĆ³n que se hace referencia a un datasource llamado Vinos-ds, para ello debemos crear un archivo en <O3>\jboss\standalone\deployments, donde definimos la conecciĆ³n con la fuente de datos, con el nombre <IdentificaciĆ³nalaBasedeDatos>-ds.xml .

Y tambiƩn se hace referencia a un schema (Vinos), que es la consulta definida.

<?xml version="1.0" encoding="UTF-8"?> <datasources> <datasource jndi-name="java:jboss/datasources/Vinos-ds" pool-name="Vinos-ds" enabled="true" jta="true" use-java-context="true" use-ccm="true"> <connection-url> jdbc:derby:c:/ideasoft/o3bi/files/data/Vinos </connection-url> <driver> derby </driver> <security> <user-name>sa</user-name> <password>sa</password> </security> </datasource> </datasources>

Definiendo Consultas

Las consultas realizadas a la base de datos para obtener informaciĆ³n mĆ”s detallada que el contenido en el modelo multidimensional se definen a partir de tablas o vistas existentes en el DBMS.

Las vistas se utilizan en aquellos casos en que la consulta involucre campos de mĆ”s de una tabla; ya que sĆ³lo podemos relacionar nuestra consulta de O3BI a un objeto.

La consulta se puede generar y guardar tanto en ambiente local como en el repositorio del O3BI Server. Es aconsejable primero generar la consulta localmente, como si fuera un ambiente de desarrollo); y luego guardarla en el repositorio de O3BI.

La configuraciĆ³n de los elementos de la consulta consiste en:

  • Identificar la consulta con un nombre apropiado

  • Asociar el nombre de la tabla o vista sobre la cual se realiza la consulta

  • Definir los campos de la consulta que se desean visualizar como columnas en el panel del O3 Query Studio.

  • Definir los campos que se desean utilizar como filtros en la consulta, permitiendo al usuario restringir el resultado de la misma a los valores expresados en Ć©stos.

Desde el menĆŗ Archivo de O3 Browser podemos acceder a Editar y generar una Nueva Consulta.

Editando la consulta de Vinos que viene con la instalaciĆ³n, podemos tomarla como ejemplo para anĆ”lisis y definiciĆ³n de otras.

La ventana de configuraciĆ³n de las consultas presenta dos paneles:

  • Panel de definiciones (panel izquierdo)

  • Panel de propiedades (panel derecho)

El panel de definiciones contiene un primer nodo con la etiqueta "Consulta" cuyas propiedades definen la consulta a la base de datos.

Los filtros se agregan al nodo de etiqueta "Filtros" del panel de definiciones. Sus atributos se definen en el panel de propiedades y se describen mĆ”s adelante en esta secciĆ³n.

Definiendo la consulta

Las propiedades de la consulta definen el conjunto de registros que se deben mostrar al momento de solicitar la consulta detallada en O3 Browser, asĆ­ como los campos que interesan mostrar como resultado de la misma.

Para definir una consulta se debe completar la siguiente informaciĆ³n:

  • Nombre: Es un nombre arbitrario para la consulta

  • Esquema: Es la conexiĆ³n a la base de datos que se necesita utilizar para acceder a los datos. Se debe seleccionar de la lista de conexiones disponibles. Las conexiones disponibles son aquellas definidas previamente.

  • Nombre de la Tabla: Es el nombre de la tabla o vista de la base de datos sobre la que se realiza la consulta.

  • CondiciĆ³n: Define la clĆ”usula WHERE de la consulta

  • Cubo: Es el datamart al cuĆ”l estarĆ” asociada la consulta detallada.
    Es importante seleccionar el datamart para permitir definir filtros asociados a dimensiones del mismo.
    El botĆ³n que se encuentra a la derecha permite seleccionar un datamart del sistema de archivos o remoto.
    La asociaciĆ³n reflejada en este panel se realiza Ćŗnicamente con el objetivo de expresar la relaciĆ³n existente entre los filtros de la consulta y las dimensiones del datamart.

  • Campos disponibles: Definen los campos que se desean mostrar en la consulta detallada.
    Para ello se deben especificar los siguientes datos:

    • Nombre: es el nombre del campo definido en la propia base de datos. No se puede modificar.

    • Alias: es la etiqueta del campo en el panel de la consulta detallada.

    • Tipo: es el tipo de dato del campo.

  • BotĆ³n Agregar Campo: Permite agregar manualmente un campo. Para ello deben definirse los 3 datos descriptos anteriormente.

  • BotĆ³n Borrar Campo: Elimina el campo seleccionado. En caso de no haber seleccionado ningĆŗn campo, se elimina el Ćŗltimo.

  • BotĆ³n Autollenado: Define automĆ”ticamente los "Campos disponibles" a partir de la consulta especificada, es decir que define como campos disponibles todos aquellos campos presentes en la tabla o vista definida anteriormente.

  • BotĆ³n Guardar: Guarda los cambios realizados en la configuraciĆ³n de la consulta, tanto en las propiedades como en los filtros.
    Las definiciones se guardan en un archivo XML.

  • BotĆ³n Cambiar Repositorio: Permite cambiar el repositorio entre local y remoto, para guardar el O3 Query en el otro destino y con otro nombre.

Para crear una nueva consulta se deben seguir los siguientes pasos:

  1. Ir a menĆŗ Herramientas, Componentes, Query y abrir la opciĆ³n Nueva Consulta. O Archivo, Nuevo, Nueva Consulta

  2. Definir las propiedades de la consulta. Esto es completar cada uno de los campos descriptos anteriormente.

  3. Guardar las propiedades con el botĆ³n "Guardar"

IMPORTANTE
Al momento de Guardar o de Cambiar de Repositorio se borra el nombre de la Tabla/Vista definida en la consulta. Generando dos situaciones

  1. Si no se completa nuevamente la informaciĆ³n de la Tabla/Vista y se realizan modificaciones a la Consulta y se graba, Ć©sta no va a tener el vĆ­nculo con la Tabla/Vista y no se ejecutarĆ” el O3Query.

  2. En caso de completar nuevamente el nombre de la Tabla/Vista, aparecerĆ” una ventana consultando si desean autollenar. Se debe indicar que no y continuar el desarrollo.

Si se desea modificar una consulta definida previamente, es necesario que la conexiĆ³n a la base de datos utilizada por la consulta estĆ© disponible.

Para modificar una consulta ya existente se deben seguir los siguientes pasos:

  1. Ir a menĆŗHerramientas, Componentes, Query y abrir la opciĆ³n Editar Consulta. O Archivo, Editar , Editar Consulta

  2. Elegir a travƩs del diƔlogo de apertura, la consulta deseada.

  3. Modificar las propiedades deseadas de la consulta.

  4. Salvar los cambios con el botĆ³n "Guardar"

Definiendo Filtros para la Consulta

Los filtros de la consulta son condiciones que se imponen sobre determinados campos para restringir el conjunto de resultado de la consulta.

En general los campos definidos como filtros se relacionan con dimensiones del modelo multidimensional para poder sincronizar las consultas realizadas en el cubo con el resultado detallado de la consulta a la base de datos. En este caso, se asocia el filtro a un determinado nivel de la dimensiĆ³n del modelo multidimensional. A medida que se navega en el cubo, la consulta detallada se actualiza aplicando restricciones sobre los mismos valores filtrados en el cubo de O3.

Sin embargo pueden definirse filtros que no estĆ©n relacionados con dimensiones, lo que permite restringir el resultado de la consulta a la base de datos desde el propio panel de la consulta. Esto puede ser de utilidad para agregar algĆŗn dato no incluido en el modelo multidimensional que sea relevante en aquellos casos que se analice en detalle la informaciĆ³n.

Definiendo las propiedades de los Filtros

La siguiente figura muestra el panel de definiciĆ³n de un filtro.

Un filtro queda definido por los siguientes campos:

  • Nombre del Campo: Es un nombre arbitrario para el Filtro

  • Etiqueta del Argumento: Es la etiqueta que se muestra al usuario como descripciĆ³n del Filtro en la Consulta

  • Nombre del Argumento: identifica internamente el filtro. Tiene como restricciĆ³n de que no puede contener espacios en blanco.

  • Tipo del Argumento: Es el tipo de dato de la colecciĆ³n de valores posibles para el filtro. Por ejemplo, un filtro que contiene como valores los aƱos, se debe definir el tipo Entero.

  • DimensiĆ³n y Nivel: Permiten elegir la dimensiĆ³n y el nivel de la misma con los cuales se sincroniza el filtro.
    Esta relaciĆ³n permite pasarle al filtro el valor del elemento de la dimensiĆ³n seleccionado cuando se navega en el cubo.
    La dimensiĆ³n que se desea asociar se debe elegir de la lista de dimensiones que se ofrecen como ayuda del campo.
    Para ello es necesario haber indicado el cubo para el cual se define la consulta detallada en el panel de propiedades de la consulta

  • CondiciĆ³n: Es una expresiĆ³n que expresa la condiciĆ³n que se aplica al campo de la base de datos para restringir el conjunto de resultado.
    La sintaxis depende del DBMS utilizado.
    El valor asignado al campo es representado con un signo de interrogaciĆ³n. El mismo es sustituido con el valor del filtro al ejecutar la consulta.
    Por ejemplo la condiciĆ³n utilizada para definir el aƱo como filtro, a partir de un campo de tipo fecha de la base de datos es: year(OrderDate) = ?
    El ejemplo presentado asume que la funciĆ³n year(date) que recibe una fecha y devuelve un entero que representa el aƱo de la misma, es ofrecido por el DBMS utilizado..

  • Ayuda: Permite asociar al filtro la lista de valores posibles y desplegarlos como ayuda del campo en el panel de la consulta detallada.
    Para ello se debe definir una consulta a la base de datos que obtenga la clave y descripciĆ³n del filtro.

  • Esquema de Ayuda: Indica la conexiĆ³n de base de batos que se debe utilizar para la consulta definida como ayuda del filtro.
    La misma se elige de la lista de conexiones definidas previamente.

Los filtros se aplican en las dimensiones utilizando la clave de los elementos. Es decir que se filtra por un elemento cuando el valor del filtro coincide con la clave del elemento de la dimensiĆ³n.

En el caso de las dimensiones Fecha se hace una interpretaciĆ³n del filtro para seleccionar el elemento correcto en la dimensiĆ³n Fecha

Los cambios realizados en la definiciĆ³n de los filtros deben salvarse.

Para ello se debe utilizar el botĆ³n "Guardar" del panel de propiedades de la consulta.

Para facilitar la definiciĆ³n de los filtros se dispone de las siguientes operaciones:

  • Agregar un nuevo Filtro

  • Eliminar un filtro existente

  • Cambiar de posiciĆ³n un Filtro

  • Modificar un filtro existente

Para agregar un nuevo filtro es necesario:

  1. Hacer clic con el botĆ³n derecho del ratĆ³n sobre el nodo "Filtros"

  2. Elegir la opciĆ³n "Nuevo Filtro" de la entrada "Agregar" de dicho menĆŗ.

  3. Elegir el filtro agregado con el botĆ³n izquierdo del ratĆ³n y definir sus propiedades.

  4. Confirmar los cambios con el botĆ³n "Guardar" ubicado en el panel de propiedades de la consulta

Para eliminar un filtro es necesario:

  1. Hacer clic con el botĆ³n derecho del ratĆ³n sobre el Filtro que se desea eliminar para desplegar el menĆŗ de operaciones sobre el filtro

  2. Elegir la opciĆ³n "Borrar" de dicho menĆŗ para eliminar el filtro elegido

  3. Confirmar los cambios con el botĆ³n "Guardar" ubicado en el panel de propiedades de la consulta

El orden en el que se presentan los filtros en el panel de la consulta detallada queda determinado por la posiciĆ³n de los mismos en el panel de definiciones. Es posible reubicar un filtro con las opciones "Subir" y "Bajar" del menĆŗ desplegado con el botĆ³n derecho del ratĆ³n.
Para mover un filtro una posiciĆ³n se debe:

  1. Hacer clic con el botĆ³n derecho del ratĆ³n sobre el Filtro que se desea mover para desplegar el menĆŗ de operaciones sobre el filtro

  2. Elegir la opciĆ³n "Subir" o "Bajar" de dicho menĆŗ para mover el filtro. Esta operaciĆ³n se debe repetir tantas veces como posiciones se desee mover.

  3. Confirmar los cambios con el botĆ³n "Guardar" ubicado en el panel de propiedades de la consulta

Para modificar las propiedades de un filtro es necesario:

  1. Seleccionar el Filtro que desea modificarse con el botĆ³n izquierdo del ratĆ³n. De esta forma aparecen sus propiedades en el panel de propiedades.

  2. Modificar las propiedades que se deseen cambiar

  3. Confirmar los cambios con el botĆ³n "Guardar" ubicado en el panel de propiedades de la consulta

Ā 

Archivo de ConfiguraciĆ³n

Las consultas detalladas quedan disponibles a travĆ©s de la opciĆ³n de nombre Plugins del menĆŗ "Ventana" (desde el O3Browser) y en el portal desde el icono

Para ello es necesario definir y ubicar en el mismo directorio donde se encuentra el cubo un archivo de configuraciĆ³n. Este archivo tiene el mismo nombre del cubo y extensiĆ³n plugins.

Por ejemplo si el Cubo se llama Vinos.cube el archivo de configuraciĆ³n Vinos.plugins

El detalle del contenido del archivo es el siguiente:

# Comentarios precedidos del caracter numeral plugin.i.name=<Nombre con que aparece la consulta al usuario> plugin.i.dsc=<DescripciĆ³n de la consulta> plugin.i.browser.class=com.ideasoft.o3.dt.plugin.DTBrowserPlugin plugin.i.server.class=com.ideasoft.o3.dt.plugin.DTServerPlugin plugin.i.args=taskName=<Nombre asignado a la consulta>Task

Notar que se define un archivo para cada cubo. El Ć­ndice i varĆ­a de cero en adelante para cada consulta que se incluye.