我有一個關係數據庫,從幾個角度(360)有大約300M客戶及其屬性。 爲了執行一些分析,我打算對MongoDB進行提取,以便獲得更適合應用數據挖掘技術的「平坦」表示。 會有道理嗎?爲什麼?提取到MongoDB進行分析
謝謝!
我有一個關係數據庫,從幾個角度(360)有大約300M客戶及其屬性。 爲了執行一些分析,我打算對MongoDB進行提取,以便獲得更適合應用數據挖掘技術的「平坦」表示。 會有道理嗎?爲什麼?提取到MongoDB進行分析
謝謝!
號
它不是存儲,這將是關注這裏,是你的扁平化策略。
如何以及在哪裏存儲展平的數據是一個次要問題,請注意MongoDB是一個文檔數據庫,無論如何本質上並不平坦。
一旦你的數據的形狀適合你的分析,那麼,看看存儲策略,MongoDB可能是合適的,或者你可能會發現允許簡單的Map Reduce類型功能的分析會更好。 (例如HBase)
它可能是有意義的。你可以做的一件事是在橫向擴展設置中設置MongoDB。然後用合適的數據結構,你可以在整個碎片的並行查詢(它可以爲你自動完成):
http://www.mongodb.org/display/DOCS/Sharding
這可能使實時分析成爲可能時,否則不會有是。
如果您選擇正確的數據模型,則可以通過避免任何類型的連接(在橫向範圍內再次良好)來加快查詢速度。
最後,你可以用map/reduce來處理數據。
http://www.mongodb.org/display/DOCS/MapReduce
一個告誡要注意的是有沒有像SQL Reporting Services的MongoDB的AFAIK。
我發現MongoDB的mapreduce很慢(但是他們正在努力改進它,請參見:http://www.dbms2.com/2011/04/04/the-mongodb-story/)。
也許你可以使用Infobright的社區版進行分析?看到這裏:http://www.infobright.com/Community/
關係數據庫像Postgresql也可以做分析(afaik MySQL不能做一個哈希連接,但其他關係數據庫可以)。