En el contexto de Data Warehousing existen herramientas como IdeaSoft O3 Performance Suite orientadas al análisis de la información, también llamadas herramientas OLAP. Típicamente estas herramientas buscan facilitar el análisis a través del uso del modelo multidimensional y generalmente resumen grandes volúmenes de información en un conjunto significativo de valores que describen la realidad de la mejor forma posible.
Este resumen de información permite justamente enfrentarse al problema de analizar cantidades importantes de datos de una forma efectiva y práctica. Sin embargo, ciertas situaciones requieren que luego de identificar un área del problema sea necesario analizar algunos detalles de los datos resumidos.
La tecnología OLAP en general y O3 como una implementación de esta tecnología no está orientada a manejar estos niveles de detalle dentro de la información que se utiliza para el análisis. Entre otras razones porque no todo el conjunto de información disponible es interesante de analizar con mayor detalle, por lo que las consultas realizadas para obtener esta información están asociadas a la tecnología OLTP.
Esto último alienta la idea de que la información de detalle permanezca en las bases de datos y sea consultada sólo cuando es necesario. Es así que han surgido funcionalidades como el O3 Query (Drill Through) para realizar este tipo de consultas de una forma sencilla para los usuarios de herramientas OLAP.
Drill Through proviene del hecho de las operaciones típicas asociadas a las herramientas OLAP son: Drill Up, Drill Down, Drill To en referencia a subir, bajar o ir a determinado lugar en una dimensión, "Through" en este caso indica que estamos entrando dentro de la información idealizando lo mencionado anteriormente.
¿Que significa definir el O3 Query Studio?
Definir el O3 Query significa definir una consulta SQL que debe ejecutarse para obtener determinada información de detalle. IdeaSoft O3 Performance Suite permite asociar a cada datamart un conjunto de consultas para acceder a datos no incluidos en el modelo multidimensional.
Ejemplifiquemos esto último. Supongamos un clásico ejemplo de ventas (claramente muy simplificado) donde las ventas se realizan en cierta fecha y a cierto cliente. Un datamart generado para el modelo multidimensional propuesto no tiene detalle individual por venta, dado que para lograr esto una dimensión Ventas(id_venta) debería estar presente.
El hecho de no incluir los detalles de las ventas facilita el análisis de un gran volumen de datos. Sin embargo puede surgir la necesidad de identificar por ejemplo a través del número de factura, cuáles fueron las ventas en determinado día. Aquí es donde aparece la funcionalidad conocida como Drill Through, que nos permite expresar que existe un nivel de datos detallados, llamado por ejemplo "Detalle de Ventas" que resulta de ejecutar la siguiente consulta sobre la base de datos:
SELECT id_venta, fecha, id_cliente, importe_bruto, importe_neto FROM ventas
Esta consulta devuelve como resultado el conjunto total de ventas, por lo que debemos establecer restricciones en la misma para obtener un subconjunto de las ventas (por ejemplo para un día y cliente en particular).
Si por ejemplo nos interesa analizar las ventas del cliente con identificación "1" para el mes de "Enero del 2003", información que obtuvimos al navegar el datamart llegando al año, el mes y el cliente, la consulta que nos interesa realizar entonces sería similar a la siguiente:
SELECT id_venta, fecha, id_cliente, importe_bruto, importe_neto FROM ventas WHERE Year(fecha) = 2003 AND Month(fecha) = 1 AND id_cliente = 1
Para expresar esto desde O3 debemos indicar los valores que están seleccionados en el dtamart para que sean traducidos a condiciones de filtros en la consulta.
Para ello agregaremos a la definición lo siguiente:
- Relacionada con la dimensión "fecha" del modelo multidimensional y en particular con el primer nivel (el año), se encuentra que "Year(fecha) = ?" es la condición que se debe agregar para filtrar el año de la fecha. El símbolo ? indica dónde debe sustituirse el valor seleccionado en el cubo, en este caso el año 2003.
- Relacionada con la dimensión "fecha" pero en este caso con el segundo nivel se encuentra la condición "Month(fecha) = ?".
- Relacionada con la dimensión "clientes", en el primer nivel, la condición relacionada es "id_cliente = ?".
Este mecanismo permite crear consultas extremadamente potentes que se vinculan con el datamart de O3 permitiendo parametrizar las condiciones que deben agregarse en cada caso. Es importante destacar que es necesario indicar expresamente en qué niveles de la dimensión estarán dados los valores para filtrar la consulta.
Como resultado de esto, O3 gregará a la consulta las condiciones que sean necesarias dependiendo si el usuario ha filtrado o no determinados elementos en el momento en que realiza la consulta de O3 Query.