2012-10-21 90 views
0

我正在使用InfiniDB將大量行(大約100-500萬個)聚合到大約少於5000個組。 (在大多數查詢中,過濾了1億到5億行,因此聚合將在更少的行上工作)用於快速彙總大量數據的替代方案

它用作網站的旅行搜索引擎的原型,您可以將它想象爲「爲特定人數的所有房間組合提供每個住宿的最優價格」。

它的正常工作,直到我不得不自聯接表幾次,找到最好的價格組合(它已經與邏輯過濾器降低,使每聯接減少組合的數量太多)

我可能會將表格的內容拆分到不同的表格中,並且它的工作性能可以接受,但現在我問自己,如果infinidb(或一般的列嚮導數據庫)是解決此問題的最佳解決方案。

什麼是替代品? 我認爲每個map/reduce機制(mongodb,hadoop)會慢很多,還是有一點我想念它?

它不應該要求超過2-5個服務器。

要說清楚: 我不指望「這樣會完美!」答案,但對替代品的好處。 我也認爲infinidb是我的方案的一個不好的解決方案。

謝謝你的想法!

+0

您需要對數據的性質,架構和查詢有更具體的瞭解。根據我們可能能夠爲查詢提供sql優化,替代sql數據結構以允許更有效的sql查詢,甚至建議完全不同的體系結構。但是,現在看起來太模糊了。 – MatBailie

回答

1

我在9臺機器上使用了infinidb 3,它們的表具有> 300億行,沒有任何問題,即使有自連接。

給我一個例子ddl + dql。也許我可以幫你改進查詢。

在Infinidb之前,我們嘗試了hbase/cassandra/mongodb和技術,我們不喜歡它。 對於5億行,如果你每天需要做2-3次,你可以使用簡單的Mysql。

+0

我認爲知道它是爲用戶設計的搜索引擎很重要,所以我們不能等待超過5-10秒。最後我已經搬到了mongodb。我之前測試過它,但是使用map/reduce的速度很慢。現在,使用新的彙總框架,它足夠快,易於維護。 – RomanKonz