En informática , el procesamiento analítico en línea u OLAP ( / ˈoʊlæp / ) , es un enfoque para responder rápidamente a consultas analíticas multidimensionales (MDA). [1] El término OLAP se creó como una ligera modificación del término de base de datos tradicional procesamiento de transacciones en línea (OLTP). [2] 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 . [3] Las aplicaciones típicas de OLAP incluyen informes comerciales para ventas, marketing , informes de gestión, gestión de procesos comerciales (BPM), [4] presupuestación y previsión , informes financieros y áreas similares, con nuevas aplicaciones emergentes, como la agricultura . [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 (roll-up), desglose y segmentación. [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 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 por los detalles. Por ejemplo, los usuarios pueden ver las ventas por productos individuales que componen las ventas de una región. La segmentación es una característica mediante la cual los usuarios pueden extraer (segmentar) un conjunto específico de datos del cubo OLAP y ver (dividir) las porciones desde diferentes puntos de vista. Estos puntos de vista a veces se denominan dimensiones (como mirar las mismas ventas por vendedor, o por fecha, o por cliente, o por producto, o por región, etc.).
Las bases de datos configuradas para OLAP utilizan un modelo de datos multidimensional, lo que permite realizar consultas analíticas y ad hoc complejas con un tiempo de ejecución rápido. [7] Toman prestados aspectos de bases de datos de navegación , bases de datos jerárquicas y bases de datos relacionales.
OLAP se suele contrastar con OLTP (procesamiento de transacciones en línea), que generalmente se caracteriza por consultas mucho menos complejas, en un mayor volumen, para procesar transacciones en lugar de con fines de inteligencia empresarial o generación de informes. Mientras que los sistemas OLAP están optimizados principalmente para la lectura, OLTP tiene que procesar todo tipo de consultas (lectura, inserción, actualización y eliminación).
En el núcleo de cualquier sistema OLAP se encuentra un cubo OLAP (también llamado "cubo multidimensional" o hipercubo ). Consiste en 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 se crean normalmente a partir de un esquema en estrella o en forma de copo de nieve o de una constelación de hechos de tablas 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 pensar que cada medida tiene un conjunto de etiquetas o metadatos asociados. Una dimensión es lo que describe estas etiquetas ; proporciona información sobre la medida .
Un ejemplo sencillo sería un cubo que contiene las ventas de una tienda como medida y la fecha y la hora como dimensión . Cada venta tiene una etiqueta de fecha y hora que describe más sobre esa venta.
Por ejemplo:
Tabla de datos de ventas+-------------+----------+| monto_venta | id_tiempo |+-------------+----------+ Dimensión temporal| 2008.10| 1234 |----+ +---------+-------------------++-------------+----------+ | | id_de_tiempo | 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 los datos". [6] : 177 La estructura se divide en cubos y los cubos pueden almacenar y acceder a los datos dentro de los confines 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, sigue siendo fácil acceder a ellos y sigue 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 proporcionar respuestas a consultas comerciales complejas con rapidez. Los datos se pueden ver desde diferentes ángulos, lo que proporciona 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 alrededor del 0,1 % del tiempo requerido para la misma consulta en datos relacionales OLTP . [9] [10] El mecanismo más importante en OLAP que le permite lograr dicho 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 de agregación (o función de agregación ). El número de agregaciones posibles está determinado por cada combinación posible de granularidades de dimensión.
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 solo se calcula completamente un número predeterminado; el resto se resuelve a pedido. El problema de decidir qué agregaciones (vistas) calcular se conoce como el problema de selección de vista. La selección de vista puede estar restringida por el tamaño total del conjunto seleccionado de agregaciones, el tiempo para actualizarlas a partir de los cambios en los datos base o ambos. El objetivo de la selección de vista es típicamente 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 voraces , 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 de cada celda y luego calculando la agregación para una acumulación de celdas agregando estos agregados, aplicando un algoritmo de dividir y vencer al problema multidimensional para calcularlos de manera eficiente. [12] Por ejemplo, la suma total de una acumulación es simplemente 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 agregar directamente; estas se conocen como funciones de agregación autodescomponibles. [13]
En otros casos, la función de agregación se puede calcular calculando números auxiliares para celdas, agregando estos números auxiliares y, finalmente, calculando el número total al final; los ejemplos incluyen AVERAGE
(seguimiento de suma y recuento, división al final) y RANGE
(seguimiento de máximo y mínimo, resta al final). En otros casos, la función de agregación no se puede calcular sin analizar todo el conjunto a la 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 de manera eficiente en OLAP, ya que requieren calcular la función de agregación en los datos base, ya sea computándolos en línea (lento) o computándolos previamente para posibles implementaciones (espacio grande).
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 un almacenamiento de matriz multidimensional optimizado, 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, la operación conocida como procesamiento. Dichas herramientas MOLAP generalmente utilizan un conjunto de datos precalculados 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, particularmente 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, excepto aquellos que se solicitaron previamente y se almacenaron 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álculos previos. 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 de segmentación y corte de OLAP tradicional. En esencia, cada acción de segmentación y corte 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 tienen la capacidad de hacer cualquier pregunta porque la metodología no se limita al contenido de un cubo. ROLAP también tiene la capacidad de explorar hasta el nivel más bajo de detalle en la base de datos.
Si bien ROLAP utiliza una fuente de base de datos relacional, por lo general 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 aún implica la creación de una copia adicional de los datos. Sin embargo, dado que es una base de datos, se pueden utilizar diversas tecnologías para completarla.
En la industria OLAP, se suele considerar que ROLAP puede escalar grandes volúmenes de datos, pero que su rendimiento de consultas es más lento que MOLAP. La encuesta OLAP, la mayor encuesta independiente realizada entre todos los principales productos OLAP, que se ha llevado a cabo durante seis años (de 2001 a 2006), ha demostrado de forma constante que las empresas que utilizan ROLAP informan de un rendimiento más lento que las que utilizan MOLAP, incluso cuando se tienen en cuenta los volúmenes de datos.
Sin embargo, como ocurre con cualquier encuesta, hay 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 las tablas de bases de datos relacionales existentes; estas tablas con frecuencia no están diseñadas de manera óptima para su uso en OLAP. La flexibilidad superior de las herramientas ROLAP permite que este diseño menos que óptimo funcione, pero el rendimiento se ve afectado. Las herramientas MOLAP, por el contrario, obligarían a volver a cargar los datos en un diseño OLAP óptimo.
La compensación indeseable entre el costo adicional de ETL y el lento rendimiento de las consultas ha garantizado que la mayoría de las herramientas OLAP comerciales ahora utilicen 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 en ROLAP.
No existe un acuerdo claro en toda la industria sobre qué constituye un "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 almacenar las mayores 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 consultas y datos detallados en ROLAP para optimizar el tiempo de procesamiento del cubo .
En este modo, HOLAP almacena una parte de los datos, normalmente los más recientes (es decir, divididos por dimensión de tiempo) en MOLAP para un rendimiento de consulta rápido, 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 dispersas. [16]
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 OLAP híbrido 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.
Las siguientes siglas también se utilizan a veces, 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 , no hubo tal unificación en el mundo OLAP 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 servidores como clientes, 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 usaba 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 OLAP SSAS desde Microsoft .NET. [27]
El primer producto que realizó consultas OLAP fue Express, que se lanzó en 1970 (y Oracle lo adquirió en 1995 de Information Resources). [28] Sin embargo, el término no apareció hasta 1993, cuando fue acuñado por Edgar F. Codd , a quien se ha 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 ex 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 eran explícitas en su referencia a Essbase. Hubo cierta controversia posterior y cuando Computerworld se enteró de que Codd estaba pagado por Arbor, se retractó del artículo. El mercado OLAP experimentó un fuerte crecimiento a fines de la década de 1990 con docenas de productos comerciales que ingresaron al mercado. En 1998, Microsoft lanzó su primer servidor OLAP, Microsoft Analysis Services , que impulsó la adopción generalizada de la tecnología OLAP y la convirtió en algo común.
Los clientes OLAP incluyen muchos programas de hojas de cálculo como Excel, aplicaciones web, SQL, herramientas de panel de control, etc. Muchos clientes admiten la exploración de datos interactiva, en la que los usuarios seleccionan dimensiones y medidas de interés. Algunas dimensiones se utilizan como filtros (para segmentar 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 agrupar) de 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 se pueden agrupar y coordinar como paneles de control. En la columna de visualización de la tabla de comparación de servidores OLAP aparece una lista extensa de clientes .
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 )