OLAP-CUBE (informes de gestión dinámica). Introducción al análisis multivariado

En general, todo especialista sabe qué es OLAP hoy. Al menos, los conceptos de "OLAP" y "datos multidimensionales" están firmemente conectados en nuestras mentes. Sin embargo, espero que el hecho de que este tema se vuelva a plantear sea aprobado por la mayoría de los lectores, porque para que la idea de algo no quede obsoleta con el tiempo, es necesario comunicarse periódicamente con gente inteligente o leer artículos en una buena publicación...

Almacenes de datos (lugar de OLAP en la estructura de información de la empresa)

El término "OLAP" está indisolublemente ligado al término "almacén de datos" (Data Warehouse).

Esta es la definición formulada por el “padre fundador” del almacenamiento de datos, Bill Inmon: “Un almacén de datos es una colección de datos inmutables, de dominio específico y con plazos determinados para respaldar la toma de decisiones de gestión”.

Los datos del almacén provienen de sistemas operativos (sistemas OLTP), que están diseñados para automatizar los procesos comerciales. Además, el repositorio se puede reponer a partir de fuentes externas, como informes estadísticos.

¿Por qué construir almacenes de datos? Después de todo, contienen información obviamente redundante que ya “vive” en bases de datos o archivos del sistema operativo. La respuesta puede ser breve: es imposible o muy difícil analizar directamente los datos de los sistemas operativos. Esto se debe a varias razones, incluida la fragmentación de los datos, su almacenamiento en diferentes formatos DBMS y en diferentes "rincones" de la red corporativa. Pero incluso si una empresa almacena todos sus datos en un servidor de base de datos central (lo cual es extremadamente raro), es casi seguro que un analista no comprenderá sus estructuras complejas y a veces confusas. El autor tiene una experiencia bastante triste al intentar "alimentar" a analistas hambrientos con datos "en bruto" de sistemas operativos; resultó ser "demasiado para ellos".

Por tanto, el propósito del repositorio es proporcionar las “materias primas” para el análisis en un solo lugar y en una estructura simple y comprensible. Ralph Kimball, en el prefacio de su libro "The Data Warehouse Toolkit", escribe que si, después de leer el libro completo, el lector sólo comprende una cosa, es decir, que la estructura del almacén debe ser simple, el autor considerará su tarea terminada.

Hay una razón más que justifica la aparición de una instalación de almacenamiento separada: las consultas analíticas complejas de información operativa ralentizan el trabajo actual de la empresa, bloquean las tablas durante mucho tiempo y ocupan los recursos del servidor.

En mi opinión, un repositorio no significa necesariamente una acumulación gigantesca de datos; lo principal es que sea conveniente para el análisis. En general, existe un término distinto para las pequeñas instalaciones de almacenamiento: Data Marts (quioscos de datos), pero en nuestra práctica rusa no se oye a menudo.

OLAP: una práctica herramienta de análisis

Centralización y estructuración conveniente no es todo lo que necesita un analista. Todavía necesita una herramienta para ver y visualizar información. Los informes tradicionales, incluso aquellos creados en un único repositorio, carecen de una cosa: flexibilidad. No se pueden "torcer", "expandir" ni "contraer" para obtener la vista deseada de los datos. Por supuesto, puede llamar a un programador (si quiere venir), y él (si no está ocupado) redactará un nuevo informe lo suficientemente rápido, digamos en una hora (estoy escribiendo esto y no creo (lo hago yo mismo; en la vida esto no sucede tan rápido; démosle tres horas). Resulta que un analista no puede probar más de dos ideas por día. Y a él (si es un buen analista) se le pueden ocurrir varias ideas de este tipo por hora. Y cuantos más “porciones” y “secciones” de datos ve el analista, más ideas tiene, lo que, a su vez, requiere cada vez más “porciones” para su verificación. ¡Si tan solo tuviera una herramienta que le permitiera expandir y contraer datos de manera simple y conveniente! OLAP actúa como tal herramienta.

Aunque OLAP no es un atributo necesario de un almacén de datos, se utiliza cada vez más para analizar la información acumulada en el almacén.

Los componentes incluidos en un repositorio típico se muestran en la Fig. 1.

Arroz. 1. Estructura del almacén de datos

Los datos operativos se recopilan de diversas fuentes, se limpian, se integran y se almacenan en un almacén relacional. Además, ya están disponibles para su análisis mediante diversas herramientas de generación de informes. Luego, los datos (total o parcialmente) se preparan para el análisis OLAP. Pueden cargarse en una base de datos OLAP especial o almacenarse en un almacenamiento relacional. Su elemento más importante son los metadatos, es decir, información sobre la estructura, ubicación y transformación de los datos. Gracias a ellos, se garantiza una interacción eficaz de los distintos componentes del almacenamiento.

En resumen, podemos definir OLAP como un conjunto de herramientas para el análisis multidimensional de datos acumulados en un almacén. Teóricamente, las herramientas OLAP se pueden aplicar directamente a los datos operativos o sus copias exactas(para no molestar a los usuarios operativos). Pero con esto corremos el riesgo de pisar el rastrillo ya descrito anteriormente, es decir, comenzar a analizar datos operativos que no son directamente adecuados para el análisis.

Definición y conceptos básicos de OLAP.

Primero, descifremos: OLAP es procesamiento analítico en línea, es decir, análisis de datos operativos. Los 12 principios que definen a OLAP fueron formulados en 1993 por E. F. Codd, el “inventor” de las bases de datos relacionales. Posteriormente, su definición se transformó en la llamada prueba FASMI, que requiere que la aplicación OLAP brinde la capacidad de analizar rápidamente información multidimensional compartida ().

prueba FASMI

Rápido(Rápido): el análisis debe realizarse con la misma rapidez en todos los aspectos de la información. El tiempo de respuesta aceptable es de 5 segundos o menos.

Análisis(Análisis): debe ser posible realizar tipos básicos de análisis numéricos y estadísticos, predefinidos por el desarrollador de la aplicación o libremente definidos por el usuario.

Compartido(Compartido): muchos usuarios deben tener acceso a los datos, mientras que es necesario controlar el acceso a la información confidencial.

Multidimensional(Multidimensional) es la característica principal y más esencial de OLAP.

Información(Información): la aplicación debe poder acceder a cualquier información necesaria, independientemente de su volumen y ubicación de almacenamiento.

OLAP = Vista multidimensional = Cubo

OLAP proporciona medios cómodos y rápidos para acceder, ver y analizar información empresarial. El usuario recibe un modelo de datos natural e intuitivo, organizándolos en forma de cubos multidimensionales (Cubes). Los ejes del sistema de coordenadas multidimensional son los principales atributos del proceso de negocio analizado. Por ejemplo, para ventas podría ser producto, región, tipo de comprador. El tiempo se utiliza como una de las dimensiones. En las intersecciones de los ejes - dimensiones (Dimensiones) - hay datos que caracterizan cuantitativamente el proceso - medidas (Medidas). Pueden ser volúmenes de ventas en piezas o en términos monetarios, saldos de existencias, costos, etc. Un usuario que analiza la información puede "cortar" el cubo en diferentes direcciones, obtener un resumen (por ejemplo, por año) o, por el contrario, detallado (por semana). ) información y realizar otras manipulaciones que le vengan a la mente durante el proceso de análisis.

