0

我将在我的项目中处理大量数据。我读过大数据概念,但从未使用过。但是阅读所有这些大数据文档,我仍然不确定我的需求是否需要大数据,或者使用传统的关系数据库处理是否好。

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

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

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

4

1 回答 1

6

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

以下是一些 MySQL 示例:

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

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

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

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

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

以图形方式,您可以在此处查看不同的数据库解决方案(包括 MySQL 和 NoSQL 解决方案)是如何映射的:

在此处输入图像描述

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

于 2015-03-23T07:33:12.047 回答