商業(yè)智能研究(十七) Mondrian 如何使用 materialized view
商業(yè)智能研究(十七) Mondrian 如何使用 materialized view
在第十四篇文章中,我把所有關(guān)于 agg 開頭的表全部都重命名了,所以才得到了我后面要分析的sql ,如果沒(méi)有把a(bǔ)gg 開頭的表重命名的話,得到的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";
你會(huì)發(fā)現(xiàn)很多的數(shù)據(jù)都是從 agg 開頭的表中取來(lái)的. 列出其中的 "agg_pl_01_sales_fact_1997" table 是怎樣填數(shù)據(jù)的,這個(gè)腳本是從命令行執(zhí)行java 語(yǔ)句的時(shí)候在最后一段,從命令行copy出來(lái)的.
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"
這個(gè) agg 開頭的表就相當(dāng)于是materialized view 了,只不過(guò)不是所有數(shù)據(jù)庫(kù)都有materialized view ,所以就用不同的table 來(lái)存儲(chǔ)數(shù)據(jù).
當(dāng)我們把 agg 開頭的表重命名以后,mondrian 就找不到了,所以才會(huì)直接去相應(yīng)的表里面取數(shù)據(jù),這個(gè)定義是在mondrian 里面的 foodmart.xml 文件里面定義的.在WEB-INF/queries 下面.
這種表叫做 aggregate 表 ,也就是可以用這種表來(lái)強(qiáng)制mondrian 使用我們的materialized view , mondrian 官方推薦使用materialized view 建立這種 aggregate 表,你可以看到在Cube 元素,有關(guān)這些表的定義.
所以我們定義的materialized view 可以直接在foodmart.xml 里面定義.關(guān)于如何建立mondrian 的 schema 文件,可以參考mondrian 的官方主頁(yè),里面寫的很詳盡了 .
如果你要寫mondrian 的 schema 文件,建議使用mondrian 里面的workbench ,這個(gè)軟件是jaspersoft 里面的一個(gè)人寫的. pentaho 官方的那個(gè)cube desinger 我根本就打不開,不知道是不是什么配置問(wèn)題.
6月7號(hào) 收到了pentaho community 的郵件,因?yàn)槲覅⒓恿怂麄兊腷eta programmer .新的1.6 release 馬上就要發(fā)布了,其中提到了6個(gè)新的特性.
1 . Web-based Ad Hoc Query and Reporting
2 . Pentaho Metadata
3 . Security
4 . Subscriptions 一個(gè)基于時(shí)間調(diào)度的計(jì)劃任務(wù).1.5.2 才加入的新特性,使用戶更容易得到自己想要的信息.算是pentaho KPI 的一種實(shí)現(xiàn)手段.
5 . RDBMS repository
6 . Mondrian Schema and Data cache flushing
你可以看到其中的 1-5 都是跟metadata 有關(guān)的,可見metadata 的 管理對(duì)于商業(yè)智能也是越來(lái)越重要了.
由于我可能會(huì)抽出一定時(shí)間參與pentaho 1.6 的測(cè)試工作,所以更新Blog 的速度會(huì)慢下來(lái).當(dāng)然,等全部的工作做完了,我還是會(huì)寫幾篇關(guān)于參與pentaho 測(cè)試的文章的,也歡迎大家與我討論pentaho 的問(wèn)題,
我會(huì)加所以給我留言的朋友為好友,并跟他們交換msn . 希望能和喜歡商業(yè)智能,開源軟件的朋友一起共同進(jìn)步.
有哪位朋友可以推薦一下武漢的公司,最好是小一點(diǎn)的公司(大公司估計(jì)自己水品有限),如果有需要J2EE開發(fā)方向的工作職位的話,推薦一下, jj12tt@yahoo.com.cn ,先謝謝了.
posted on 2007-06-10 19:02 gemini 閱讀(540) 評(píng)論(0) 編輯 收藏