Como medidas en el cubo tridimensional que se muestra en la Fig. 2, se utilizan los montos de ventas y el tiempo, el producto y la tienda se utilizan como dimensiones. Las mediciones se presentan en niveles específicos de agrupación: los productos se agrupan por categoría, las tiendas por país y los datos de sincronización de transacciones por mes. Un poco más adelante veremos con más detalle los niveles de agrupación (jerarquía).


Arroz. 2. Ejemplo de cubo

"Cortar" un cubo

Incluso un cubo tridimensional es difícil de mostrar en la pantalla de una computadora de modo que los valores de las medidas de interés sean visibles. ¿Qué podemos decir de los cubos de más de tres dimensiones? Para visualizar los datos almacenados en un cubo, por regla general, se utilizan vistas familiares bidimensionales, es decir, tabulares, con títulos jerárquicos complejos de filas y columnas.

Se puede obtener una representación bidimensional de un cubo "cortándolo" en uno o más ejes (dimensiones): fijamos los valores de todas las dimensiones excepto dos, y obtenemos una tabla bidimensional normal. El eje horizontal de la tabla (encabezados de columna) representa una dimensión, el eje vertical (encabezados de fila) representa otra y las celdas de la tabla representan los valores de las medidas. En este caso, un conjunto de medidas se considera en realidad como una de las dimensiones: seleccionamos una medida para mostrar (y luego podemos colocar dos dimensiones en los encabezados de fila y columna), o mostramos varias medidas (y luego una de las Los ejes de la tabla estarán ocupados por los nombres de las medidas y el otro por los valores de la única dimensión "sin cortar").

Eche un vistazo a la figura. 3: aquí hay una porción bidimensional del cubo para una medida: Ventas unitarias (piezas vendidas) y dos dimensiones "sin cortar": Tienda (Tienda) y Tiempo (Tiempo).


Arroz. 3. Rebanada de cubo 2D para una medida

En la Fig. La Figura 4 muestra solo una dimensión "sin cortar": Tienda, pero muestra los valores de varias medidas: Ventas unitarias (unidades vendidas), Ventas en tienda (cantidad de venta) y Costo de tienda (gastos de tienda).


Arroz. 4. Corte de cubo 2D para múltiples medidas

También es posible una representación bidimensional de un cubo cuando más de dos dimensiones permanecen "sin cortar". En este caso, dos o más dimensiones del cubo "cortado" se colocarán en los ejes de corte (filas y columnas); consulte la Fig. 5.


Arroz. 5. Corte de cubo 2D con múltiples dimensiones en un eje

Etiquetas

Los valores "dispuestos" a lo largo de las dimensiones se denominan miembros o etiquetas. Las etiquetas se utilizan tanto para "cortar" el cubo como para limitar (filtrar) los datos seleccionados - cuando en una dimensión que permanece "sin cortar" no nos interesan todos los valores, sino un subconjunto de ellos, por ejemplo, tres ciudades. entre varias docenas. Los valores de etiqueta aparecen en la vista de cubo 2D como encabezados de fila y columna.

Jerarquías y niveles

Las etiquetas se pueden combinar en jerarquías que constan de uno o más niveles. Por ejemplo, las etiquetas de la dimensión Tienda se agrupan naturalmente en una jerarquía con niveles:

País

Estado

Ciudad

Almacenar.

