商业智能研究(十七) Mondrian 如何使用 materialized view
在第十四篇文章中,我把所有关于 agg 开头的表全部都重命名了,所以才得到了我后面要分析的sql ,如果没有把agg 开头的表重命名的话,得到的sql 是不一样的 :
select "agg_c_10_sales_fact_1997"."the_year" as "c0",
sum("agg_c_10_sales_fact_1997"."store_sales") as "m0",
sum("agg_c_10_sales_fact_1997"."store_cost") as "m1"
from "agg_c_10_sales_fact_1997" "agg_c_10_sales_fact_1997"
where "agg_c_10_sales_fact_1997"."the_year" = 1997
group by "agg_c_10_sales_fact_1997"."the_year";
你会发现很多的数据都是从 agg 开头的表中取来的. 列出其中的 "agg_pl_01_sales_fact_1997" table 是怎样填数据的,这个脚本是从命令行执行java 语句的时候在最后一段,从命令行copy出来的.
INSERT INTO "agg_pl_01_sales_fact_1997"
("product_id", "time_id", "customer_id", "store_sales_sum",
"store_cost_sum", "unit_sales_sum", "fact_count")
SELECT "product_id" AS "product_id", "time_id" AS "time_id",
"customer_id" AS "customer_id",
SUM ("store_sales") AS "store_sales",
SUM ("store_cost") AS "store_cost",
SUM ("unit_sales") AS "unit_sales", COUNT (*) AS fact_count
FROM "sales_fact_1997"
GROUP BY "product_id", "time_id", "customer_id"
这个 agg 开头的表就相当于是materialized view 了,只不过不是所有数据库都有materialized view ,所以就用不同的table 来存储数据.
当我们把 agg 开头的表重命名以后,mondrian 就找不到了,所以才会直接去相应的表里面取数据,这个定义是在mondrian 里面的 foodmart.xml 文件里面定义的.在WEB-INF/queries 下面.
这种表叫做 aggregate 表 ,也就是可以用这种表来强制mondrian 使用我们的materialized view , mondrian 官方推荐使用materialized view 建立这种 aggregate 表,你可以看到在Cube 元素,有关这些表的定义.
所以我们定义的materialized view 可以直接在foodmart.xml 里面定义.关于如何建立mondrian 的 schema 文件,可以参考mondrian 的官方主页,里面写的很详尽了 .
如果你要写mondrian 的 schema 文件,建议使用mondrian 里面的workbench ,这个软件是jaspersoft 里面的一个人写的. pentaho 官方的那个cube desinger 我根本就打不开,不知道是不是什么配置问题.
6月7号 收到了pentaho community 的邮件,因为我参加了他们的beta programmer .新的1.6 release 马上就要发布了,其中提到了6个新的特性.
1 . Web-based Ad Hoc Query and Reporting
2 . Pentaho Metadata
3 . Security
4 . Subscriptions 一个基于时间调度的计划任务.1.5.2 才加入的新特性,使用户更容易得到自己想要的信息.算是pentaho KPI 的一种实现手段.
5 . RDBMS repository
6 . Mondrian Schema and Data cache flushing
你可以看到其中的 1-5 都是跟metadata 有关的,可见metadata 的 管理对于商业智能也是越来越重要了.
由于我可能会抽出一定时间参与pentaho 1.6 的测试工作,所以更新Blog 的速度会慢下来.当然,等全部的工作做完了,我还是会写几篇关于参与pentaho 测试的文章的,也欢迎大家与我讨论pentaho 的问题,
我会加所以给我留言的朋友为好友,并跟他们交换msn . 希望能和喜欢商业智能,开源软件的朋友一起共同进步.
分享到:
相关推荐
mondrian是一款开源的在线分析处理(OLAP)服务器,它基于Java语言开发,常用于构建数据仓库和商业智能系统的分析层。本资源提供了一种详细、实用的mondrian源码运行配置方法,使得开发者能够更好地理解和调试...
【商业智能】(Business Intelligence, BI)是一种信息技术应用,它旨在帮助企业和组织通过收集、整理、分析大量数据,转化为有用信息,进而支持决策制定。商业智能的核心在于将数据转化为知识,提升企业的运营效率和...
- **错误检测**:Mondrian能提前发现潜在的编程错误,如未使用的变量、未定义的函数引用、空指针异常等。 - **代码质量提升**:通过分析代码结构,可以识别出冗余代码、过度复杂的设计和不良实践,从而引导开发者...
Mondrian OLAP引擎是开源商业智能分析的一个重要工具,它支持多维数据分析和商业智能应用。OLAP(Online Analytical Processing,联机分析处理)是一种技术,允许用户对业务数据进行复杂的查询和分析,这些数据可以...
Mondrian是一款开源的在线分析处理(OLAP)引擎,它主要用Java编写,被广泛应用于数据分析和商业智能系统中。本实例将带你深入理解如何利用Mondrian来执行多维数据表达式(MDX)查询,针对已构建的数据立方体XML进行...
mondrian是一个开源的在线分析处理(OLAP)服务器,它主要用Java编写,适用于构建数据仓库和商业智能应用。在本资源"mondrian-api.zip"中,包含的是mondrian 4.0版本的API,这对于开发者来说是一个宝贵的参考资料,...
mondrian 是一个开源的在线分析处理(OLAP)引擎,用于商业智能和数据仓库系统。它的源码提供了深入了解OLAP工作原理以及如何构建和定制OLAP解决方案的机会。在这个压缩包中,我们主要关注mondrian的引擎部分,以及...
在OLAP系统中,Mondrian是一个开源的多维数据集引擎,常用于构建数据仓库和商务智能应用。本文将深入探讨Mondrian的核心特性、工作原理以及如何使用它来构建高效的数据分析平台。 一、Mondrian简介 Mondrian是由...
mondrian和XMLA是两种在数据仓库和商业智能领域中重要的技术。mondrian是一个开源的OLAP(在线分析处理)引擎,它允许用户通过多维数据集进行快速查询和分析。XMLA(XML for Analysis)则是一种标准的通信协议,用于...
3. 商业智能:Mondrian Schema 可以用于定义商业智能应用程序的数据模型,进行商业智能分析和报表分析。 Mondrian Schema 是一种功能强大且灵活的多维分析模型定义语言,广泛应用于多维分析、数据仓库和商业智能等...
mondrian是开源的在线分析处理(OLAP)引擎,它主要被用来构建数据仓库和商业智能系统的报表功能。在Web项目中,Mondrian通常与Pentaho Data Integration(Kettle)、Pentaho BI Server等工具结合使用,提供强大的...
本文档介绍 OLAP、MDX 基本概念和原理、Mondrian 的使用和一些前端工具的使用。其中 “基本概念”和“MDX”这两章基本都是通用的内容,并不仅限于 Mondrian。 本文档主要用做简略的指南,更深入、更详细的内容请参考...
在这个"Mondrian+Oracle 实例"中,我们将深入探讨如何配置和使用Mondrian与Oracle数据库的集成,以及如何解决可能出现的问题。 1. **Mondrian概述** Mondrian是一个基于Java的OLAP服务器,它解析多维数据模型...
[Manning Publications] Mondrian 实战 英文版 [Manning Publications] Mondrian in Action E Book ☆ 出版信息:☆ [作者信息] William Back D Nicholas Goodman Julian Hyde [出版机构] Manning ...
自已刚开始学mondrian,里面有两个文件,一个是mondrian自带的一个演示示例,是基于oracle实现的过程。还有一个是eclipse中配置mondrian源代码的过程。都是我自己总结的,原创。QQ:6855957
在本项目中,我们将讨论如何将mondrian集成到一个WAR项目中,并使用Maven作为构建工具,而不是mondrian默认的Ant构建系统。 **Maven简介** Maven是Apache软件基金会开发的一款项目管理和综合工具,主要用来构建Java...
mondrian是一个开源的OLAP(在线分析处理)引擎,主要用于构建数据仓库和商业智能应用。这篇文档深入探讨了mondrian的源代码,旨在帮助开发者理解其内部工作原理和架构。 1. 概述 mondrian源码分析主要分为两个部分...
本教程将深入探讨mondrian的使用,包括如何创建Cube、维度、度量以及相关属性,同时也涵盖了MDX(多维表达式)的语法基础。 首先,让我们了解mondrian的基本模式。mondrian通过连接到数据源,如关系数据库,来构建...