有大約6百萬條記錄的數據集。每個記錄具有相同數量的字段。有8個領域共:針對特定需求的最佳SQL NoSQL解決方案?
ID Title Color Date1 Date2 Date3 Date4...
應該有由標題和所有日期字段(或在RDBMS而言,「列」)來過濾這些記錄的方式。
數據的大小並不是很大,幾千兆字節。我們沒有很長的文本字段等(我們在架構創建過程中擺脫了它們,所以現在我們在數據集中只有非常重要的字段)。
後臺讀取&寫入數據相當密集。我們真的希望儘可能加快讀取\寫入(並按字段進行過濾)。目前我們使用的是Postgres,我們喜歡它的可靠性,但看起來並不是很快。是的,我們做了一些調整和優化,增加了索引,將它安裝在32GB內存的機器上,並設置了所有必要的設置。換句話說,它可行,但我仍然相信它可能會更好。我們需要的是速度:按日期和標題過濾記錄應該快速,非常快。數據插入可能會比較慢。後端過濾所有未處理的記錄,處理它,並設置日期標記(處理日期時間)。每5-10秒就會有大約50個後端「工人」執行,因此數據庫應該能夠執行得非常快。我們也做一些數據庫迭代(一種map \ reduce作業),所以數據庫解決方案應該能夠執行這種類型的任務(這裏RDBMS並不是很好)。
我們沒有加入,數據已經針對大數據解決方案進行了優化。只有一個'大桌子'。
而且我們希望在單個節點上或許多小型實例上運行它。數據並不重要。但是我們希望避免使用昂貴的解決方案,所以我們正在尋找一種SQL或NoSQL解決方案,這種解決方案在相同便宜的硬件上執行速度會比Postgres快。
我記得大約一兩年前我嘗試過MongoDB。從我記憶中來看,過濾並不是那麼快。卡桑德拉更好,但我記得它只能執行一小部分過濾查詢。 Riak很好,但只適用於擁有很多機器的大集羣。這是我非常基本的經驗,如果你們知道這些解決方案中的一個表現出色,請寫下。或建議另一種解決方案
謝謝!
「數據量不是很大,幾千兆字節。」 - 這對Postgres來說很小。它可以(並且確實)處理數千次更大的數據庫而沒有任何性能問題。堅持你目前使用的是什麼;只是學會更好地使用它。 –