2012-02-18 24 views
4

我想寫一個自定義網站分析和行動跟蹤解決方案,並將其用作反饋機制,例如。用於搜索或內容建議。針對網絡分析的最佳數據存儲

如果只用於短期數據,我會使用一些NOSQL引擎,但數據保留有限。但理想情況下,我想保持悠久的歷史。

過去我見過的一個很好的方法是使用mysql進行存儲,每月一張表,舊錶被轉換爲MySQL ARCHIVE格式。爲了瀏覽檔案和彙總數據,實現了MySQL視圖。

我的問題: Google Analytics如何存儲其數據?在一個結構化的數據庫或其他東西。您建議如何避免長時間記憶豬,同時保持查詢可能性的靈活性?

(我不關心寫入速度爲DB,這將在異步分批發生,而不是在實時)

+0

您可以嘗試一些BI工具。例如,Infobright有一個社區版本,可能適合您的工作。它以基於列的格式內部存儲數據,但您可以使用標準SQL來收集統計信息。 – 2012-02-18 12:07:40

+0

謝謝ypercube,這對我來說可能有更多的學習曲線。 – Martin 2012-02-18 12:30:29

回答

2

谷歌使用自己的大表執行存儲其數據。如果你對大數據解決方案感興趣並利用大數據,你應該看看這個。對於由Google Big Table構建的開源實現,請查看Hbase/Hadoop。我會在一分鐘內回覆一些鏈接。

分析本身對這種類型的數據進行利用map/reduce操作。

+0

非常感謝您將我指向Hbase。我知道Hadoop的存在,因爲我可能不得不以這種方式來處理我正在處理的其他事情,所以這符合策略。 – Martin 2012-02-18 12:14:41

+0

很酷的傢伙,很高興我能幫到 – Ryan 2012-02-18 12:31:23

1

我認爲Urchin的最初使用它自己的定製多維數據庫,但我不知道,如果谷歌Analytics(分析)仍然使用它。無論如何,分析系統通常使用基於Cube的架構來進行快速OLAP瀏覽。

我知道Microsoft和Oracle在他們的數據庫工具中有這種類型的功能,但是它們非常昂貴。我不知道任何開源多維數據集數據庫;但是如果你使用的是Java,那麼我認爲Mondrian的工作方式相同,但是使用關係數據庫進行存儲。

+0

我昨天花了很多時間,試圖讓Oracle運行在Debian上來測試他們企業版的一部分。這是一件非常痛苦的事情,我認爲我不會在一個不正式的兼容操作系統上在高效的環境中使用它。但非常感謝你的關鍵字。 – Martin 2012-02-19 12:46:38