Articulo de referencia

Cubos (servidor OLAP)

[http://www.stiivi.com/ Stefan Urbanek is the creator of Cubes and Data Brewery.] "},"developer":{"wt":""},"released":{"wt":"{{Start date and age|2011|03|27}}"},"discontinued":{...

Cubes es un conjunto de herramientas OLAP y de modelado multidimensional ligero y de código abierto para el desarrollo de aplicaciones de informes y la exploración de datos agregados, escrito en el lenguaje de programación Python y publicado bajo la licencia MIT .

Cubes proporciona a un analista o a cualquier usuario final de la aplicación "una forma comprensible y natural de generar informes utilizando el concepto de cubos de datos : objetos de datos multidimensionales".

Cubes se lanzó públicamente por primera vez en marzo de 2011. El proyecto se desarrolló originalmente para las Contrataciones Públicas de Eslovaquia . [ 3 ] Cubes 1.0 se lanzó en septiembre de 2014 y se presentó en la Conferencia PyData en Nueva York. [ 4 ]

Características

  • OLAP y navegación agregada (el valor predeterminado es ROLAP)
  • Modelo lógico de cubos OLAP en formato JSON o proporcionado desde fuentes externas.
  • dimensiones jerárquicas (atributos que tienen dependencias jerárquicas, como categoría-subcategoría o país-región)
  • múltiples jerarquías en una dimensión
  • expresiones aritméticas para el cálculo de medidas derivadas y agregados
  • metadatos y datos localizables

Cubes es capaz de manejar grandes cantidades de datos y consultas complejas. Según una reseña de TechTarget, Cubes puede manejar "volúmenes de datos de cientos de millones de filas" y "consultas y cálculos complejos que requieren agregaciones multinivel y subconjuntos dinámicos". Además, la reseña señala que Cubes es ideal para organizaciones o equipos más pequeños que no requieren la complejidad y la escalabilidad de las soluciones OLAP de nivel empresarial. [ 5 ]

Modelo

El modelo conceptual lógico en Cubes se describe mediante JSON y puede proporcionarse como un archivo, un paquete de directorios o desde un proveedor de modelos externo (por ejemplo, una base de datos). Los objetos básicos del modelo son: cubos , sus medidas y agregados; dimensiones, sus atributos y jerarquías. El modelo lógico también incluye la asignación de atributos lógicos a su ubicación física en una base de datos (u otra fuente de datos).

Modelo de ejemplo:

{ "cubos" : [ { "nombre" : "ventas" , "etiqueta" : "Nuestras ventas" , "dimensiones" : [ "fecha" , "cliente" , "ubicación" , "producto" ], "medidas" : [ "cantidad" ] } ] "dimensiones" : [ { "nombre" : "producto" , "etiqueta" : "Producto" , "niveles" : [ { "nombre" : "categoría" , "etiqueta" : "Categoría" , "atributos" : [ "id_categoría" , "etiqueta_categoría" ], }, { "nombre" : "producto" , "etiqueta" : "Producto" , "atributos" : [ "id_producto" , "etiqueta_producto" ], } ] }, ... ] }

Operaciones

Cubes ofrece un conjunto básico de operaciones, como la exploración y el filtrado de datos ( segmentación y clasificación ). Se puede acceder a estas operaciones mediante una interfaz Python o a través de un servidor web ligero llamado Slicer.

Ejemplo de la interfaz de Python:

importar cubosespacio de trabajo = Espacio de trabajo ( "slicer.ini" ) navegador = espacio de trabajo . navegador ( "ventas" )resultado = navegador.aggregate ( )imprimir ( resultado.summary )

Servidor

Cubes proporciona un servidor OLAP no tradicional con consultas HTTP y API de respuesta JSON . Ejemplo de consulta para obtener "importe total de todos los contratos entre enero de 2012 y junio de 2016 por mes":

http://localhost:5000/cube/contracts/aggregate?drilldown=date&drilldown=criteria&cut=date:2012,1-2012,6&order=date.month:desc

La respuesta se ve así:

{ "summary" : { "contract_amount_sum" : 10000000.0 }, "remainder" : {}, "cells" : [ { "date.year" : 2012 , "criteria.code" : "ekonaj" , "contract_amount_sum" : 12345.0 , "criteria.description" : "oferta económicamente más rentable" , "criteria.sdesc" : "mejor oferta" , "criteria.id" : 3 }, { "date.year" : 2012 , "criteria.code" : "cena" , "contract_amount_sum" : 23456.0 , "criteria.description" : "precio más bajo" , "criteria.sdesc" : "precio más bajo" , "criteria.id" : 4 }, ... "total_cell_count" : 6 , "aggregates" : [ "contract_amount_sum" ], "cell" : [ { "type" : "range" , "dimension" : "date" , "hierarchy" : "default" , "level_depth" : 2 , "invert" : false , "hidden" : false , "from" : [ "2012" , "1" ], "to" : [ "2015" , "6" ] } ], "levels" : { "criteria" : [ "criteria" ], "date" : [ "year" ] } }

La sencilla interfaz HTTP/JSON facilita enormemente la integración de informes OLAP en aplicaciones web escritas exclusivamente en HTML y JavaScript .

El servidor Slicer contiene puntos finales que describen los metadatos del cubo , lo que ayuda a crear aplicaciones de informes genéricas [ 6 ] que no necesitan conocer de antemano la estructura del modelo de base de datos y las jerarquías conceptuales.

El servidor Slicer está escrito utilizando Flask (un framework web) .

ROLAP y SQL

El backend SQL integrado del framework proporciona funcionalidad ROLAP sobre una base de datos relacional. Cubes incluye un generador de consultas SQL que traduce las consultas de informes en sentencias SQL. El generador de consultas tiene en cuenta la topología del esquema en estrella o copo de nieve y ejecuta únicamente las uniones necesarias para recuperar los atributos que requiere el analista de datos.

El sistema SQL utiliza el kit de herramientas SQLAlchemy de Python para construir las consultas.

Véase también

Referencias

  1. Stefan Urbanek es el creador de Cubes y Data Brewery.
  2. "DataBrewery / cubes / blob / master / LICENSE" . Github . Consultado el 21 de febrero de 2015 .
  3. Contrataciones públicas de Eslovaquia por Transparencia Internacional Eslovaquia
  4. Presentación general de Cubes 1.0 en PyData NYC 2014 (vídeo) .
  5. "El servidor OLAP Cubes de código abierto satisface a los usuarios empresariales que trabajan bajo presión" . SearchBusinessAnalytics . Consultado el 28 de marzo de 2023 .
  6. Visor de cubos
  • Sitio web oficial