El procesamiento analítico en línea , u OLAP ( / ˈ oʊ l æ p / ), es un enfoque para responder rápidamente consultas analíticas multidimensionales (MDA) en informática . [1] OLAP es parte de la categoría más amplia de inteligencia empresarial , que también abarca bases de datos relacionales , redacción de informes y minería de datos . [2] Las aplicaciones típicas de OLAP incluyen informes comerciales para ventas, marketing , informes de gestión, gestión de procesos de negocio (BPM), [3] presupuestación y previsión , informes financieros y áreas similares, con nuevas aplicaciones emergentes, como la agricultura . [4]
El término OLAP se creó como una ligera modificación del término tradicional de base de datos de procesamiento de transacciones en línea (OLTP). [5]
Las herramientas OLAP permiten a los usuarios analizar datos multidimensionales de forma interactiva desde múltiples perspectivas. OLAP consta de tres operaciones analíticas básicas: consolidación (acumulación), desglose y corte y corte. [6] : 402–403 La consolidación implica la agregación de datos que se pueden acumular y calcular en una o más dimensiones. Por ejemplo, todas las oficinas de ventas se agrupan en el departamento de ventas o en la división de ventas para anticipar las tendencias de ventas. Por el contrario, el desglose es una técnica que permite a los usuarios navegar a través de los detalles. Por ejemplo, los usuarios pueden ver las ventas de productos individuales que componen las ventas de una región. Cortar y cortar en cubitos es una función mediante la cual los usuarios pueden extraer (cortar) un conjunto específico de datos del cubo OLAP y ver (cortar en cubitos) los cortes desde diferentes puntos de vista. Estos puntos de vista a veces se denominan dimensiones (como observar las mismas ventas por vendedor, por fecha, por cliente, por producto, por región, etc.).
Las bases de datos configuradas para OLAP utilizan un modelo de datos multidimensional, lo que permite consultas analíticas y ad hoc complejas con un tiempo de ejecución rápido. [7] Toman prestados aspectos de las bases de datos de navegación , las bases de datos jerárquicas y las bases de datos relacionales.
OLAP suele contrastarse con OLTP (procesamiento de transacciones en línea), que generalmente se caracteriza por consultas mucho menos complejas, en un volumen mayor, para procesar transacciones en lugar de con fines de inteligencia empresarial o generación de informes. Mientras que los sistemas OLAP están optimizados en su mayoría para lectura, OLTP tiene que procesar todo tipo de consultas (lectura, inserción, actualización y eliminación).
El núcleo de cualquier sistema OLAP es un cubo OLAP (también llamado "cubo multidimensional" o hipercubo ). Consta de hechos numéricos llamados medidas que se clasifican por dimensiones . Las medidas se colocan en las intersecciones del hipercubo, que está abarcado por las dimensiones como un espacio vectorial . La interfaz habitual para manipular un cubo OLAP es una interfaz matricial, como las tablas dinámicas en un programa de hoja de cálculo, que realiza operaciones de proyección a lo largo de las dimensiones, como agregación o promedio.
Los metadatos del cubo generalmente se crean a partir de un esquema de estrella o de copo de nieve o una constelación de tablas de hechos en una base de datos relacional . Las medidas se derivan de los registros de la tabla de hechos y las dimensiones se derivan de las tablas de dimensiones .
Se puede considerar que cada medida tiene un conjunto de etiquetas o metadatos asociados a ella. Una dimensión es lo que describe estas etiquetas ; Proporciona información sobre la medida .
Un ejemplo simple sería un cubo que contiene las ventas de una tienda como medida y la fecha/hora como dimensión . Cada venta tiene una etiqueta de fecha/hora que describe más sobre esa venta.
Por ejemplo:
Tabla de datos de ventas+-------------+----------+| importe_venta | tiempo_id |+-------------+----------+ Dimensión de tiempo| 2008.10| 1234 |----+ +---------+-------------------++-------------+----------+ | | tiempo_id | marca de tiempo | | +---------+---------------------------------+ +---->| 1234 | 20080902 12:35:43 | +---------+---------------------------------+
La estructura multidimensional se define como "una variación del modelo relacional que utiliza estructuras multidimensionales para organizar datos y expresar las relaciones entre datos". [6] : 177 La estructura se divide en cubos y los cubos pueden almacenar y acceder a datos dentro de los límites de cada cubo. "Cada celda dentro de una estructura multidimensional contiene datos agregados relacionados con elementos a lo largo de cada una de sus dimensiones". [6] : 178 Incluso cuando se manipulan los datos, siguen siendo de fácil acceso y continúan constituyendo un formato de base de datos compacto. Los datos siguen estando interrelacionados. La estructura multidimensional es bastante popular para las bases de datos analíticas que utilizan aplicaciones de procesamiento analítico en línea (OLAP). [6] Las bases de datos analíticas utilizan estas bases de datos debido a su capacidad para brindar respuestas a consultas comerciales complejas rápidamente. Los datos se pueden ver desde diferentes ángulos, lo que brinda una perspectiva más amplia de un problema a diferencia de otros modelos. [8]
Se ha afirmado que, para consultas complejas, los cubos OLAP pueden producir una respuesta en aproximadamente el 0,1% del tiempo necesario para la misma consulta sobre datos relacionales OLTP . [9] [10] El mecanismo más importante en OLAP que le permite lograr tal rendimiento es el uso de agregaciones . Las agregaciones se crean a partir de la tabla de hechos cambiando la granularidad en dimensiones específicas y agregando datos a lo largo de estas dimensiones, utilizando una función agregada (o función de agregación ). El número de agregaciones posibles está determinado por cada combinación posible de granularidades de dimensiones.
La combinación de todas las agregaciones posibles y los datos base contiene las respuestas a cada consulta que se puede responder a partir de los datos. [11]
Debido a que normalmente hay muchas agregaciones que se pueden calcular, a menudo sólo se calcula completamente un número predeterminado; el resto se resuelven bajo demanda. El problema de decidir qué agregaciones (vistas) calcular se conoce como problema de selección de vistas. La selección de vistas puede estar limitada por el tamaño total del conjunto de agregaciones seleccionado, el tiempo para actualizarlas a partir de cambios en los datos base, o ambos. El objetivo de la selección de vistas suele ser minimizar el tiempo promedio para responder consultas OLAP, aunque algunos estudios también minimizan el tiempo de actualización. La selección de vista es NP-Completa . Se han explorado muchos enfoques para el problema, incluidos algoritmos codiciosos , búsqueda aleatoria, algoritmos genéticos y algoritmo de búsqueda A* .
Algunas funciones de agregación se pueden calcular para todo el cubo OLAP calculando previamente los valores para cada celda y luego calculando la agregación para un conjunto de celdas agregando estos agregados, aplicando un algoritmo de divide y vencerás al problema multidimensional para calcularlos de manera eficiente. [12] Por ejemplo, la suma general de un resumen es solo la suma de las subsumas en cada celda. Las funciones que se pueden descomponer de esta manera se denominan funciones de agregación descomponibles , e incluyen COUNT, MAX, MIN,
y SUM
, que se pueden calcular para cada celda y luego agregarlas directamente; éstas se conocen como funciones de agregación autodescomponibles. [13] En otros casos, la función agregada se puede calcular calculando números auxiliares para las celdas, sumando estos números auxiliares y finalmente calculando el número total al final; los ejemplos incluyen AVERAGE
(seguimiento de la suma y el recuento, división al final) y RANGE
(seguimiento del máximo y mínimo, resta al final). En otros casos, la función agregada no se puede calcular sin analizar todo el conjunto de una vez, aunque en algunos casos se pueden calcular aproximaciones; los ejemplos incluyen DISTINCT COUNT, MEDIAN,
y MODE
; por ejemplo, la mediana de un conjunto no es la mediana de las medianas de los subconjuntos. Estos últimos son difíciles de implementar eficientemente en OLAP, ya que requieren calcular la función agregada en los datos base, ya sea computándolos en línea (lento) o precalculándolos para posibles implementaciones (gran espacio).
Los sistemas OLAP se han categorizado tradicionalmente utilizando la siguiente taxonomía. [14]
MOLAP (procesamiento analítico en línea multidimensional) es la forma clásica de OLAP y a veces se lo denomina simplemente OLAP. MOLAP almacena estos datos en una matriz de almacenamiento multidimensional optimizada, en lugar de en una base de datos relacional.
Algunas herramientas MOLAP requieren el cálculo previo y el almacenamiento de datos derivados, como las consolidaciones, operación conocida como procesamiento. Estas herramientas MOLAP generalmente utilizan un conjunto de datos precalculado denominado cubo de datos . El cubo de datos contiene todas las respuestas posibles a un rango determinado de preguntas. Como resultado, tienen una respuesta muy rápida a las consultas. Por otro lado, la actualización puede llevar mucho tiempo dependiendo del grado de cálculo previo. El cálculo previo también puede conducir a lo que se conoce como explosión de datos.
Otras herramientas MOLAP, en particular aquellas que implementan el modelo de base de datos funcional, no calculan previamente los datos derivados, sino que realizan todos los cálculos a pedido, distintos de los que se solicitaron y almacenaron previamente en un caché.
Ventajas de MOLAP
Desventajas de MOLAP
Ejemplos de productos comerciales que utilizan MOLAP son Cognos Powerplay, Oracle Database OLAP Option , MicroStrategy , Microsoft Analysis Services , Essbase , TM1 , Jedox e icCube .
ROLAP trabaja directamente con bases de datos relacionales y no requiere cálculo previo. Los datos base y las tablas de dimensiones se almacenan como tablas relacionales y se crean nuevas tablas para contener la información agregada. Depende de un diseño de esquema especializado. Esta metodología se basa en la manipulación de los datos almacenados en la base de datos relacional para dar la apariencia de la funcionalidad tradicional de corte y corte de OLAP. En esencia, cada acción de cortar y cortar en cubitos equivale a agregar una cláusula "WHERE" en la declaración SQL. Las herramientas ROLAP no utilizan cubos de datos precalculados, sino que plantean la consulta a la base de datos relacional estándar y sus tablas para recuperar los datos necesarios para responder la pregunta. Las herramientas ROLAP cuentan con la capacidad de formular cualquier pregunta porque la metodología no se limita al contenido de un cubo. ROLAP también tiene la capacidad de profundizar hasta el nivel más bajo de detalle en la base de datos.
Si bien ROLAP utiliza una fuente de base de datos relacional, generalmente la base de datos debe diseñarse cuidadosamente para su uso. Una base de datos diseñada para OLTP no funcionará bien como base de datos ROLAP. Por lo tanto, ROLAP todavía implica crear una copia adicional de los datos. Sin embargo, dado que es una base de datos, se pueden utilizar una variedad de tecnologías para completar la base de datos.
En la industria OLAP, generalmente se percibe que ROLAP puede escalarse para grandes volúmenes de datos, pero sufre un rendimiento de consultas más lento en comparación con MOLAP. La Encuesta OLAP, la encuesta independiente más grande sobre todos los principales productos OLAP, realizada durante 6 años (2001 a 2006) ha encontrado consistentemente que las empresas que usan ROLAP reportan un rendimiento más lento que aquellas que usan MOLAP, incluso cuando se toman en consideración los volúmenes de datos.
Sin embargo, como ocurre con cualquier encuesta, existen una serie de cuestiones sutiles que deben tenerse en cuenta al interpretar los resultados.
Algunas empresas eligen ROLAP porque tienen la intención de reutilizar tablas de bases de datos relacionales existentes; estas tablas con frecuencia no estarán diseñadas de manera óptima para el uso de OLAP. La flexibilidad superior de las herramientas ROLAP permite que funcione este diseño poco óptimo, pero el rendimiento se ve afectado. Por el contrario, las herramientas MOLAP obligarían a que los datos se vuelvan a cargar en un diseño OLAP óptimo.
La compensación indeseable entre el coste adicional de ETL y el rendimiento lento de las consultas ha garantizado que la mayoría de las herramientas OLAP comerciales utilicen ahora un enfoque "OLAP híbrido" (HOLAP), que permite al diseñador del modelo decidir qué parte de los datos se almacenará en MOLAP y qué parte de los datos se almacenará en MOLAP. qué porción en ROLAP.
No existe un acuerdo claro en toda la industria sobre lo que constituye "OLAP híbrido", excepto que una base de datos dividirá los datos entre almacenamiento relacional y especializado. [15] Por ejemplo, para algunos proveedores, una base de datos HOLAP utilizará tablas relacionales para contener grandes cantidades de datos detallados y utilizará almacenamiento especializado para al menos algunos aspectos de las cantidades más pequeñas de datos más agregados o menos detallados. HOLAP aborda las deficiencias de MOLAP y ROLAP combinando las capacidades de ambos enfoques. Las herramientas HOLAP pueden utilizar tanto cubos precalculados como fuentes de datos relacionales.
En este modo, HOLAP almacena agregaciones en MOLAP para un rendimiento rápido de las consultas y datos detallados en ROLAP para optimizar el tiempo de procesamiento del cubo .
En este modo, HOLAP almacena una porción de datos, generalmente la más reciente (es decir, dividida por dimensión de tiempo) en MOLAP para un rendimiento rápido de las consultas, y los datos más antiguos en ROLAP. Además, podemos almacenar algunos dados en MOLAP y otros en ROLAP, aprovechando el hecho de que en un cuboide grande habrá subregiones densas y escasas. [dieciséis]
El primer producto que proporcionó almacenamiento HOLAP fue Holos , pero la tecnología también estuvo disponible en otros productos comerciales como Microsoft Analysis Services , Oracle Database OLAP Option , MicroStrategy y SAP AG BI Accelerator. El enfoque híbrido OLAP combina la tecnología ROLAP y MOLAP, beneficiándose de la mayor escalabilidad de ROLAP y el cálculo más rápido de MOLAP. Por ejemplo, un servidor HOLAP puede almacenar grandes volúmenes de datos detallados en una base de datos relacional, mientras que las agregaciones se mantienen en un almacén MOLAP separado. Los servicios OLAP de Microsoft SQL Server 7.0 admiten un servidor OLAP híbrido
Cada tipo tiene ciertos beneficios, aunque existe desacuerdo sobre los detalles específicos de los beneficios entre los proveedores.
A veces también se utilizan las siguientes siglas, aunque no están tan extendidas como las anteriores:
A diferencia de las bases de datos relacionales , que tenían SQL como lenguaje de consulta estándar y API generalizadas como ODBC , JDBC y OLEDB , en el mundo OLAP no hubo tal unificación durante mucho tiempo. La primera API estándar real fue OLE DB para la especificación OLAP de Microsoft , que apareció en 1997 e introdujo el lenguaje de consulta MDX . Varios proveedores de OLAP (tanto de servidor como de cliente) lo adoptaron. En 2001, Microsoft e Hyperion anunciaron la especificación XML para análisis , que fue respaldada por la mayoría de los proveedores de OLAP. Dado que también utilizaba MDX como lenguaje de consulta, MDX se convirtió en el estándar de facto. [26] Desde septiembre de 2011, LINQ se puede utilizar para consultar cubos SSAS OLAP desde Microsoft .NET. [27]
El primer producto que realizó consultas OLAP fue Express, que se lanzó en 1970 (y fue adquirido por Oracle en 1995 a Information Resources). [28] Sin embargo, el término no apareció hasta 1993 cuando fue acuñado por Edgar F. Codd , quien ha sido descrito como "el padre de la base de datos relacional". El artículo de Codd [1] fue el resultado de una breve tarea de consultoría que Codd realizó para la antigua Arbor Software (más tarde Hyperion Solutions , y en 2007 adquirida por Oracle), como una especie de golpe de marketing. La empresa había lanzado su propio producto OLAP, Essbase , un año antes. Como resultado, las "doce leyes del procesamiento analítico en línea" de Codd fueron explícitas en su referencia a Essbase. Hubo cierta controversia y cuando Computerworld se enteró de que Arbor le pagaba a Codd, se retractó del artículo. El mercado OLAP experimentó un fuerte crecimiento a finales de la década de 1990 con la entrada al mercado de docenas de productos comerciales. En 1998, Microsoft lanzó su primer servidor OLAP: Microsoft Analysis Services , que impulsó una amplia adopción de la tecnología OLAP y la generalizó.
Los clientes OLAP incluyen muchos programas de hojas de cálculo como Excel, aplicaciones web, SQL, herramientas de panel, etc. Muchos clientes admiten la exploración de datos interactiva donde los usuarios seleccionan dimensiones y medidas de interés. Algunas dimensiones se utilizan como filtros (para dividir y dividir los datos), mientras que otras se seleccionan como ejes de una tabla dinámica o un gráfico dinámico. Los usuarios también pueden variar el nivel de agregación (para desglosar o acumular) la vista mostrada. Los clientes también pueden ofrecer una variedad de widgets gráficos, como controles deslizantes, mapas geográficos, mapas de calor y más, que pueden agruparse y coordinarse como paneles. Una lista extensa de clientes aparece en la columna de visualización de la tabla de comparación de servidores OLAP .
A continuación se muestra una lista de los principales proveedores de OLAP en 2006, con cifras en millones de dólares estadounidenses . [29]
{{cite book}}
: |journal=
ignorado ( ayuda )