¿Qué es el cubo Olap en Excel? Creando un proyecto SSAS. ¿Qué es el análisis y por qué es necesario?

Los sistemas de información de una empresa seria, por regla general, contienen aplicaciones diseñadas para análisis complejos de datos, su dinámica, tendencias, etc. En consecuencia, la alta dirección se convierte en el principal consumidor de los resultados del análisis. En última instancia, dicho análisis tiene como objetivo apoyar la toma de decisiones. Y para tomar cualquier decisión de gestión es necesario disponer de la información necesaria, normalmente cuantitativa. Para ello, es necesario recopilar estos datos de todos sistemas de información empresas, llevarlos a un formato común y luego analizarlos. Para ello se crean los Almacenes de Datos.

¿Qué es un almacén de datos?

Por lo general, el lugar donde se recopila toda la información de valor analítico. Los requisitos para dichas tiendas corresponden a la definición clásica de OLAP y se explicarán a continuación.

A veces, el Almacén tiene otro objetivo: la integración de todos los datos de la empresa, para mantener la integridad y relevancia de la información dentro de todos los sistemas de información. Eso. el repositorio acumula no solo información analítica, sino casi toda la información, y puede proporcionarla en forma de directorios a otros sistemas.

Un almacén de datos típico suele ser diferente de una base de datos relacional típica. En primer lugar, las bases de datos normales están diseñadas para ayudar a los usuarios a realizar el trabajo diario, mientras que los almacenes de datos están diseñados para la toma de decisiones. Por ejemplo, la venta de bienes y la emisión de facturas se realiza mediante una base de datos diseñada para el procesamiento de transacciones, y el análisis de la dinámica de ventas durante varios años, que permite planificar el trabajo con proveedores, se realiza mediante un almacén de datos.

En segundo lugar, mientras que las bases de datos tradicionales están sujetas a cambios constantes a medida que los usuarios trabajan, el almacén de datos es relativamente estable: los datos que contiene generalmente se actualizan según un cronograma (por ejemplo, semanal, diario o cada hora, según las necesidades). Idealmente, el proceso de enriquecimiento consiste simplemente en agregar nuevos datos durante un período de tiempo sin cambiar la información anterior que ya está en el almacén.

Y en tercer lugar, las bases de datos habituales suelen ser la fuente de datos que acaban en el almacén. Además, el almacenamiento se puede reponer mediante fuentes externas, por ejemplo, informes estadísticos.

¿Cómo se construye una instalación de almacenamiento?

ETL– concepto básico: Tres etapas:
  • Extracción: extraer datos de fuentes externas en un formato comprensible;
  • Transformación – transformación de la estructura de los datos originales en estructuras convenientes para construir un sistema analítico;
Agreguemos una etapa más: limpieza de datos ( Limpieza) – el proceso de filtrar datos irrelevantes o corregir datos erróneos basándose en métodos estadísticos o expertos. Para no generar informes como “Ventas del 20011” más adelante.

Volvamos al análisis.

¿Qué es el análisis y por qué es necesario?

El análisis es el estudio de datos con el fin de tomar decisiones. Los sistemas analíticos se denominan sistemas de apoyo a la decisión ( DSS).

Aquí vale la pena señalar la diferencia entre trabajar con DSS y un conjunto simple de informes regulados y no regulados. El análisis en DSS es casi siempre interactivo e iterativo. Aquellos. el analista profundiza en los datos, redacta y ajusta consultas analíticas y recibe informes cuya estructura puede desconocerse de antemano. Volveremos a esto con más detalle a continuación cuando analicemos el lenguaje de consulta. MDX.

OLAP

Los sistemas de apoyo a la toma de decisiones suelen tener los medios para proporcionar al usuario datos agregados para varias muestras del conjunto original en una forma conveniente para la percepción y el análisis (tablas, gráficos, etc.). El enfoque tradicional para segmentar datos de origen implica extraer de los datos de origen uno o más conjuntos de datos multidimensionales (a menudo llamados hipercubo o metacubo), cuyos ejes contienen atributos y las celdas contienen datos cuantitativos agregados. (Dichos datos también se pueden almacenar en tablas relacionales, pero en este caso estamos hablando de la organización lógica de los datos y no de la implementación física de su almacenamiento). A lo largo de cada eje, los atributos se pueden organizar en forma de jerarquías, representando diferentes niveles de su detalle. Gracias a este modelo de datos, los usuarios pueden formular consultas complejas, generar informes y obtener subconjuntos de datos.

