stringtranslate.com

Cubos (servidor OLAP)

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

Cubes proporciona a un analista o cualquier usuario final de la aplicación "una forma natural y comprensible 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 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

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

Modelo

El modelo conceptual lógico en Cubes se describe utilizando JSON y se puede proporcionar en forma de archivo, paquete de directorio o desde un proveedor de modelo externo (por ejemplo, una base de datos). Los objetos básicos del modelo son: cubos y sus medidas y agregados, dimensiones y sus atributos, jerarquías. El modelo lógico también contiene mapeo 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" : [ "category_id" , "category_label" ], }, { "nombre" : "producto" , "etiqueta" : "Producto" , "atributos" : [ "product_id" , "product_label" ], } ] }, ... ] }                                                   

Operaciones

Cubes proporciona un conjunto básico de operaciones, como la exploración y el filtrado de datos ( rebanar y cortar en cubitos ). Se puede acceder a las operaciones a través de la interfaz Python o mediante 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 . agregado ()imprimir ( resultado . resumen )

Servidor

The Cubes proporciona un servidor OLAP no tradicional con consultas HTTP y API de respuesta JSON . Consulta de ejemplo para obtener "monto 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 parece:

{ "resumen" : { "contrato_monto_sum" : 10000000.0 }, "resto" : {}, "celdas" : [ { "fecha.año" : 2012 , "criteria.code" : "ekonaj" , "contrato_monto_suma" : 12345.0 , "criteria.description" : "mejor oferta económicamente" , "criteria.sdesc" : "mejor oferta" , "criteria.id" : 3 }, { "fecha.año" : 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 , "agregados" : [ "contrato_cantidad_suma" ], "celda" : [ { "tipo" : "rango" , "dimensión" : "fecha" , "jerarquía" : "predeterminado" , "nivel_profundidad" : 2 , "invertir" : falso , " oculto" : falso , "desde" : [ "2012" , "1" ], "hasta" : [ "2015" , "6" ] } ], "niveles" : { "criterios" : [ "criterios" ], "fecha" : [ "año" ] } }                                                                               

La sencilla interfaz HTTP/JSON hace que sea muy fácil integrar informes OLAP en aplicaciones web escritas en HTML y JavaScript puros .

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 la estructura del modelo de base de datos ni las jerarquías conceptuales de antemano.

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

ROLAP y SQL

El backend SQL integrado del marco proporciona funcionalidad ROLAP sobre una base de datos relacional. Cubes contiene un generador de consultas SQL que traduce las consultas de informes en declaraciones SQL. El generador de consultas tiene en cuenta la topología del esquema de estrella o copo de nieve y ejecuta solo las uniones que son necesarias para recuperar los atributos requeridos por el analista de datos.

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

Ver también

Referencias

  1. ^ Stefan Urbanek es el creador de Cubes and Data Brewery.
  2. ^ "DataBrewery / cubos / blob / master / LICENCIA". Github . Consultado el 21 de febrero de 2015 .
  3. ^ Contrataciones públicas de Eslovaquia por Transparencia Internacional Eslovaquia
  4. ^ Descripción general de Cubes 1.0 en PyData NYC 2014 (vídeo).
  5. ^ "El servidor OLAP Cubes de código abierto se adapta a los usuarios empresariales bajo presión". BúsquedaBusinessAnalytics . Consultado el 28 de marzo de 2023 .
  6. ^ Visor de cubos

enlaces externos