Mondrian 日期维度
因此,每次我使用Saiku或其他BI工具進(jìn)行演示或概念驗(yàn)證時(shí),我都會(huì)感到煩惱。我必須花時(shí)間,從Pentaho數(shù)據(jù)集成挖掘日期維度樣本轉(zhuǎn)換,將其指向我的新數(shù)據(jù)庫(kù),然后運(yùn)行它以生成一個(gè)很長(zhǎng)的日期列表和日期部分,這些部分允許我們作為用戶有效地切片和切塊。
我知道蒙德里安現(xiàn)在有一個(gè)日期生成器的東西,但這不是我正在尋找的,因?yàn)檫@涉及寫入數(shù)據(jù)庫(kù),我想要的東西a)更快地開始b)非破壞性。
所以前一段時(shí)間我有了一個(gè)想法,昨晚,與伍德斯托克藍(lán)光一起,而夫人睡覺(jué),并在給嬰兒一些公式和在網(wǎng)站幫助系統(tǒng)上回答隨機(jī)問(wèn)題之間,我寫了一個(gè)蒙德里安模式處理器允許將動(dòng)態(tài)日期信息作為內(nèi)聯(lián)表注入我的模式。
我今天早上一直在擴(kuò)展它以提供更多的靈活性并解決更多的用例,現(xiàn)在它至少在MySQL上工作得很好,我可以發(fā)布它并讓人們玩游戲。
它不應(yīng)該提供與它應(yīng)該提供的數(shù)據(jù)庫(kù)本身的優(yōu)化日期維度相同的性能。Mondrian實(shí)際上做的是直接在查詢中創(chuàng)建表結(jié)構(gòu),因此將連接日期列連接在一起并不是我曾經(jīng)運(yùn)行的最高性能查詢,也就是說(shuō),它并沒(méi)有那么糟糕,如果你碰巧有增量與存在的日期有關(guān)的ID,然后它實(shí)際上非常快。
我看到它被用于演示,概念證明,但是在你無(wú)法更改源表以添加日期維度的情況下,但你仍然想要將其分解并切片和切塊。
目前它僅適用于Mondrian 4,這足以滿足我的需求,因?yàn)槲宜龅拇蟛糠止ぷ魇荢aiku Server / Mondrian 4,但它很容易移植。
這是Foodmart示例連接字符串:
JDBC:蒙德里安:的Jdbc = JDBC:MySQL的://本地主機(jī)/的FoodMart;目錄=蒙德里安:///datasources/foodmart4.xml; JdbcDrivers = com.mysql.jdbc.Driver; DynamicSchemaProcessor = bi.meteorite.MondrianDateDimension;起始日期= 19970101 ;結(jié)束日期= 19981231;立方體=銷售= the_date,倉(cāng)庫(kù)= TIME_ID正如您所看到的,我向它傳遞了一個(gè)開始日期字符串,結(jié)束日期字符串,以及我希望它與多維數(shù)據(jù)集的外鍵一起填充的多維數(shù)據(jù)集。然后,這將創(chuàng)建一個(gè)日期表,其中包含日期鍵以加入事實(shí)。如果像我提到的那樣,你已經(jīng)有了一個(gè)日期鍵,你可以傳遞它的InitID和一個(gè)值,它將啟動(dòng)一個(gè)Integer鍵而不是日期鍵并加入到它,這樣性能更高。
你可以在github上找到源代碼:
OSBI / mondriandategenerator
通過(guò)在GitHub上創(chuàng)建帳戶,為mondriandategenerator開發(fā)做出貢獻(xiàn)。github.com
或者從這里下載構(gòu)建版本。
如果您想要查看其他任何內(nèi)容或更改您希望使其更有用,請(qǐng)告訴我們。
總結(jié)
以上是生活随笔為你收集整理的Mondrian 日期维度的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 11月25日在线研讨会 | 整车人机工效
- 下一篇: TS视频一