La tecnología para el análisis de datos multidimensionales complejos se llama OLAP (procesamiento analítico en línea). OLAP es un componente clave del almacenamiento de datos tradicional. El concepto de OLAP fue descrito en 1993 por Edgar Codd, un reconocido investigador de bases de datos y autor del modelo de datos relacionales. En 1995, basándose en los requisitos establecidos por Codd, se formuló la denominada prueba FASMI (Análisis rápido de información multidimensional compartida), que incluía los siguientes requisitos para aplicaciones de análisis multidimensional:

  • proporcionar al usuario resultados de análisis en un tiempo aceptable (normalmente no más de 5 s), incluso a costa de un análisis menos detallado;
  • la capacidad de realizar cualquier análisis lógico y estadístico característico de esta aplicación y guardarlo en un formato accesible para el usuario final;
  • acceso multiusuario a los datos con soporte para mecanismos de bloqueo apropiados y medios de acceso autorizados;
  • representación conceptual multidimensional de datos, incluyendo apoyo total para jerarquías y jerarquías múltiples (este es un requisito clave de OLAP);
  • la capacidad de acceder a cualquier información necesaria, independientemente de su volumen y ubicación de almacenamiento.
Cabe señalar que la funcionalidad OLAP se puede implementar diferentes caminos, comenzando con las herramientas de análisis de datos más simples en aplicaciones de oficina y terminando con sistemas analíticos distribuidos basados ​​​​en productos de servidor. Aquellos. OLAP no es una tecnología, pero ideología.

Antes de hablar sobre las diversas implementaciones de OLAP, echemos un vistazo más de cerca a qué son los cubos desde un punto de vista lógico.

Conceptos multidimensionales

Usaremos la base de datos Northwind incluida con Microsoft para ilustrar los principios de OLAP. servidor SQL y que es una base de datos típica que almacena información sobre las operaciones comerciales de una empresa dedicada al suministro mayorista de alimentos. Dichos datos incluyen información sobre proveedores, clientes, una lista de bienes suministrados y sus categorías, datos sobre pedidos y bienes solicitados, una lista de empleados de la empresa.

Cubo

Tomemos por ejemplo la tabla Facturas1, que contiene los pedidos de la empresa. Los campos de esta tabla serán los siguientes:
  • Fecha de orden
  • Un país
  • Ciudad
  • Nombre del cliente
  • Compañía de entrega
  • nombre del producto
  • Cantidad de bienes
  • Precio del pedido
¿Qué datos agregados podemos obtener de esta vista? Normalmente estas son respuestas a preguntas como:
  • ¿Cuál es el valor total de los pedidos realizados por clientes de un país en particular?
  • ¿Cuál es el valor total de los pedidos realizados por clientes en un determinado país y entregados por una determinada empresa?
  • ¿Cuál es el valor total de los pedidos realizados por clientes en un país en particular en un año determinado y entregados por una empresa en particular?
Todos estos datos se pueden obtener de esta tabla mediante consultas SQL bastante obvias con agrupación.

El resultado de esta consulta siempre será una columna de números y una lista de atributos que lo describen (por ejemplo, país); este es un conjunto de datos unidimensional o, en lenguaje matemático, un vector.

Imaginemos que necesitamos obtener información sobre el costo total de los pedidos de todos los países y su distribución entre las empresas de entrega; obtendremos una tabla (matriz) de números, donde las empresas de entrega se enumerarán en los encabezados de las columnas, los países en la fila. encabezados, y en las celdas habrá cantidad de pedidos. Esta es una matriz de datos bidimensional. Este conjunto de datos se llama tabla dinámica ( tabla dinámica) o tabla cruzada.

Si queremos obtener los mismos datos, pero también por año, entonces aparecerá otro cambio, es decir el conjunto de datos se volverá tridimensional (un tensor condicional de tercer orden o un “cubo” tridimensional).

Obviamente, el número máximo de dimensiones es el número de todos los atributos (Fecha, País, Cliente, etc.) que describen nuestros datos agregados (cantidad de pedidos, número de productos, etc.).

Así es como llegamos al concepto de multidimensionalidad y su encarnación: cubo multidimensional. Llamaremos a esa mesa " tabla de hechos" Dimensiones o ejes del cubo ( dimensiones) son atributos cuyas coordenadas se expresan mediante los valores individuales de estos atributos presentes en la tabla de hechos. Aquellos. por ejemplo, si la información sobre pedidos se mantuvo en el sistema de 2003 a 2010, entonces el eje de este año constará de 8 puntos correspondientes. Si los pedidos provienen de tres países, entonces el eje de países contendrá 3 puntos, etc. Independientemente de cuántos países estén incluidos en el directorio de países. Los puntos sobre un eje se llaman sus “miembros” ( Miembros).

En este caso, los propios datos agregados se denominarán “medidas” ( Medida). Para evitar confusiones con "dimensiones", estas últimas se denominan preferentemente "ejes". El conjunto de medidas conforma otro eje de "Medidas" ( Medidas). Tiene tantos miembros (puntos) como medidas (columnas agregadas) en la tabla de hechos.

