我有一个MS SQL数据库,用于捕获带宽统计信息.我们有一个原始数据表,为了提高不同深入分析级别的报告速度,我们按小时,每天和每周汇总和汇总数据到单独的表.
诸如Mongo或Raven之类的NoSQL数据库是否适合此类应用?
不同的NoSQL解决方案针对不同的用途解决了不同的问题 - 所以首先要做的就是查看问题并将其分解
您正在大量写入存储,因此写入速度对您很重要
您希望对该数据执行聚合操作,并使其结果易于查询
从事物的声音来看读取速度并不重要,至少在"网络应用程序必须真正响应数百万人"这种方式
我不知道你是否需要动态查询
让我们以非常高的水平,广义的方式来看看Couch,Mongo和Raven
掠夺
快写
快速查询(最终一致,预先计算,通过map/reduce进行聚合)
动态查询可能,但不适合您的用例,因为您最有可能按日期查询等
蒙戈
致盲快速写入(在我看来危险,因为电源关闭意味着丢失数据;-))
慢读(相对),通过map/reduce进行聚合,而不是预先计算
动态查询只是what_you_do,但如果您想要对此类数据进行任何类型的性能,则可能必须在列上定义索引
长椅
快写
Fast-ish读取(预先计算,但仅在您阅读时更新(IIRC)
动态查询不可能,所有都是通过map或map/reduce函数预先定义的
所以,基本上 - 你需要对这类数据进行动态查询吗?读取速度对您来说非常重要吗?如果你需要动态查询,那么你会想要Raven或Mongo(对于这种事情,Couch可能不是你想要的东西).
FWIW,Mongo在我看来唯一的用例是用于记录,所以你可能在那里有一个anwer.