Los valores agregados se calculan según los niveles de jerarquía, por ejemplo, el volumen de ventas para EE. UU. (nivel "País") o para California (nivel "Estado"). Es posible implementar más de una jerarquía en una dimensión, por ejemplo, para el tiempo: (Año, Trimestre, Mes, Día) y (Año, Semana, Día).

Arquitectura de aplicaciones OLAP

Todo lo dicho anteriormente sobre OLAP se relaciona esencialmente con la presentación multidimensional de datos. La forma en que se almacenan los datos, en términos generales, no concierne ni al usuario final ni a los desarrolladores de la herramienta que utiliza el cliente.

La multidimensionalidad en las aplicaciones OLAP se puede dividir en tres niveles:

  • Representación de datos multidimensionales: herramientas de usuario final que proporcionan visualización y manipulación de datos multidimensionales; La capa de representación multidimensional se abstrae de la estructura física de los datos y los trata como multidimensionales.
  • El procesamiento multidimensional es un medio (lenguaje) para formular consultas multidimensionales (el lenguaje relacional tradicional SQL no es adecuado aquí) y un procesador que puede procesar y ejecutar dicha consulta.
  • El almacenamiento multidimensional es un medio para organizar físicamente datos que garantiza la ejecución eficiente de consultas multidimensionales.

Los dos primeros niveles son obligatorios en todas las herramientas OLAP. El tercer nivel, aunque está muy extendido, no es necesario, ya que los datos para una representación multidimensional pueden extraerse de estructuras relacionales ordinarias; En este caso, el procesador de consultas multidimensional traduce consultas multidimensionales en consultas SQL que ejecuta el DBMS relacional.

Los productos OLAP específicos, por regla general, son una herramienta de representación de datos multidimensional, un cliente OLAP (por ejemplo, tablas dinámicas en Excel 2000 de Microsoft o ProClarity de Knosys) o un servidor DBMS multidimensional, un servidor OLAP (por ejemplo, Oracle Express Server o servicios Microsoft OLAP).

La capa de procesamiento multidimensional generalmente está integrada en el cliente OLAP y/o servidor OLAP, pero se puede aislar en su forma pura, como el componente Pivot Table Service de Microsoft.

Aspectos técnicos del almacenamiento de datos multidimensionales.

Como se mencionó anteriormente, las herramientas de análisis OLAP también pueden extraer datos directamente de sistemas relacionales. Este enfoque era más atractivo en aquellos días en que los servidores OLAP no estaban incluidos en las listas de precios de los principales fabricantes de DBMS. Pero hoy en día, Oracle, Informix y Microsoft ofrecen servidores OLAP completos, e incluso aquellos administradores de TI a quienes no les gusta crear un "zoológico" de software de diferentes fabricantes en sus redes pueden comprarlos (o mejor dicho, hacer la solicitud correspondiente a la dirección de la empresa) servidor OLAP de la misma marca que el servidor de base de datos principal.

Los servidores OLAP, o servidores de bases de datos multidimensionales, pueden almacenar sus datos multidimensionales de diferentes maneras. Antes de considerar estos métodos, es necesario hablar de un aspecto tan importante como es el almacenamiento de unidades. El hecho es que en cualquier almacén de datos, tanto ordinario como multidimensional, junto con los datos detallados extraídos de los sistemas operativos, también se almacenan indicadores resumidos (indicadores agregados, agregaciones), como la suma de los volúmenes de ventas por mes, por categoría de bienes, etc. Los agregados se almacenan explícitamente con el único propósito de acelerar la ejecución de consultas. De hecho, por un lado, por regla general, se acumula una gran cantidad de datos en el almacén y, por otro lado, los analistas en la mayoría de los casos no están interesados ​​​​en indicadores detallados, sino generalizados. Y si hubiera que sumar millones de ventas individuales cada vez para calcular las ventas totales del año, lo más probable es que la velocidad sería inaceptable. Por lo tanto, al cargar datos en una base de datos multidimensional, se calculan y guardan todos los indicadores totales o parte de ellos.

Pero, como sabes, hay que pagar por todo. Y por la velocidad de procesamiento de solicitudes de datos resumidos, hay que pagar por un aumento en el volumen de datos y el tiempo de carga. Además, un aumento en el volumen puede ser literalmente catastrófico: en una de las pruebas estándar publicadas, un cálculo completo de agregados para 10 MB de datos originales requirió 2,4 GB, es decir, ¡los datos crecieron 240 veces! El grado de "hinchazón" de los datos al calcular agregados depende del número de dimensiones del cubo y de la estructura de estas dimensiones, es decir, de la relación entre el número de "padres" e "hijos" en diferentes niveles de medición. Para solucionar el problema de almacenar unidades, en ocasiones se utilizan. circuitos complejos, que permiten lograr un aumento significativo en el rendimiento de las consultas al calcular no todos los agregados posibles.

