我正在開發一個項目,它將日誌聚合和分析作爲更大項目的一部分。我不知道要選擇哪個數據庫來處理這些日誌。最近我在MongoDB和Cassandra之間來回切換,但我確定還有其他人也適合我的需求。我應該選擇哪一個,爲什麼?Mongodb vs Cassandra用於聚合,搜索和分析許多日誌
整個事情都相當現在開始,但這裏有要求爲止:
- 日誌在系統日誌格式
- 查詢大多是在一個小的字符串,現在的消息,但我會在一個單獨的領域得到它。並且還會有基於日期,嚴重性或標籤的過濾器。很少有人會在消息中搜索隨機字符串。
- 從一些日誌條目的每小時分析
- 保留日誌的時間配置量
- 更會來的,我敢肯定:)這就是爲什麼我想的NoSQL是比較合適的,因爲我們可以改變模式。
我們希望將數據庫增加到一些TB數據(並且每秒大約50K個插入),因此分片是必須的。查詢並不常見,因爲它們主要由大型項目的開發人員使用。但結果需要在幾秒鐘內返回。
現在,所有機器的存儲是普遍的(而且速度很慢)。所以對於可伸縮性,我想我們需要充分利用內存和多線程 - 爲了使分片變得有意義。
到目前爲止,我得到的基本想法是MongoDB具有更多特性,比如正則表達式或排序結果,並且它更容易設置爲體面配置,而Cassandra似乎更具可伸縮性(通過簡單添加服務器),並且還具有一些簡潔的功能,比如在數據上添加TTL。
我已經結束了使用Elasticsearch。看看這裏的一些更多的信息:[鏈接](http://www.elasticsearch.org/tutorials/2012/05/19/elasticsearch-for-logging.html) – 2012-06-09 14:53:05