Los miembros de dimensiones o ejes se pueden combinar mediante una o más jerarquías ( jerarquía). Expliquemos qué es la jerarquía con un ejemplo: las ciudades a partir de órdenes se pueden unir en distritos, los distritos en regiones, las regiones de un país, los países en continentes u otras entidades. Aquellos. hay una estructura jerárquica - continente- país-región-distrito-ciudad– 5 niveles ( Nivel). Para una región, los datos se agregan para todas las ciudades que están incluidas en ella. Para una región que abarca todos los distritos que contienen todas las ciudades, etc. ¿Por qué necesitamos múltiples jerarquías? Por ejemplo, en el eje de fecha del pedido es posible que deseemos agrupar puntos (es decir, días) en una jerarquía. Año mes dia o por Año-Semana-Día: en ambos casos hay tres niveles. Obviamente, Semana y Mes agrupan los días de forma diferente. También hay jerarquías, cuyo número de niveles no es determinista y depende de los datos. Por ejemplo, carpetas en el disco de una computadora.

La agregación de datos puede ocurrir usando varias funciones estándar: suma, mínimo, máximo, promedio, recuento.

MDX

Pasemos al lenguaje de consulta en datos multidimensionales.
El lenguaje SQL no fue diseñado originalmente para programadores, sino para analistas (y por lo tanto tiene una sintaxis que se asemeja al lenguaje natural). Pero con el tiempo se volvió cada vez más complicado y ahora pocos analistas saben cómo utilizarlo bien, si es que lo saben. Se ha convertido en una herramienta para programadores. El lenguaje de consulta MDX, que se rumorea que fue desarrollado por nuestro antiguo compatriota Mosha (o Mosha) Posumansky en las selvas de Microsoft, inicialmente también estaba destinado a analistas, pero sus conceptos y su sintaxis (que se parece vagamente a SQL, y completamente en vano, es decir, porque sólo confunde), incluso más complicado que SQL. Sin embargo, sus conceptos básicos siguen siendo fáciles de entender.

Lo veremos en detalle porque es el único lenguaje que ha recibido el estatus de estándar en el marco del estándar general del protocolo XMLA y, en segundo lugar, porque existe una implementación de código abierto en forma del proyecto Mondrian de la empresa. pentaho. Otros sistemas de análisis OLAP (por ejemplo, Oracle OLAP Option) suelen utilizar sus propias extensiones de sintaxis SQL, aunque también declaran ser compatibles con MDX.

Trabajar con conjuntos de datos analíticos sólo significa leerlos y no escribirlos. Eso. MDX no tiene cláusulas para cambiar datos, solo una cláusula de selección: seleccionar.

En OLAP puedes hacer cubos multidimensionales. rebanadas- es decir. cuando los datos se filtran a lo largo de uno o más ejes, o proyecciones– cuando el cubo “colapsa” a lo largo de uno o más ejes, agregando datos. Por ejemplo, nuestro primer ejemplo con la cantidad de pedidos de los países es una proyección del cubo sobre el eje País. La consulta MDX para este caso se verá así:

Seleccione...Niños en filas de
¿Qué es qué aquí?

Seleccionar– la palabra clave se incluye en la sintaxis únicamente por motivos de belleza.
es el nombre del eje. Todos los nombres propios en MDX están escritos entre corchetes.
es el nombre de la jerarquía. En nuestro caso, esta es la jerarquía País-Ciudad.
– este es el nombre del miembro del eje en el primer nivel de la jerarquía (es decir, país) Todos – este es un metamiembro que une a todos los miembros del eje. Existe tal metatérmino en cada eje. Por ejemplo, en el eje de años está “Todos los años”, etc.
Niños es una función miembro. Cada miembro tiene varias funciones disponibles. Como padre. Nivel, Jerarquía, devolviendo respectivamente el antepasado, el nivel en la jerarquía y la jerarquía misma a la que pertenece el miembro en este caso. Hijos: devuelve un conjunto de miembros hijos de este miembro. Aquellos. en nuestro caso – países.
en filas– Indica cómo organizar estos datos en la tabla resultante. En este caso, en el encabezado de las líneas. Valores posibles aquí: en columnas, en páginas, en párrafos, etc. También es posible indicarlo simplemente por índice, empezando desde 0.
de– esta es una indicación del cubo a partir del cual se realiza la selección.

¿Qué pasa si no necesitamos todos los países, sino sólo un par de países específicos? Para hacer esto, podemos especificar explícitamente en la solicitud los países que necesitamos, en lugar de seleccionar todo usando la función Niños.

Seleccione (...,...) en las filas de
Las llaves en este caso son la declaración del conjunto ( Colocar). Un conjunto es una lista, una enumeración de miembros. desde un eje.

Ahora escribamos una consulta para nuestro segundo ejemplo: salida en el contexto de un repartidor:

Seleccione...Niños en filas.Miembros en columnas de
Agregado aquí:
– eje;
.Miembros– una función de eje que devuelve todos los términos que contiene. Jerarquía y nivel tienen la misma función. Porque Sólo existe una jerarquía en este eje, entonces se puede omitir su indicación, porque el nivel y la jerarquía también son los mismos, entonces puede mostrar todos los miembros en una lista.