Ahora sobre las diversas opciones para almacenar información. Tanto los datos granulares como los agregados se pueden almacenar en estructuras relacionales o multidimensionales. El almacenamiento multidimensional le permite tratar los datos como una matriz multidimensional, lo que garantiza cálculos igualmente rápidos de los indicadores totales y diversas transformaciones multidimensionales en cualquiera de las dimensiones. Hace algún tiempo, los productos OLAP admitían almacenamiento relacional o multidimensional. Hoy en día, por regla general, el mismo producto proporciona ambos tipos de almacenamiento, así como un tercer tipo: mixto. Se aplican los siguientes términos:

  • MOLAP(OLAP multidimensional): tanto los datos detallados como los agregados se almacenan en una base de datos multidimensional. En este caso, se obtiene la mayor redundancia, ya que los datos multidimensionales contienen completamente datos relacionales.
  • ROLAP(OLAP relacional): los datos detallados permanecen donde “vivían” originalmente: en la base de datos relacional; los agregados se almacenan en la misma base de datos en tablas de servicios creadas especialmente.
  • HOLA(OLAP híbrido): los datos detallados permanecen en su lugar (en una base de datos relacional) y los agregados se almacenan en una base de datos multidimensional.

Cada uno de estos métodos tiene sus propias ventajas y desventajas y debe utilizarse según las condiciones: el volumen de datos, la potencia del DBMS relacional, etc.

Al almacenar datos en estructuras multidimensionales, existe un problema potencial de "inflación" debido al almacenamiento de valores vacíos. Después de todo, si en una matriz multidimensional se reserva espacio para todas las combinaciones posibles de etiquetas de dimensión, pero en realidad solo se llena una pequeña parte (por ejemplo, una cantidad de productos se vende solo en una pequeña cantidad de regiones), entonces la mayoría de los El cubo estará vacío, aunque el espacio estará ocupado. Los productos OLAP modernos pueden solucionar este problema.

Continuará. En el futuro, hablaremos de productos OLAP específicos producidos por fabricantes líderes.

OLAP (Procesamiento analítico en línea) es un método de procesamiento electrónico de datos analíticos que representa la organización de datos en categorías jerárquicas utilizando totales precalculados. Los datos OLAP están organizados jerárquicamente y se almacenan en cubos en lugar de tablas. Los cubos OLAP son un conjunto de datos multidimensional con ejes que contienen parámetros y celdas que contienen datos agregados dependientes de parámetros. Los cubos están diseñados para análisis complejos y multidimensionales de grandes volúmenes de datos porque solo proporcionan resultados resumidos para la generación de informes en lugar de gran número registros separados.

El concepto de OLAP fue descrito en 1993 por el famoso investigador de bases de datos y autor del modelo de datos relacionales E. F. Codd. Actualmente, el soporte OLAP está implementado en muchos DBMS y otras herramientas.

Un cubo OLAP contiene dos tipos de datos:

· valores totales, valores para los cuales desea resumir, que representan campos de datos calculados;

· información descriptiva que representa mediciones o dimensiones. La información descriptiva normalmente se organiza en niveles de detalle. Por ejemplo: “Año”, “Trimestre”, “Mes” y “Día” en la dimensión “Tiempo”. La organización de los campos en niveles de detalle permite a los usuarios de informes elegir el nivel de detalle que desean ver, comenzando con datos resumidos de alto nivel y luego profundizando hasta una vista más detallada, y viceversa.

Las herramientas de Microsoft Query también permiten crear cubos OLAP a partir de una consulta que carga datos de una base de datos relacional como Microsoft Access, transformando una tabla lineal en una jerarquía estructurada (cubo).

El Asistente para crear cubos OLAP es una herramienta integrada de Microsoft Query. Para crear un cubo OLAP basado en una base de datos relacional, debe completar los siguientes pasos antes de ejecutar el asistente.

1. Determine la fuente de datos (ver Figura 6.1).

2. Usando Microsoft Query, cree una consulta, incluyendo solo aquellos campos que serán campos de datos o campos de dimensiones de un cubo OLAP; si un campo en un cubo se usa más de una vez, entonces se debe incluir en la consulta la cantidad requerida. numero de veces.

3. En el último paso del asistente de creación de consultas, configure el interruptor en el elemento Crear un cubo OLAP a partir de una consulta determinada(ver Fig. 6.2) o después de crear la solicitud usando el menú Consulta directamente Archivo seleccione un equipo Crear cubo OLAP, después de lo cual se iniciará el Asistente para crear cubos OLAP.

El asistente para crear cubos OLAP consta de tres pasos.

En el primer paso del asistente (ver Fig. 6.6) el Campos de información– campos calculados para los cuales se deben determinar los valores totales.



Arroz. 6.6. Definición de campos de datos

El asistente coloca los campos calculados esperados (generalmente campos numéricos) en la parte superior de la lista, los verifica y determina la función resultante de estos campos, generalmente: Suma. Al seleccionar campos de datos, se debe seleccionar al menos un campo como campo calculado y al menos un campo debe dejarse sin marcar para determinar la dimensión.

Al crear un cubo OLAP, puede utilizar cuatro funciones de resumen: Suma, Número(número de valores), Mínimo, Máximo para campos numéricos y una función Número para todos los demás campos. Si desea utilizar varias funciones de resumen diferentes del mismo campo, ese campo debe incluirse en la consulta la cantidad de veces requerida.

El nombre de un campo calculado se puede cambiar en una columna. Nombre del campo de datos.

En el segundo paso del asistente, se determinan los datos descriptivos y sus dimensiones (ver Fig. 6.7). Para seleccionar un campo de medición, debe de la lista Campos de origen arrastre el campo de dimensión de nivel superior deseado a la lista Mediciones al área marcada como Arrastra los campos aquí para crear dimensiones.. Para crear un cubo OLAP, debe definir al menos una dimensión. En el mismo paso del asistente, puede utilizar el menú contextual para cambiar el nombre del campo de dimensión o nivel.

