我在具体决定是否使用 MongoDB 或 Cassandra 来满足我的数据库需求和希望输入我的用例以指导我的决定之间陷入困境。
要求:
数据源
- X 个数据中心包含 Y 个服务器。
- 每台服务器有 N 个网络和 M 个统计信息。
例如目前(3 个数据中心,50 台服务器,19 个网络和 10 个统计数据)。这些数字会随着时间的推移而增加。
数据获取:
- 每小时为每个服务器解析一个 xml 页面(~20kb / page )。(〜25mb /天)
数据存储:
- 有组织的(每小时、每天、每月)结构,使用聚合来查找更高的值(小时 -> 天)
注意:我们需要具备以下能力:
- 动态添加/删除值(数据中心/服务器/网络/统计)和可扩展性是一个关键问题,因此我们正在从 SQL 转向 NoSQL。
- 可靠性也是一个高优先级(主/从,无损坏),并且需要“简单”的可维护性。
- 写作是每小时一次,不需要“大量”的写作表现。
示例用例:在前端,您将像这样查询,选择;日期窗口、期间报告、特定数据中心、特定/所有网络、特定/所有统计数据以及结果是在服务器上总计还是单独。
Example #1
- From: August 16th 2012 -> April 16th 2013
- Period: Daily
- Data-center: EU A
- Stat-type: Error
- Servers: All
通过阅读 stack-overflow 和 Web 上的类似文章,我得出的结论是,我最好的选择可能是 MongoDB,因为它具有灵活的查询和与关系数据库的接近性。如果我的写作量较大,Cassandra 似乎是一种选择——尽管我确实喜欢基于列的模型。我是数据库设计和管理的新手,所以易用性也是一个因素(仍然是 CS 学生)。
从我的用例来看,哪个 NoSql 数据库是最佳选择?