Creo que ya es obvio cómo podemos continuar con nuestro tercer ejemplo con detalle por año. Pero será mejor no profundizar por año, sino filtrar, es decir, por año. construir una rebanada Para ello escribiremos la siguiente consulta:

Seleccione ..Niños en filas .Miembros en columnas de donde (.)
¿Dónde está la filtración aquí?

dónde- palabra clave
es un miembro de la jerarquía . El nombre completo, incluidos todos los términos, sería: .. , pero porque Dado que el nombre de este miembro es único dentro del eje, se pueden omitir todas las aclaraciones intermedias del nombre.

¿Por qué el término de fecha está entre paréntesis? Los paréntesis son una tupla ( tupla). Una tupla es una o más coordenadas a lo largo varios ejes Por ejemplo, para filtrar a lo largo de dos ejes a la vez, entre paréntesis enumeramos dos términos de diferente medidas separadas por comas. Es decir, la tupla define una “porción” del cubo (o “filtrado”, si dicha terminología es más precisa).

La tupla se utiliza para algo más que filtrar. Las tuplas también pueden estar en encabezados de fila/columna/página, etc.

Esto es necesario, por ejemplo, para mostrar el resultado de una consulta tridimensional en una tabla bidimensional.

Seleccione unión cruzada(...Niños, ..Niños) en filas. Miembros en columnas desde donde (.)
unión cruzada es una función. Devuelve un conjunto de tuplas (sí, ¡un conjunto puede contener tuplas!) resultantes del producto cartesiano de dos conjuntos. Aquellos. el conjunto resultante contendrá todas las combinaciones posibles de países y años. Por tanto, los encabezados de fila contendrán un par de valores: País-Año.

La pregunta es, ¿dónde está la indicación de qué características numéricas se deben mostrar? En este caso, se utiliza la medida predeterminada definida para este cubo, es decir Precio del pedido. Si queremos derivar otra medida, entonces recordamos que las medidas son miembros de una dimensión. Medidas. Y actuamos exactamente igual que con los demás ejes. Aquellos. filtrar una consulta por una de las medidas mostrará exactamente esta medida en las celdas.

Pregunta: ¿Cuál es la diferencia entre filtrar en dónde y filtrar especificando miembros del eje en las filas? Respuesta: prácticamente nada. Simplemente en donde se indica un corte para aquellos ejes que no participan en la formación de encabezados. Aquellos. mismo eje no puedo estar presente al mismo tiempo en filas, y en dónde.

Miembros calculados

Para más consultas complejas Puede declarar miembros calculados. Miembros de los ejes de atributos y de medidas. Aquellos. Puedes declarar, por ejemplo, una nueva medida que mostrará la contribución de cada país al importe total de los pedidos:

Con miembro. como '.CurrentMember / ..', FORMAT_STRING='0.00%' seleccione ...Niños en filas desde donde.
El cálculo se produce en el contexto de una celda en la que se conocen todos sus atributos de coordenadas. Las coordenadas correspondientes (miembros) se pueden obtener mediante la función CurrentMember para cada uno de los ejes del cubo. Aquí debemos entender que la expresión .Miembro actual/..' no divide un término por otro, sino que divide datos agregados relevantes¡rebanadas de cubos! Aquellos. la porción del territorio actual se dividirá en una porción para todos los territorios, es decir, el valor total de todos los pedidos. FORMAT_STRING: establece el formato para mostrar valores, es decir. %.

Otro ejemplo de miembro calculado, pero en el eje de años:

Con miembro. como '. - .’
Evidentemente, el informe no contendrá una unidad, sino la diferencia de las secciones correspondientes, es decir. la diferencia en la cantidad de pedidos en estos dos años.

Mostrar en ROLAP

Los sistemas OLAP se basan de una forma u otra en algún tipo de sistema de organización y almacenamiento de datos. Cuando estamos hablando acerca de sobre RDBMS, luego hablan de ROLAP (dejaremos MOLAP y HOLAP para autoestudio). ROLAP – OLAP en una base de datos relacional, es decir descrito en forma de tablas bidimensionales ordinarias. Los sistemas ROLAP convierten consultas MDX a SQL. El principal problema informático de las bases de datos es la rápida agregación. Para agregar más rápido, los datos de la base de datos suelen estar altamente desnormalizados, es decir. no se almacenan de manera muy eficiente en términos de espacio en disco ocupado y monitoreo de la integridad de la base de datos. Además, contienen tablas auxiliares que almacenan datos parcialmente agregados. Por lo tanto, para OLAP, generalmente se crea un esquema de base de datos separado, que solo replica parcialmente la estructura de las bases de datos transaccionales originales en términos de directorios.

Navegación

