双子星座

 

商业智能研究(十七) Mondrian 如何使用 materialized view

商业智能研究(十七)     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 . 希望能和喜欢商业智能,开源软件的朋友一起共同进步.


有哪位朋友可以推荐一下武汉的公司,最好是小一点的公司(大公司估计自己水品有限),如果有需要J2EE开发方向的工作职位的话,推荐一下, jj12tt@yahoo.com.cn ,先谢谢了.


posted on 2007-06-10 19:02 gemini 阅读(535) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航:
 

导航

统计

常用链接

留言簿(3)

随笔档案

相册

搜索

最新评论

阅读排行榜

评论排行榜