Py学习  »  MongoDB

对于这个问题,我应该使用什么“BigData”解决方案?赫巴斯?MongoDB?其他人?

slux83 • 4 年前 • 365 次点击  

这是一个关于什么类型的NOSQL解决方案更适合解决这个问题的问题。

问题

java后端系统以大约1000/秒的频率生成“参数”的“更新”。一个参数基本上是一个实体,它有一个值、一个类型、一个名称、一个描述,以及许多其他关于它的定义、有效性、检查、更新时间戳等信息。。。更新由一个java pojo表示(总共约450字节),包含大约40个字段。

有必要在未来10年内保存所有这些更新(1000/秒)。正如你所看到的,你最终将有大约350亿更新要存储。

要知道的一件重要事情是,每个更新都只有一小部分字段会更改:

  • 通常会有每次都更改的字段(请参见值和时间),
  • 其他很少改变的(比如类型,有效性检查),
  • 其他基本上不会改变的(如名称、描述、UUID等)

将所有这些更新作为独立行存储在hbase中是不可行的,因为随着时间的推移,我最终将存储数PB的数据,而且我负担不起。我还认为,不可能对这些数据进行响应性检索。

另一个重要点是,我需要支持非常复杂的检索查询,通常使用复杂的过滤器。这些查询的一些示例报告如下:

  • 检索选定1000个更新集的最后一天 参数
  • 检索给定选定参数集的最后一个值。最后一个值有时只能在几年前的历史上找到(称为稀有参数)
  • 基于名称通配符结束更复杂的筛选检索一组参数

问题

是使用像HBase这样的宽列解决方案更合适,还是使用像MongoDB这样的基于文档的解决方案更好?

我的首要任务是将存储量保持在兆字节(假设整个时间低于100-200兆字节)的顺序,并在几秒钟(通常是2-3秒)内实现查询响应。

我知道这是一个非常广泛的问题,但它会帮助我看到的观点,肯定有人比我更专家!

多谢提前

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/51785
 
365 次点击  
文章 [ 1 ]  |  最新文章 4 年前
Murugan Perumal
Reply   •   1 楼
Murugan Perumal    5 年前

HBase非常适合具有高容量随机读写访问模式的关键价值工作负载,特别是对于那些已经大量投资于HDFS作为公共存储层的组织来说。领先的Hadoop发行商将HBase定位于超高规模但相当简单的用例。

与MongoDB相比,这个定位还说明了以下几点:HBase提供了非常快速的随机读取和随机写入(如果您想查找特定密钥上的用户),但是MongoDB提供了一个更丰富的模型,通过这个模型,您可以通过在线应用程序全程跟踪用户行为

MongoDB的设计理念融合了关系技术的关键概念和新兴NoSQL数据库的优点。虽然HBase对于用例的子集具有高度的可伸缩性和性能,但MongoDB可以跨更广泛的应用程序使用。latters直观的数据模型、多文档ACID事务、丰富的查询框架、本机驱动程序和较低的操作开销通常使用户能够比HBase更快、更轻松地发布新的应用程序。