2012-03-30 10 views
0

我正在爲客戶評估Mondrian-Saiku解決方案。Mondrian - 事實表數據爲XML

在分析了他們當前的數據庫模式之後,我意識到他們的「事實數據表」數據目前存儲在XML中。 XML本身在MySQL表中存儲爲blob數據類型。可以這樣想:表格包含公司的所有交易;每個事務的細節都存儲在他們自己的XML中;每個XML字符串都存儲爲給定事務行中的一個字段值。

由於Mondrian XML模式需要明確使用列名,所以存在一個小小的困境。

由於數據大小和來自其他系統的依賴關係,不得不提取並將XML數據傳輸到新表中(對於我的目的而言並不現實),有沒有什麼辦法可以將我的客戶端的現有設置用於此目的Mondrian-Saiku實施的一部分?

回答

1

您需要以傳統的表格方式公開數據。這裏的數據庫是什麼?你可以創建一個數據庫視圖,它對blob中的XML進行一些xml處理並公開列?

或者,也許像複合或jboss teiid可以幫助這裏。這些工具使您可以將其作爲標準的查看錶,幾乎任何東西。雖然它可能不夠快!

+0

感謝您的輸入。自發布這個問題以來,我通過實驗發現Mondrian XML通過MySQL支持ExtractValue()。通過這種方式,不需要對現有數據庫進行更改。瓶頸似乎來自ExtractValue(),它被執行了很多次,用於數據聚合。 – kaspnord 2012-04-29 05:41:28

+0

好的。我看到了;我以爲你說整個記錄都是用XML編碼的!所以我誤解了你的問題。是的,我認爲Mondrian以這種方式支持任何SQL函數。顯然,它應該在第一次執行後很好地緩存,但是如果它仍然太慢,那麼您需要找到一種更快的方式來解析xml,或者按照建議將數據提取到適當的列。或者可能使用Agg表,但在這種情況下,這只是OTT! – Codek 2012-04-30 06:50:46