我遇到了关于是否与MongoDB或Cassandra一起考虑我的数据库需求的具体决定,并希望在我的用例上输入以指导我的决定。
要求:
数据来源
e.g。目前(3个数据中心,50个服务器总数,19个网络和10个统计数据)。这些数字会随着时间的推移而增加。
数据提取:
数据存储:
注意:我们需要能够:
示例用例: 在前端你会查询,选择;日期窗口,期间报告,特定数据中心,特定/所有网络,特定/所有统计信息以及结果是在服务器上汇总还是个人。
Example #1
- From: August 16th 2012 -> April 16th 2013
- Period: Daily
- Data-center: EU A
- Stat-type: Error
- Servers: All
从堆栈溢出和网络上阅读类似的文章,我得出结论,我最好的选择可能是MongoDB的灵活查询和与关系数据库的亲密关系。如果我的写作量更高,Cassandra似乎是一个选项 - 虽然我喜欢基于列的模型。 我是数据库设计和管理的新手,因此易用性也是一个因素(仍然是CS学生)。
从我的用例中,NoSql数据库是最好的选择吗?
答案 0 :(得分:4)
你在结论中几乎把它钉在了一起。要想出决定,你必须在每个数据库的特权之间进行选择,即:
Cassandra :
MongoDB :
我认为坚持不是一个问题,无论如何,他们最终都是一致的。即使MongoDB可能更容易入手(更接近关系数据模型),Cassandra也不是那么难,你只需要了解面向列的范例。无论从技术角度来看,我想答案取决于您对系统规模增长的预期以及您的请求是否会发展。
答案 1 :(得分:1)
您的主题是“nosql:MongoDB,Cassandra或数据仓库的替代方案。”但是,您的描述并不完全是数据仓库。如果问题是:关于如何做一个合适的“数据仓库”,那么答案就不是这些NOSQL数据存储。最好的数据仓库解决方案是无共享环境中的并行数据库(MPP)。对于查询/统计报告需求,反向列数据库(如Sybase IQ或Vertica)。这些(MPP或反向列)中的任何一个都将在真正的数据仓库环境中清理NOSQL的时钟。