Muchos sistemas OLAP ofrecen herramientas de navegación interactivas para una consulta ya generada (y, en consecuencia, datos seleccionados). En este caso se utiliza la denominada “perforación” o “perforación”. Una traducción más adecuada al ruso sería la palabra "profundización". Pero esto es una cuestión de gustos, en algunos entornos la palabra “perforar” se ha quedado.

Perforar– este es un informe que detalla reduciendo el grado de agregación de datos, combinado con el filtrado a lo largo de algún otro eje (o varios ejes). Existen varios tipos de perforación:

  • profundizar– filtrar a lo largo de uno de los ejes de origen del informe con la visualización de información detallada sobre los descendientes dentro de la jerarquía del miembro de filtrado seleccionado. Por ejemplo, si hay un informe sobre la distribución de pedidos desglosado por países y años, al hacer clic en el año 2007 se mostrará un informe desglosado por los mismos países y meses de 2007.
  • lado de perforación– filtrar bajo uno o más ejes seleccionados y eliminar la agregación a lo largo de uno o más ejes. Por ejemplo, si hay un informe de distribución de pedidos desglosado por Países y Años, al hacer clic en el año 2007 se mostrará otro informe desglosado, por ejemplo, por Países y Proveedores con filtrado por 2007.
  • canal de perforación– eliminar la agregación a lo largo de todos los ejes y filtrar simultáneamente a lo largo de ellos – le permite ver los datos de origen de la tabla de hechos de la que se obtuvo el valor en el informe. Aquellos. Al hacer clic en el valor de una celda, se muestra un informe con todos los pedidos que dieron este monto. Una especie de perforación instantánea en las mismas “profundidades” del cubo.
Eso es todo. Ahora, si decide dedicarse a Business Intelligence y OLAP, es hora de empezar a leer literatura seria.

