穷人的通用OLAP方案I--序

2024-01-17 12:08
文章标签 通用 方案 穷人 olap

本文主要是介绍穷人的通用OLAP方案I--序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2005年02月06日 02:28:00
缘起
从前到现在,用户需要从IT系统中获取信息的变化无常与程序员从传统数据库中制作报表的代价是一个永恒的矛盾。

这边厢程序员为了应付客户忽然而至的报表需求痛苦不已, 客户只想要他想知道的东西,不会管查询语句有多么复杂,优化从海量数据中提取报表的速度有多么困难。

那边厢客户为了等程序员做一个报表,快则半天,慢则一周,事情都过去了。明明只想知道一样很简单的东西, 程序员却要抱怨查询是多么复杂,数据结构是如何制约。有时候出一个报表要呆在屏幕前等半天。

而OLAP是唯一一种真正让用户获得自己所需要的报表而且不用付出巨大实现代价的方法。它能够让用户自由的定制自己的查询条件,观察、累计的维度,最后从海量数据中快速生成它。

方案
经过几年的发展,各大数据库供应商都有了自己的OLAP方案。不过我们一来不想把产品绑定在某个数据库上,二来没钱,所以还是要寻求穷人们自己的免费且底层数据库通用的方案。

从AgileJava的Blog上,看到了Mondrian + JPivot:

Mondrian
蒙德里安,OLAP核心引擎,负责从关系数据库中计算、缓存数据,响应来自表现层的使用MS家 MDX语法的查询。这个微软家的MDX语法,学起来并不难,SQL Server的书也统统有教。
在这一层要做的事情就是定义一个schema元模型,包括 维度(Dimensions), 层次(Hierarchies),级别(Levels),和成员(Members)等。Mondrian要根据它来从关系数据库中聚合数据响应MDX语法的查询。

JPivot
OLAP JSP custom tag library。提供OLAP Navigator与多 维数据的显示,并支持图表生成和Export to Excel。Mondrian的御用表现层。

初遇
Mondrian用了MS家著名的FoodMart数据作例子,Access作底层数据库,JPivot做表现层,让你几分钟之内就能把Example跑起来,感受一下OLAP报表是什么样子的。跑完一遍之后,我就发现做个客户自定制的OLAP报表如此简单.....

相关文章:
穷人的通用OLAP方案I--序
穷人的通用OLAP方案I I--Mondrian引擎
穷人的通用OLAP方案III--JPivot表现层



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=282385


这篇关于穷人的通用OLAP方案I--序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/615984

相关文章

Redis客户端连接机制的实现方案

《Redis客户端连接机制的实现方案》本文主要介绍了Redis客户端连接机制的实现方案,包括事件驱动模型、非阻塞I/O处理、连接池应用及配置优化,具有一定的参考价值,感兴趣的可以了解一下... 目录1. Redis连接模型概述2. 连接建立过程详解2.1 连php接初始化流程2.2 关键配置参数3. 最大连

MyBatis-Plus通用中等、大量数据分批查询和处理方法

《MyBatis-Plus通用中等、大量数据分批查询和处理方法》文章介绍MyBatis-Plus分页查询处理,通过函数式接口与Lambda表达式实现通用逻辑,方法抽象但功能强大,建议扩展分批处理及流式... 目录函数式接口获取分页数据接口数据处理接口通用逻辑工具类使用方法简单查询自定义查询方法总结函数式接口

MySQL 迁移至 Doris 最佳实践方案(最新整理)

《MySQL迁移至Doris最佳实践方案(最新整理)》本文将深入剖析三种经过实践验证的MySQL迁移至Doris的最佳方案,涵盖全量迁移、增量同步、混合迁移以及基于CDC(ChangeData... 目录一、China编程JDBC Catalog 联邦查询方案(适合跨库实时查询)1. 方案概述2. 环境要求3.

SpringBoot3.X 整合 MinIO 存储原生方案

《SpringBoot3.X整合MinIO存储原生方案》本文详细介绍了SpringBoot3.X整合MinIO的原生方案,从环境搭建到核心功能实现,涵盖了文件上传、下载、删除等常用操作,并补充了... 目录SpringBoot3.X整合MinIO存储原生方案:从环境搭建到实战开发一、前言:为什么选择MinI

Python通用唯一标识符模块uuid使用案例详解

《Python通用唯一标识符模块uuid使用案例详解》Pythonuuid模块用于生成128位全局唯一标识符,支持UUID1-5版本,适用于分布式系统、数据库主键等场景,需注意隐私、碰撞概率及存储优... 目录简介核心功能1. UUID版本2. UUID属性3. 命名空间使用场景1. 生成唯一标识符2. 数

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri

SQLite3 在嵌入式C环境中存储音频/视频文件的最优方案

《SQLite3在嵌入式C环境中存储音频/视频文件的最优方案》本文探讨了SQLite3在嵌入式C环境中存储音视频文件的优化方案,推荐采用文件路径存储结合元数据管理,兼顾效率与资源限制,小文件可使用B... 目录SQLite3 在嵌入式C环境中存储音频/视频文件的专业方案一、存储策略选择1. 直接存储 vs

SpringBoot服务获取Pod当前IP的两种方案

《SpringBoot服务获取Pod当前IP的两种方案》在Kubernetes集群中,SpringBoot服务获取Pod当前IP的方案主要有两种,通过环境变量注入或通过Java代码动态获取网络接口IP... 目录方案一:通过 Kubernetes Downward API 注入环境变量原理步骤方案二:通过

Springboot3+将ID转为JSON字符串的详细配置方案

《Springboot3+将ID转为JSON字符串的详细配置方案》:本文主要介绍纯后端实现Long/BigIntegerID转为JSON字符串的详细配置方案,s基于SpringBoot3+和Spr... 目录1. 添加依赖2. 全局 Jackson 配置3. 精准控制(可选)4. OpenAPI (Spri

关于跨域无效的问题及解决(java后端方案)

《关于跨域无效的问题及解决(java后端方案)》:本文主要介绍关于跨域无效的问题及解决(java后端方案),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录通用后端跨域方法1、@CrossOrigin 注解2、springboot2.0 实现WebMvcConfig