我对于是否要使用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

通过在堆栈溢出和网络上阅读类似的文章,我得出的结论是,最好的选择可能是MongoDB,因为它具有灵活的查询功能和与关系数据库的紧密联系。 如果我的写入量较大,则Cassandra似乎是一个选择-尽管我确实喜欢基于列的模型。 我是数据库设计和管理的新手,因此易用性也是一个因素(仍然是CS学生)。

从我的用例来看,哪个NoSql数据库是最佳选择?

===============>>#1 票数:4 已采纳

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

卡桑德拉

  • 更好的可用性(主/主,因此没有SPOF)
  • 更好的可伸缩性:(线性,弹性)
  • 更好的写入性能

MongoDB

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

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

===============>>#2 票数:1

您的主题说:“ nosql:MongoDB,Cassandra或数据仓库的替代品。” 但是,您的描述并不完全是数据仓库。 如果问题是:关于如何执行适当的“数据仓库”,那么答案就不是这些NOSQL数据存储区。 最好的数据仓库解决方案是无共享环境中的并行数据库(MPP)。 为了满足查询/统计报告的需要,使用了反向列数据库,例如Sybase IQ或Vertica。 这些(MPP或倒置列)中的任何一个都将在真正的数据仓库环境中清除NOSQL的时钟。

  ask by eddie-ryan translate from so

未解决问题?本站智能推荐:

4回复

需要Liquibase替代mongodb和/或cassandra数据库[关闭]

我们最近遇到了一个问题。 我们希望对我们的mongodb和Cassandra数据库架构更改以及更新/插入查询进行版本控制(类似于代码库的git)版本控制。 Liquibase只为mysql处理它。 我们需要为nosql mongodb和cassandra替代Liquibase。
2回复

用于博客/内容管理系统的NoSQL数据库? (MongoDB /卡桑德拉)

我的公司已经使用Oracle很长时间了,但是我们希望寻找NoSQL数据库来代替更快的查询和灵活的模式设计。 我试图使用MongoDB,它将成为当今最流行的NoSQL数据库。 我将其连接到Spring Data进行一些简单的查询,这很容易设置和编写代码。 由于我们将Spring MVC用
1回复

NoSQL数据库(Cassandra DB)中的数据建模

我目前正在涉及NoSQL数据库(具体来说是Apache Cassandra)的项目的规范阶段。 正如我想你们中许多人曾经经历过的那样,我必须在标准化和数据复制之间做出权衡。 就我而言,我愿意快速进行大量分析和数据提取,因此我的数据将被完全去规范化,并且我们在整个表之间复制数据(我们在
2回复

是时候学习Cassandra / MongoDB了

我将开始学习NOSQL数据库(在实践中,已经完成了我的研究并且理解了概念和建模方法)。 我正在使用时间序列数据,并且在此用例中建议同时使用cassandra和mongodb。 我想知道哪个人花更少的时间学习? (不幸的是,我没有太多时间花在学习上)PS:我注意到mongoDB有更多的教程和
5回复

哪个NoSQL数据库用于极高数据量

我正在寻找NoSQL的大量数据。 我们目前正在MySQL中存储缓存版本的网页文本,但似乎数据库将很快变得庞大。 我的要求是: 耐用性,不得丢失刷新/写入数据 读取速度非常快,写入速度相当快 完全一致的复制 优选地,在内存中加上最终的磁盘写入 我正
2回复

对于广泛的读写操作MongoDB与Cassandra

我使用的是MongoDB,但是对Cassandra来说是新手。 我曾经使用过使用MongoDB的应用程序并且不是很大的应用程序。 读写操作不是很密集。 在这种情况下,MongoDB对我很有用。 现在我正在构建一个新的应用程序(具有Stack Overflow [投票,总计视图,建议,注释
6回复

NoSQL数据库之间有什么区别?它们与传统的关系数据库有什么不同?

似乎有很多新的“NoSQL”类型数据库。 一些流行的是CouchDB,Cassandra和MongoDB。 这些数据库之间有什么区别?它们与传统关系数据库有何不同? 通过SQL DB选择NoSQL DB有哪些优缺点?
6回复

MongoDB与Cassandra vs. MySQL的实时广告平台

我正在研究一个非常注重性能的实时广告平台。 我一直用MySQL开发,但如果能够实现显着的速度提升,我可以尝试像MongoDB或Cassandra这样的新东西。 我一直在阅读这两天,但由于两者都在快速发展,很多信息似乎有点过时了。 存储的主要数据是每次点击的条目,视图的递增行和每个广告系
3回复

NoSQL数据库用于具有数十亿条记录的通讯录[关闭]

哪个数据库是存储数十亿行(姓名,电子邮件地址,电话号码等)的通讯录的合适选择? 该应用程序的读取强度很高(> 99%),并且需要与遍布全球的服务器保持高度一致性。 查询将在电子邮件地址或电话号码上进行。 我目前正在考虑HBase,Cassandra或MongoDB。
1回复

在具有MySQL与NoSQL的单个服务器上,Key-Value数据库是否存在高性能差异

在我的PHP应用程序中,我在一台服务器上的MySQL MyISAM分区表中有一个重达200GB的470M行表。 用法包括70%写入/ 30%读取。 我正在努力提高性能。 目前的主要问题是由于表级锁定导致的读/写争用。 我试图在两个选项之间做出决定: 将MySQL更改为Innod