Arroz. 6.7. Definición de campos de dimensión

Los campos que contienen datos aislados o discretos y no pertenecen a una jerarquía se pueden definir como dimensiones de un solo nivel. Sin embargo, el cubo será más eficiente si algunos de los campos se organizan en niveles. Para crear un nivel como parte de una dimensión, arrastre un campo de la lista Campos de origen en un campo que es una dimensión o nivel. Los campos que contienen información más detallada deben colocarse en niveles inferiores. Por ejemplo, en la Figura 6.7 el campo Título profesional es el nivel del campo Nombre de Departamento.

Para mover un campo a un nivel inferior o superior nivel alto, debe arrastrarlo a un campo inferior o superior dentro de la dimensión. Para mostrar u ocultar niveles, utilice los botones o respectivamente.

Si utiliza campos de fecha u hora como dimensión de nivel superior, el Asistente para cubos OLAP crea automáticamente niveles para esas dimensiones. Luego, el usuario puede seleccionar qué niveles deben aparecer en los informes. Por ejemplo, puede seleccionar semanas, trimestres y años, o meses (consulte la Figura 6.7).

Recuerde que el asistente crea automáticamente niveles para los campos de fecha y hora sólo cuando crea una dimensión de nivel superior; Al agregar estos campos como subniveles de una dimensión, no se crean niveles automáticos.

En el tercer paso del asistente, se determina el tipo de cubo creado por el asistente, con tres opciones posibles (ver Fig. 6.8).

Arroz. 6.8. Seleccionar el tipo de cubo que se creará en el tercer paso del asistente

· Las dos primeras opciones implican crear un cubo cada vez que abres un informe (si el cubo se ve desde Excel, entonces estamos hablando de una tabla dinámica). En este caso, el expediente de solicitud y el expediente definiciones de cubo *.oqy, que contiene instrucciones para crear un cubo. El archivo *.oqy se puede abrir en Excel para crear informes basados ​​en el cubo y, si necesita realizar cambios en el cubo, puede abrirlo con Consulta para ejecutar nuevamente el Asistente para crear cubos.

De forma predeterminada, los archivos de definición de cubo, como los archivos de consulta, se almacenan en la carpeta de perfil de usuario en Datos de aplicación\Microsoft\Que-ries. Al guardar un archivo *.oqy en la carpeta estándar, el nombre del archivo de definición del cubo se muestra en la pestaña cubos OLAP al abrir una nueva consulta en Microsoft Query o al seleccionar un comando Crear una solicitud(menú Datos, submenú Importar datos externos) en Microsoft Excel.

· En caso de elegir la tercera opción de tipo cubo Guardar un archivo de cubo que contiene todos los datos del cubo, se recuperan todos los datos del cubo y se crea un archivo de cubo con la extensión * en una ubicación especificada por el usuario .cachorro, en el que se almacenan estos datos. Este archivo no se crea inmediatamente cuando se hace clic en el botón Listo; el archivo se crea cuando guarda la definición del cubo en un archivo o cuando crea un informe basado en el cubo.

La elección del tipo de cubo está determinada por varios factores: la cantidad de datos que contiene el cubo; el tipo y complejidad de los informes que se crearán en función del cubo; recursos del sistema (memoria y espacio en disco), etc.

Se debe crear un archivo de cubo *.cub independiente en los siguientes casos:

1) para informes interactivos que se cambian con frecuencia si hay suficiente espacio en disco;

2) cuando necesite guardar el cubo en un servidor de red para proporcionar acceso a él a otros usuarios al crear informes. Un archivo de cubo puede proporcionar datos específicos de la base de datos de origen y al mismo tiempo omitir datos confidenciales o confidenciales a los que desea impedir que otros usuarios accedan.

En una tabla dinámica estándar, los datos de origen se almacenan en su disco duro local. De esta manera, siempre podrás gestionarlos y reorganizarlos, incluso sin acceso a la red. Pero esto no se aplica de ninguna manera a las tablas dinámicas OLAP. En las tablas dinámicas OLAP, el caché nunca se almacena en el disco duro local. Por lo tanto, inmediatamente después de desconectarse de red local su tabla dinámica ya no funcionará. No podrás mover ni un solo campo en él.

Si aún necesita analizar datos OLAP después de desconectarse, cree un cubo de datos sin conexión. Un cubo de datos sin conexión es un archivo independiente que es una caché de tabla dinámica y almacena datos OLAP que se ven después de desconectarse de la red local. Los datos OLAP copiados en una tabla dinámica se pueden imprimir; esto se describe en detalle en el sitio web http://everest.ua.

Para crear un cubo de datos independiente, primero cree una tabla dinámica OLAP. Coloque el cursor dentro de la tabla dinámica y haga clic en el botón Herramientas OLAP en la pestaña contextual Herramientas, que forma parte del grupo de pestañas contextuales Herramientas de tabla dinámica. Seleccione el comando OLAP sin conexión (Fig. 9.8).

Aparece en la pantalla el cuadro de diálogo Configuración del cubo de datos OLAP sin conexión. Haga clic en el botón Crear archivo de datos sin conexión. Ha iniciado el Asistente para crear archivos de cubo de datos. Haga clic en el botón Siguiente para continuar con el procedimiento.