Etiquetas: Agregar etiquetas

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 cambio, 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 cubos OLAP Inicialmente consideran los datos desde el punto de vista de jerarquías y relaciones con otros parámetros de la misma entidad, por lo que construir y utilizar jerarquías en cubos es una cuestión muy sencilla.

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

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 las tareas de análisis empresarial para empresas comerciales, las dimensiones suelen incluir categorías como "tiempo", "ventas", "productos", "clientes", "empleados", "ubicación geográfica". Las medidas son más a menudo estructuras jerárquicas, que son 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 (volumen de ventas expresado 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.

    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” 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 otra razón que justifica la aparición de un repositorio separado: consultas analíticas complejas para información operativa desacelerar trabajo actual empresas, bloqueando tablas durante mucho tiempo y confiscando 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 yo mismo - en la vida 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. En teoría, las herramientas OLAP se pueden aplicar directamente a los datos operativos o a sus copias exactas (para no interferir con 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. El usuario que analiza la información puede "cortar" el cubo en direcciones diferentes, recibir información resumida (por ejemplo, por año) o, por el contrario, detallada (por semana) 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 jerárquicos, 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; capa representación multidimensional se abstrae de la estructura física de los datos y los percibe como multidimensionales.
    • Procesamiento multidimensional: una herramienta (lenguaje) para formular consultas multidimensionales (relacional tradicional lenguaje SQL resulta inadecuado en este caso) y un procesador capaz de procesar y ejecutar dicha solicitud.
    • 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 las solicitudes. 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 almacenan 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 de volumen puede llegar a ser literalmente catastrófico: en uno de los estudios publicados pruebas estandarizadas 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 resolver el problema de almacenar agregados, a veces se utilizan esquemas 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 dimensiones, 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 hacer frente a este problema.

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

    07/04/2011 Derek Comingore

    Si ha trabajado en algún campo relacionado con la tecnología, probablemente haya escuchado el término "cubo"; sin embargo, la mayoría de los administradores y desarrolladores de bases de datos comunes no trabajaban con estos objetos. Los cubos proporcionan una poderosa arquitectura de datos para agregar rápidamente información multidimensional. Si su organización necesita analizar grandes volúmenes de datos, entonces solución ideal será un cubo

    ¿Qué es un cubo?

    Las bases de datos relacionales fueron diseñadas para manejar miles de transacciones simultáneas manteniendo el rendimiento y la integridad de los datos. Por diseño, las bases de datos relacionales no son eficientes para agregar y buscar grandes volúmenes de datos. Para agregar y devolver grandes volúmenes de datos, una base de datos relacional debe recibir una consulta basada en conjuntos, cuya información se recopilará y agregará sobre la marcha. Estas consultas relacionales son muy costosas porque dependen de múltiples uniones y Funciones agregadas; Las consultas relacionales agregadas son especialmente ineficaces cuando se trabaja con grandes cantidades de datos.

    Los cubos son entidades multidimensionales diseñadas para abordar esta deficiencia en las bases de datos relacionales. Al utilizar un cubo, puede proporcionar a los usuarios una estructura de datos que proporcione una respuesta rápida a consultas con grandes volúmenes de agregación. Los cubos realizan esta "magia de agregación" agregando primero datos (dimensiones) en múltiples dimensiones. La preagregación del cubo se suele realizar durante el procesamiento. Cuando procesa un cubo, produce agregaciones de datos precalculados que se almacenan en formato binario en el disco.

    El cubo es la estructura de datos central en Sistema operativo Análisis de datos OLAP de SQL Server Analytical Services (SSAS). Los cubos normalmente se construyen a partir de una base de datos relacional subyacente llamada modelo dimensional, pero son entidades técnicas independientes. Lógicamente, un cubo es un almacén de datos que se compone de dimensiones (dimensiones) y medidas (medidas). Las dimensiones contienen características descriptivas y jerarquías, mientras que las dimensiones son los hechos que se describen en las dimensiones. Las dimensiones se agrupan en combinaciones lógicas llamadas grupos de dimensiones. Vincula dimensiones a grupos de medidas según una característica: el grado de detalle.

    EN sistema de archivos un cubo se implementa como una secuencia de archivos binarios vinculados. La arquitectura binaria del cubo facilita la rápida recuperación de grandes volúmenes de datos multidimensionales.

    Mencioné que los cubos se construyen a partir de una base de datos relacional subyacente llamada modelo dimensional. El modelo de dimensiones contiene tablas relacionales (hechos y dimensiones) que lo conectan con las entidades del cubo. Las tablas de hechos contienen dimensiones como la cantidad de un producto vendido. Las tablas de dimensiones almacenan atributos descriptivos como nombres de productos, fechas y nombres de empleados. Normalmente, las tablas de hechos y las tablas de dimensiones se relacionan mediante restricciones de clave externa primaria, con las claves externas ubicadas en la tabla de hechos (esta relación relacional se relaciona con el atributo de granularidad del cubo discutido anteriormente). Cuando las tablas de dimensiones se vinculan directamente a una tabla de hechos, se forma un esquema en estrella. Cuando las tablas de dimensiones no están directamente vinculadas a una tabla de hechos, el resultado es un esquema de copo de nieve.

    Tenga en cuenta que los modelos dimensionales se clasifican según la aplicación. Un data mart es un modelo dimensional diseñado para un único proceso de negocio, como ventas o gestión de inventario. Un almacén de datos es un modelo dimensional diseñado para capturar procesos de negocio componentes para facilitar el análisis de procesos entre negocios.

    Requisitos de Software

    Ahora que tiene una comprensión básica de qué son los cubos y por qué son importantes, pondré en marcha el engranaje y lo llevaré en un recorrido paso a paso para construir su primer cubo usando SSAS. Hay algunos componentes básicos. software, que necesitará, así que antes de comenzar a construir su primer cubo, asegúrese de que su sistema cumpla con los requisitos.

    Mi cubo de ventas de Internet de ejemplo se construirá a partir de la base de datos de prueba AdventureWorksDW 2005. Construiré el cubo de prueba a partir de un subconjunto de tablas encontradas en la base de datos de prueba que serán útiles para analizar datos de ventas de Internet. La Figura 1 muestra el diseño básico de las tablas de la base de datos. Como estoy usando la versión 2005, puedes seguir mis instrucciones usando SQL Server 2005 o SQL Server 2008.

    Figura 1. Subconjunto del mercado de datos de ventas por Internet de Adventure Works

    La base de datos de capacitación de Adventure WorksDW 2005 se puede encontrar en el sitio web de CodePlex: msftdbprodsamples.codeplex.com. Busque el enlace "Las bases de datos de muestra del producto SQL Server 2005 todavía están disponibles" (http://codeplex.com/MSFTDBProdSamples/Release/ProjectReleases.aspx?ReleaseId=4004). La base de datos de capacitación está contenida en el archivo AdventureWorksBI.msi (http://msftdbprodsamples.codeplex.com/releases/view/4004#DownloadId=11755).

    Como se mencionó, debe tener acceso a una instancia de SQL Server 2008 o 2005, incluidos los componentes SSAS y Business Intelligence Development Studio (BIDS). Usaré SQL Server 2008, por lo que es posible que veas algunas diferencias sutiles si usas SQL Server 2005.

    Creando un proyecto SSAS

    Lo primero que debes hacer es crear un proyecto SSAS usando BIDS. Busque BIDS en el menú Inicio y luego en el menú Microsoft SQL Server 2008/2005, subelemento SQL Server Business Intelligence Development Studio. Al hacer clic en este botón se iniciará BIDS con la pantalla de presentación predeterminada. Crear nuevo proyecto SSAS seleccionando Archivo, Nuevo, Proyecto. Verá el cuadro de diálogo Nuevo proyecto, que se muestra en la Figura 1. Seleccione la carpeta Proyecto de Analysis Services y establezca la descripción del proyecto en SQLMAG_MyFirstCube. Haga clic en Aceptar.

    Una vez creado el proyecto, haga clic derecho sobre él en el Explorador de soluciones y seleccione Menú de contexto Elemento de propiedades. Ahora seleccione la sección Implementación en el lado izquierdo del cuadro de diálogo SQLMAG_MyFirstCube: Páginas de propiedades y revise la configuración del servidor de destino y la base de datos, como muestra la Figura 2. Si está trabajando en un entorno distribuido de SQL Server, deberá calificar la propiedad Servidor de destino con el nombre del servidor en el que va a realizar la implementación. Haga clic en Aceptar cuando esté satisfecho con la configuración de implementación para este proyecto SSAS.

    Definición de la fuente de datos

    El primer objeto que necesita crear es la fuente de datos. Un objeto de origen de datos proporciona el esquema y los datos utilizados para crear los objetos asociados con el cubo y en su base. Para crear un objeto de fuente de datos en BIDS, utilice el Asistente de fuente Datos Asistente de fuentes.

    Inicie el Asistente para fuentes de datos haciendo clic derecho en la carpeta Fuente de datos en el panel Explorador de soluciones y seleccionando Nueva fuente de datos. Descubrirá que la creación de objetos SSAS en BIDS tiene una naturaleza de desarrollo. Primero, el asistente lo guiará a través del proceso de creación de objetos y la configuración general. Y luego abre el objeto SSAS resultante en el diseñador y lo personaliza en detalle si es necesario. Una vez que pase la pantalla de aviso, defina una nueva conexión de datos haciendo clic en el botón Nuevo. Seleccione y cree una nueva conexión basada en Native OLEDB\SQL Server Native Client 10 apuntando a la que desee Servidor SQL Servidor propietario de la instancia de base de datos deseada. Puede utilizar la autenticación de Windows o SQL Server, según la configuración del entorno de SQL Server. Haga clic en el botón Probar conexión para asegurarse de haber identificado correctamente la conexión de la base de datos y luego haga clic en Aceptar.

    Luego viene la información de suplantación, que, al igual que la asociación de datos, depende de cómo esté estructurado el entorno de SQL Server. El préstamo de privilegios es el contexto de seguridad en el que se basa SSAS cuando procesa sus objetos. Si está administrando su implementación en un único servidor principal (o computadora portátil), como supongo que lo harán la mayoría de los lectores, simplemente puede seleccionar la opción Usar la cuenta de servicio. Haga clic en Siguiente para completar el Asistente de origen de datos y establecer AWDW2005 como Nombre del origen de datos. Es bastante conveniente que pueda utilizar este método con fines de prueba, pero en un entorno de producción real no es lo más adecuado. mejores prácticas- utilizar una cuenta de servicio. Es mejor especificar el dominio. Cuentas para tomar prestados derechos de conexión SSAS a la fuente de datos.

    Vista de fuente de datos

    Para la fuente de datos que ha definido, el siguiente paso en el proceso de creación del cubo SSAS es crear una vista de fuente de datos (DSV). DSV proporciona la capacidad de separar el esquema que espera su cubo del de la base de datos subyacente. Como resultado, DSV se puede utilizar para ampliar el esquema relacional subyacente al crear un cubo. Algunas de las características clave de DSV para ampliar los esquemas de fuentes de datos incluyen consultas con nombre, relaciones lógicas entre tablas y columnas calculadas con nombre.

    Sigamos adelante y hagamos clic derecho en la carpeta DSV y seleccionemos Nueva vista de fuente de datos para iniciar el asistente Crear nueva vista DSV. En el cuadro de diálogo, en el paso Seleccionar una fuente de datos, seleccione una conexión de base de datos relacional y haga clic en Siguiente. Seleccione las tablas FactInternetSales, DimProduct, DimTime, DimCustomer y haga clic en el botón de flecha hacia la derecha para mover estas tablas a la columna Incluido. Finalmente, haga clic en Siguiente y complete el asistente aceptando el nombre predeterminado y haciendo clic en Finalizar.

    En este punto, debería tener una vista DSV ubicada en la carpeta Vistas de origen de datos en el Explorador de soluciones. Haga doble clic en el nuevo DSV para iniciar el diseñador de DSV. Debería ver las cuatro tablas para un DSV determinado, como se muestra en la Figura 2.

    Crear dimensiones de base de datos

    Como expliqué anteriormente, las dimensiones proporcionan características descriptivas de dimensiones y jerarquías que se utilizan para permitir la agregación por encima del nivel de detalle. Es importante comprender la diferencia entre una dimensión de base de datos y una dimensión de cubo: las dimensiones de la base de datos proporcionan los objetos de dimensión subyacentes para las distintas dimensiones del cubo que se utilizarán para construir el cubo.

    Las dimensiones de las bases de datos y los cubos proporcionan una solución elegante a un concepto conocido como "dimensiones de roles". Las dimensiones basadas en roles se utilizan cuando es necesario utilizar una única dimensión en un cubo varias veces. La fecha es un ejemplo perfecto en esta instancia de cubo: construirá una única dimensión de fecha y hará referencia a ella una vez para cada fecha para la que desee analizar las ventas en línea. La fecha del calendario será la primera dimensión que cree. Haga clic con el botón derecho en la carpeta Dimensiones en el Explorador de soluciones y seleccione Nueva dimensión para iniciar el Asistente de dimensiones. Seleccione Usar una tabla existente y haga clic en Siguiente en el paso Seleccionar método de creación. En el paso Especificar información de origen, especifique la tabla DimTime en la lista desplegable Tabla principal y haga clic en Siguiente. Ahora, en el paso Seleccionar atributos de dimensión, debe seleccionar los atributos de la dimensión de tiempo. Seleccione cada atributo, como muestra la Figura 3.

    Haga clic en Siguiente. Como paso final, ingrese Fecha de atenuación en el campo Nombre y haga clic en Finalizar para completar el Asistente de dimensiones. Ahora debería ver la nueva dimensión Dim Date ubicada en la carpeta Dimensiones en el Explorador de soluciones.

    Luego utilice el Asistente de dimensiones para crear dimensiones de productos y clientes. Siga los mismos pasos para crear la dimensión base que antes. Cuando trabaje con el Asistente de dimensiones, asegúrese de seleccionar todos los atributos potenciales en el paso Seleccionar atributos de dimensión. Los valores predeterminados para las otras configuraciones están bien para una instancia de cubo de prueba.

    Crear un cubo de ventas en Internet

    Ahora que ha preparado las dimensiones de la base de datos, puede comenzar a construir el cubo. En el Explorador de soluciones, haga clic derecho en la carpeta Cubos y seleccione Nuevo cubo para iniciar el Asistente para cubos. En la ventana Seleccionar método de creación, seleccione la opción Usar tablas existentes. Seleccione la tabla FactInternetSales para el grupo de medida en el paso Seleccionar tablas de grupo de medida. Desmarque las casillas junto a las dimensiones Clave de promoción, Clave de moneda, Clave de territorio de ventas y Número de revisión en el paso Seleccionar medidas y haga clic en Siguiente.

    En la pantalla Seleccionar dimensiones existentes, asegúrese de que todas las dimensiones de la base de datos existentes estén seleccionadas para usarse como dimensiones de cubo. Como me gustaría mantener este cubo lo más simple posible, anule la selección de la dimensión FactInternetSales en el paso Seleccionar nuevas dimensiones. Al dejar seleccionada la dimensión FactInternetSales, creará lo que se llama una dimensión de hecho o dimensión degenerada. Las dimensiones de hechos son dimensiones que se crearon utilizando una tabla de hechos básica en lugar de una tabla de dimensiones tradicional.

    Haga clic en Siguiente para ir al paso Completar el asistente e ingrese "Mi primer cubo" en el campo Nombre del cubo. Haga clic en el botón Finalizar para completar el proceso del Asistente para crear cubos.

    Expandir y procesar un cubo

    Ahora está listo para implementar y procesar el primer cubo. Haga clic con el botón derecho en el icono del nuevo cubo en el Explorador de soluciones y seleccione Procesar. Verá un cuadro de mensaje que indica que el contenido parece no estar actualizado. Haga clic en Sí para implementar el nuevo cubo en el servidor SSAS de destino. Cuando implementas un cubo, envías archivo XML for Analisis (XMLA) al servidor SSAS de destino, que crea un cubo en el propio servidor. Como se mencionó, al procesar un cubo se llenan sus archivos binarios en el disco con datos de la fuente principal, así como con metadatos adicionales que haya agregado (dimensiones del cubo, dimensiones y configuración).

    Una vez que se completa el proceso de implementación, aparece un nuevo cuadro de diálogo de Process Cube. Haga clic en el botón Ejecutar para comenzar a procesar el cubo, que se abre con la ventana Progreso del proceso. Cuando se complete el procesamiento, haga clic en Cerrar (dos veces para cerrar ambos cuadros de diálogo) para completar los procesos de implementación y procesamiento del cubo.

    Ya ha creado, implementado y procesado su primer cubo. Puede ver este nuevo cubo haciendo clic derecho sobre él en la ventana del Explorador de soluciones y seleccionando Examinar. Arrastre las dimensiones al centro de la tabla dinámica y los atributos de las dimensiones a filas y columnas para explorar su nuevo cubo. Observe la rapidez con la que el cubo procesa varias consultas de agregación. Ahora puede apreciar el poder ilimitado y, por lo tanto, el valor comercial del cubo OLAP.

    Derek Comingore ( [correo electrónico protegido]) es arquitecto senior en B. I. Voyage, que tiene el estatus de socio de Microsoft en el campo del análisis empresarial. Tiene el título MVP de SQL Server y varias certificaciones de Microsoft.





  • 
    Arriba