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