大数据或关系数据库(如MySQL集群)?

时间:2015-03-18 08:04:05

标签: mysql relational-database mysql-cluster nosql

我将在我的项目中处理大量数据。我已阅读有关大数据概念但尚未使用它的信息。但是阅读所有那些大数据文档我仍然不确定我的需求是否需要大数据,或者处理传统的关系数据库是否合适。

以下是有关我的数据库的一些信息。

我的主数据库是不同数据源的存储库。每个数据源都处理相同类型的数据(同一域中的数据),但某些数据源包含额外的字段,这些字段在其他数据源中不可用,而某些数据源包含的字段较少。换句话说,这些数据源中的一些数据字段是相同的,但有些是不同的。所以我的核心数据库应该包含所有这些字段。我的核心数据库中的总字段大约应为2000个字段,并且可能包含1000万到2000万条记录。

我的核心数据库中发生的数据库操作将是数据插入和读取(搜索)。由于它处理大量数据,我正在考虑使用大数据概念。但我仍然不确定这是否适合大数据。因为我的一些数据具有相似的特征(相同的字段),而另一些则包含额外的信息。我需要在我的数据库中快速搜索所有类型。 感谢。

1 个答案:

答案 0 :(得分:6)

像MySQL这样的关系型数据库可以处理数十亿行/记录,因此决定将取决于您的用例。对于大数据NoSQL系统,了解每个系统的优势和局限如何映射到您的用例非常重要,因为它们的行为可能非常不同。

以下是一些MySQL示例:

在第二个例子中,他们从MySQL迁移到Redis,因为他们需要存储相当于3590亿行,远远超过他们在MySQL中存储的9.5亿行。

鉴于您说您有快速搜索要求,因此了解您需要哪种搜索非常重要,因为不同的数据库会支持不同的搜索。此外,某些支持的搜索功能可能有限。如果您的搜索要求超出了核心数据存储功能,通常会添加全文解决方案,例如,使用Cassandra作为数据存储,使用Elasticsearch作为搜索组件。

为此决定提供一些背景知识,考虑您对CAP定理的要求是有用且重要的,该定理指出分布式计算机系统可以提供以下一些但不是全部的保证(来自维基百科):

  • 一致性(所有节点同时看到相同的数据)
  • 可用性(保证每个请求都收到响应 关于它是成功还是失败)
  • 分区容差(系统继续运行,尽管任意消息丢失或部分系统出现故障)

http://en.wikipedia.org/wiki/CAP_theorem

从图形上,您可以看到包括MySQL和NoSQL解决方案在内的不同数据库解决方案如何映射出来:

enter image description here

如果您提供有关您的用例的更多信息,您可以获得更详细的回复。