【问题标题】:nosql: MongoDB, Cassandra or alternative for data warehousingnosql:MongoDB、Cassandra 或数据仓库的替代方案
【发布时间】:2013-04-09 02:46:44
【问题描述】:

我在具体决定是否使用 MongoDB 或 Cassandra 来满足我的数据库需求和希望输入我的用例以指导我的决定之间陷入困境。

要求:

数据来源

  • 包含 Y 服务器的 X 数据中心。
  • 每台服务器有 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 数据库是最佳选择?

【问题讨论】:

  • 从这些基准测试来看,性能似乎不是问题。考虑到读取性能更为关键,从这些基准测试来看,MongoDB 和 Cassandra 都符合需求。我认为我真正的问题是哪个提供了更多功能(MongoDB),尽管有什么我忽略的吗?

标签: mongodb cassandra database nosql


【解决方案1】:

你在结论中几乎把它钉牢了。要下定决心,您主要必须在每个 DB 的特权之间进行选择,即:

卡桑德拉

  • 更好的可用性(master/master 所以没有 SPOF)
  • 更好的可扩展性:(线性、弹性)
  • 更好的写入性能

MongoDB

  • 更好的查询(API 和原生全文搜索)
  • 易于使用(各种 API、XML/JSON...)

我猜一致性不是什么大问题,无论如何它们最终都是一致的。即使 MongoDB 可能更容易上手(更接近关系数据模型),Cassandra 也不是那么难,您只需要了解面向列的范例即可。无论如何,从技术角度来看,我想答案取决于您希望系统如何扩大规模以及您的请求是否会发展。

【讨论】:

    【解决方案2】:

    您的主题是“nosql:MongoDB、Cassandra 或数据仓库的替代方案”。但是,您的描述并不完全是数据仓库。如果问题是:关于如何做一个合适的“数据仓库”,那么答案是没有这些 NOSQL 数据存储。最好的数据仓库解决方案是无共享环境中的并行数据库 (MPP)。对于查询/统计报告需求,Sybase IQ 或 Vertica 等倒排数据库。在真正的数据仓库环境中,这些(MPP 或倒排)中的任何一个都将清除 NOSQL 的时钟。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-22
      • 2014-07-21
      • 2018-01-30
      • 1970-01-01
      • 2017-12-25
      • 1970-01-01
      • 2012-08-21
      • 1970-01-01
      相关资源
      最近更新 更多