Primero debe especificar las dimensiones y niveles que se incluirán en el cubo de datos. En el cuadro de diálogo, debe seleccionar los datos que se importarán desde la base de datos OLAP. La idea es especificar solo aquellas dimensiones que serán necesarias después de desconectar la computadora de la red local. Cuantas más dimensiones especifique, más tamaño más grande tendrá un cubo de datos autónomo.

Haga clic en el botón Siguiente para pasar al siguiente cuadro de diálogo del asistente. Esto le brinda la posibilidad de especificar miembros o elementos de datos que no se incluirán en el cubo. En particular, no necesitará la medida Ventas por Internet-Importe extendido, por lo que su casilla de verificación estará desactivada en la lista. Una casilla de verificación desactivada indica que el elemento especificado no se importará y ocupará espacio innecesario en su disco duro local.

En el último paso, especifique la ubicación y el nombre del cubo de datos. En nuestro caso, el archivo del cubo se llamará MyOfflineCube.cub y estará ubicado en la carpeta Trabajo.

Los archivos de cubo de datos tienen la extensión .cachorro

Después de un tiempo, Excel guardará el cubo de datos sin conexión en la carpeta especificada. Para probarlo, haga doble clic en el archivo, lo que generará automáticamente un libro de Excel que contiene una tabla dinámica asociada con el cubo de datos seleccionado. Una vez creado, puede distribuir el cubo de datos sin conexión a todos los usuarios interesados ​​que estén trabajando en modo LAN sin conexión.

Una vez conectado a su red local, puede abrir el archivo del cubo de datos sin conexión y actualizarlo junto con la tabla de datos correspondiente. Principio fundamental indica que el cubo de datos fuera de línea se usa solo para funcionar cuando la red local está desconectada, pero es necesario actualizarlo después de restaurar la conexión. Intentar actualizar un cubo de datos sin conexión después de un error de conexión provocará un error.

Como parte de este trabajo, se considerarán las siguientes cuestiones:

  • ¿Qué son los cubos OLAP?
  • ¿Qué son medidas, dimensiones, jerarquías?
  • ¿Qué tipos de operaciones se pueden realizar en cubos OLAP?
El concepto de un cubo OLAP

El postulado principal de OLAP es la multidimensionalidad en la presentación de datos. En la terminología OLAP, el concepto de cubo, o hipercubo, se utiliza para describir un espacio de datos discretos multidimensional.

Cubo Es una estructura de datos multidimensional desde la cual un usuario-analista puede consultar información. Los cubos se crean a partir de hechos y dimensiones.

Datos- Se trata de datos sobre objetos y eventos de la empresa que estarán sujetos a análisis. Hechos del mismo tipo forman medidas. Una medida es el tipo de valor en una celda cúbica.

Mediciones- estos son los elementos de datos mediante los cuales se analizan los hechos. Una colección de dichos elementos forma un atributo de dimensión (por ejemplo, los días de la semana pueden formar un atributo de dimensión de tiempo). En tareas de análisis de negocio empresas comerciales Las dimensiones suelen incluir categorías como "tiempo", "ventas", "productos", "clientes", "empleados" y "ubicación geográfica". Las dimensiones suelen ser estructuras jerárquicas que representan categorías lógicas mediante las cuales el usuario puede analizar datos reales. Cada jerarquía puede tener uno o más niveles. Así, la jerarquía de la dimensión “ubicación geográfica” puede incluir los niveles: “país - región - ciudad”. En la jerarquía temporal podemos distinguir, por ejemplo, la siguiente secuencia de niveles: Una dimensión puede tener varias jerarquías (cada jerarquía de una dimensión debe tener el mismo atributo clave de la tabla de dimensiones).

Un cubo puede contener datos reales de una o más tablas de hechos y, en la mayoría de los casos, contiene varias dimensiones. Cualquier cubo dado suele tener un enfoque de análisis específico.

La Figura 1 muestra un ejemplo de un cubo diseñado para analizar las ventas de productos petrolíferos de una determinada empresa por región. este cubo tiene tres dimensiones (tiempo, producto y región) y una medida (ventas expresadas en términos monetarios). Los valores de las medidas se almacenan en las celdas correspondientes del cubo. Cada celda está identificada de forma única por un conjunto de miembros de cada dimensión, llamado tupla. Por ejemplo, la celda ubicada en la esquina inferior izquierda del cubo (contiene el valor $98399) está especificada por la tupla [julio de 2005, Lejano Oriente, Diesel]. Aquí el valor de 98.399 dólares muestra el volumen de ventas (en términos monetarios) de diésel en el Lejano Oriente en julio de 2005.

También vale la pena señalar que algunas celdas no contienen ningún valor: estas celdas están vacías porque la tabla de hechos no contiene datos para ellas.

Arroz. 1. Cubo con información sobre ventas de productos petrolíferos en varias regiones.

El objetivo final de la creación de dichos cubos es minimizar el tiempo de procesamiento de las consultas que extraen la información requerida de los datos reales. Para realizar esta tarea, los cubos normalmente contienen totales precalculados llamados agregaciones(agregaciones). Aquellos. el cubo cubre un espacio de datos más grande que el real; en él hay puntos lógicos calculados. Las funciones de agregación le permiten calcular los valores de puntos en el espacio lógico en función de los valores reales. Las funciones de agregación más simples son SUM, MAX, MIN, COUNT. Entonces, por ejemplo, usando la función MAX, para el cubo dado en el ejemplo, puede identificar cuándo se produjo el pico en las ventas de diésel en el Lejano Oriente, etc.

