2012-03-23 114 views
5

我需要創建一個分析系統。我已經使用MognoDB和PHP構建了該系統,但未使用OLAP。現在我的查詢確實是我能得到的最好的,但是系統非常慢,因爲沒有立方體。加載最近7天的報告可能需要一分鐘時間。我真的需要立方體的選項 - 切片&骰子。OLAP多維數據集 - PHP和MongoDB

那麼對我來說,解決方案是什麼?是否有一個很好的用MongoDB構建的多維數據集系統,可以通過PHP插入&視圖數據?也許MongoDB不會對我有好處?我應該使用另一個數據庫,並從0開始所有的系統?哪些OLAP解決方案使用PHP?

編輯:更多信息 - 那麼,該系統就像谷歌分析。需要能夠知道每天有多少觀看次數,需要能夠僅從指定的流量來源和國家進行報告。系統每天需要處理1,000,000個獨特的視圖。 但是,不僅要計數的意見,還需要能夠看到有多少用戶正在返回,每個用戶的平均時間是多少等。

謝謝。

+0

您對數據類型,記錄數量,主數據,數據來源是什麼,報告要求可能是什麼,您使用的是什麼聚合數據沒有任何說明。我們如何在不猜測的情況下回答這個問題?你需要提供更多的信息,我非常懷疑答案只是cube + olap引擎。 Thanls。 – T9b 2012-03-23 10:12:23

+0

Thanls。對不起,補充。你能解釋一下這個cube + olap引擎嗎?我怎樣才能使用PHP?我的mongodb呢?我應該使用其他數據庫嗎? – 2012-03-23 10:17:56

+0

我不確定你對PHP和mongoDB的迷戀。所有你需要的東西都可以在任何數據庫中完成。聽起來你要麼不適當地加載你的數據,要麼你的SQL不夠好。請提供您的代碼,數據庫結構等......您認爲它表現不佳。 – T9b 2012-03-23 15:37:03

回答

2

MongoDB不是爲OLAP多維數據集類型的應用程序構建的。我可以想到兩種方法:

1)提前確定需要做什麼查詢,並提前以最佳格式存儲數據。例如,如果您想知道每個國家/地區每天的訪問次數,那麼每次訪問都會執行以下操作:

db.visits.update({'country':country,'day':current_day()},{$ inc:{visited:1}})

對每個度量重複一次。從應用程序到分析數據庫的即時消息更新將爲向訪問者提供請求提供最小的開銷。然後你的查詢將在很大程度上預先計算。

2)試試JasperSoft的MongoDB後端。

2

要更新一點響應,icCube現在提供訪問MongoDB。您應該能夠設置一些MongoDB查詢來創建icCube將用於報告和分析的表格。

相關問題