Otra característica específica de los cubos multidimensionales es la dificultad de determinar el origen. Por ejemplo, ¿cómo se establece el punto 0 para la dimensión Producto o Regiones? La solución a este problema es introducir un atributo especial que combine todos los elementos de la dimensión. Este atributo (creado automáticamente) contiene solo un elemento: Todo. Para funciones de agregación simples como la suma, el elemento Todo es equivalente a la suma de los valores de todos los elementos en el espacio real de una dimensión determinada.

Un concepto importante en un modelo de datos multidimensional es el subespacio o subcubo. Un subcubo es parte del espacio completo de un cubo en forma de una figura multidimensional dentro del cubo. Dado que el espacio multidimensional de un cubo es discreto y limitado, el subcubo también es discreto y limitado.

Operaciones en cubos OLAP

Se pueden realizar las siguientes operaciones en un cubo OLAP:

  • rebanada;
  • rotación;
  • consolidación;
  • detallando.
Rebanada(Figura 2) es un caso especial de subcubo. Este es un procedimiento para formar un subconjunto de una matriz de datos multidimensional correspondiente a un valor único de uno o más elementos de dimensión no incluidos en este subconjunto. Por ejemplo, para saber cómo progresaron las ventas de productos petrolíferos a lo largo del tiempo solo en una determinada región, concretamente en los Urales, es necesario fijar la dimensión "Productos" en el elemento "Ural" y extraer el subconjunto correspondiente (subcubo) del cubo.
  • Arroz. 2. rebanada de cubo OLAP

    Rotación(Figura 3): la operación de cambiar la ubicación de las mediciones presentadas en un informe o en la página mostrada. Por ejemplo, una operación de rotación puede implicar reorganizar las filas y columnas de una tabla. Además, al girar un cubo de datos, las dimensiones fuera de la tabla se mueven a su lugar con las dimensiones presentes en la página mostrada, y viceversa.

    Soy residente de Habr desde hace bastante tiempo, pero nunca he leído artículos sobre el tema de los cubos multidimensionales, OLAP y MDX, aunque el tema es muy interesante y cada día es más relevante.
    No es ningún secreto que durante ese corto período de desarrollo de bases de datos, contabilidad electrónica y sistemas en línea, se han acumulado muchos datos. Ahora también resulta interesante un análisis completo de los archivos y quizás un intento de predecir situaciones para modelos similares en el futuro.
    Por otro lado, las grandes empresas pueden acumular, incluso a lo largo de varios años, meses o incluso semanas, cantidades tan grandes de datos que incluso su análisis básico requiere enfoques extraordinarios y requisitos de hardware estrictos. Estos podrían ser sistemas de procesamiento de transacciones bancarias, agentes de bolsa, operadores telefónicos, etc.
    Creo que todo el mundo conoce dos enfoques diferentes para el diseño de bases de datos: OLTP y OLAP. El primer enfoque (Procesamiento de transacciones en línea - procesamiento de transacciones en tiempo real) está diseñado para la recopilación eficiente de datos en tiempo real, mientras que el segundo (Procesamiento analítico en línea - procesamiento analítico en tiempo real) está dirigido específicamente al muestreo y procesamiento de datos de la manera más eficiente. forma.

    Consideremos las principales capacidades de los cubos OLAP modernos y los problemas que resuelven (se toman como base Analysis Services 2005/2008):

    • acceso rápido a los datos
    • preagregación
    • jerarquía
    • trabajando con el tiempo
    • lenguaje de acceso a datos multidimensionales
    • KPI (indicadores clave de rendimiento)
    • minería de fechas
    • almacenamiento en caché multinivel
    • soporte multilingüe
    Entonces, veamos las capacidades de los cubos OLAP con un poco más de detalle.

    Un poco más sobre las posibilidades.

    Acceso rápido a los datos
    De hecho, el acceso rápido a los datos, independientemente del tamaño de la matriz, es la base de los sistemas OLAP. Dado que este es el enfoque principal, un almacén de datos generalmente se construye sobre principios diferentes a los de las bases de datos relacionales.
    Aquí, el tiempo para recuperar datos simples se mide en fracciones de segundo, y una consulta que exceda unos pocos segundos probablemente requiera optimización.

    Preagregación
    Además de recuperar rápidamente los datos existentes, también ofrece la posibilidad de preagregar los valores "más probables de utilizar". Por ejemplo, si tenemos registros diarios de ventas de un determinado producto, el sistema Tal vez También podemos preagregar montos de ventas mensuales y trimestrales, lo que significa que si solicitamos datos mensual o trimestralmente, el sistema nos dará el resultado instantáneamente. ¿Por qué no siempre ocurre la preagregación? Porque las combinaciones teóricamente posibles de bienes/tiempo/etc. puede haber una cantidad enorme, lo que significa que es necesario tener reglas claras para qué elementos se construirá la agregación y para cuáles no. En general, el tema de la toma en cuenta de estas reglas y el diseño real de las agregaciones es bastante extenso y merece un artículo aparte.

    Jerarquías
    Es natural que al analizar datos y elaborar informes finales sea necesario tener en cuenta que los meses se componen de días, y ellos mismos forman trimestres, y las ciudades se incluyen en áreas, que a su vez forman parte de regiones o países. . La buena noticia es que los cubos OLAP inicialmente ven los datos en términos de jerarquías y relaciones con otros parámetros de la misma entidad, por lo que crear y usar jerarquías en cubos es muy sencillo.

    trabajando con el tiempo
    Dado que el análisis de datos se realiza principalmente en áreas de tiempo, al tiempo se le da especial importancia en los sistemas OLAP, lo que significa que simplemente definiendo para el sistema dónde tenemos tiempo aquí, en el futuro podrá usar fácilmente funciones como Año hasta la fecha, Mes hasta la fecha. (el período desde el comienzo del año/mes hasta la fecha actual), Período Paralelo (el mismo día o mes, pero el año pasado), etc.

    Lenguaje de acceso a datos multidimensionales
    MDX(Expresiones multidimensionales): un lenguaje de consulta para un acceso simple y eficiente a estructuras de datos multidimensionales. Y eso lo dice todo: habrá algunos ejemplos a continuación.

    Indicadores clave de rendimiento (KPI)
    Indicadores clave de rendimiento Es un sistema de medición financiera y no financiera que ayuda a una organización a determinar el logro de objetivos estratégicos. Los indicadores clave de rendimiento pueden definirse de forma muy sencilla en los sistemas OLAP y utilizarse en informes.

    fecha de mina
    Procesamiento de datos(Minería de datos): esencialmente, identificar patrones ocultos o relaciones entre variables en grandes conjuntos de datos.
    El término inglés “Data Mining” no tiene una traducción inequívoca al ruso (minería de datos, minería de datos, minería de información, extracción de datos/información), por lo que en la mayoría de los casos se utiliza en el original. La traducción indirecta más exitosa es el término "minería de datos" (DMA). Sin embargo, este es un tema de consideración aparte, no menos interesante.

    Almacenamiento en caché multinivel
    En realidad, para garantizar la mayor velocidad de acceso a los datos, además de las complicadas estructuras y preagregaciones de datos, los sistemas OLAP admiten el almacenamiento en caché de varios niveles. Además de almacenar en caché consultas simples, también se almacenan en caché partes de los datos leídos del almacén, valores agregados y valores calculados. Por lo tanto, cuanto más tiempo trabaje con un cubo OLAP, más rápido comenzará a funcionar. También existe el concepto de "calentar el caché", una operación que prepara el sistema OLAP para trabajar con informes específicos, consultas o todos combinados.

    Soporte multilingüe
    Si si si. Como mínimo, Analysis Services 2005/2008 (aunque Enterprise Edition) admite de forma nativa el multilingüismo. Basta con proporcionar una traducción de los parámetros de cadena de sus datos y el cliente que especificó su idioma recibirá datos localizados.

    Cubos multidimensionales

    Entonces, ¿qué son exactamente estos cubos multidimensionales?
    Imaginemos un espacio tridimensional cuyos ejes son el Tiempo, los Productos y los Clientes.
    Un punto en dicho espacio indicará el hecho de que uno de los compradores compró un producto específico en un mes determinado.

    De hecho, el plano (o el conjunto de todos esos puntos) será el cubo y, en consecuencia, Tiempo, Productos y Clientes serán sus dimensiones.
    Es un poco más difícil imaginar (y dibujar) un cubo de cuatro dimensiones o más, pero la esencia no cambia y, lo más importante, para los sistemas OLAP no importa en absoluto en cuántas dimensiones trabajará (dentro de lo razonable). límites, por supuesto).

    Un poco de MDX

    Entonces, ¿cuál es la belleza de MDX? Lo más probable es que necesitemos describir no cómo queremos seleccionar los datos, sino Qué exactamente queremos.
    Por ejemplo,
    SELECCIONAR
    ( . ) EN COLUMNAS,
    ( ., . ) EN FILAS
    DE
    DÓNDE (., .)

    Lo que significa que quiero la cantidad de iPhones vendidos en junio y julio en Mozambique.
    Al mismo tiempo describo cual estos son los datos que quiero y Cómo Quiero verlos en el informe.
    Hermoso, ¿no?

    Aquí es un poco más complicado:

    CON MIEMBRO Gasto promedio COMO
    . / .
    SELECCIONAR
    (Gasto promedio) EN COLUMNAS,
    ( .., .. ) EN FILAS
    DE
    DÓNDE (.)

    * Este código fuente fue resaltado con Resaltador de código fuente.

    De hecho, primero determinamos la fórmula para calcular el "tamaño promedio de compra" e intentamos comparar quién (de qué género) gasta más dinero en una visita a la tienda Apple.

    El lenguaje en sí es extremadamente interesante tanto para estudiar como para utilizar, y quizás merezca mucha discusión.

    Conclusión

    De hecho, este artículo cubre muy poco, incluso de los conceptos básicos; yo lo llamaría un "aperitivo", una oportunidad para interesar a la comunidad Habra en este tema y desarrollarlo aún más. En cuanto al desarrollo, aquí hay un enorme campo sin explotar y estaré encantado de responder a todas sus preguntas.

    PD Esta es mi primera publicación sobre OLAP y la primera publicación sobre Habré; agradecería mucho recibir comentarios constructivos.
    Actualizar: Lo transferí a SQL, lo transferiré a OLAP en cuanto me permitan crear nuevos blogs.

    Etiquetas: Agregar etiquetas