大数据还是关系数据库(如 MySQL 集群)?
Posted
技术标签:
【中文标题】大数据还是关系数据库(如 MySQL 集群)?【英文标题】:Big Data or relational database (like MySQL cluster)? 【发布时间】:2015-03-18 08:04:04 【问题描述】:我将在我的项目中处理大量数据。我读过大数据概念,但从未使用过。但是阅读所有这些大数据文档,我仍然不确定我的需求是否需要大数据,或者是否适合使用传统的关系数据库。
这是关于我的数据库的一些信息。
我的主数据库是不同数据源的存储库。这些数据源中的每一个都处理相同类型的数据(同一域中的数据),但是一些数据源包含额外的字段,这些字段在其他数据源中不可用,而有些则包含更少。换句话说,这些数据源中的一些数据字段是相同的,但有些是不同的。所以我的核心数据库应该包含所有这些字段。我的核心数据库中的总字段应该是大约 2000 个字段,它可能包含 10 到 2000 万条记录。
在我的核心数据库中发生的数据库操作将是数据插入和读取(搜索)。由于它处理大量数据,我正在考虑使用大数据概念。但我仍然不确定这是否适合大数据。因为我的一些数据具有相似的特征(相同的字段),有些包含额外的信息。我需要在我的数据库中快速搜索所有类型的东西。 谢谢。
【问题讨论】:
您还有答案,写入数据库或读取/搜索数据库更重要的是什么?来自您的核心数据库的数据将如何流向目标受众/解决方案/工具?这些目标是什么?是实时交易吗?数据大小? 您还有答案,写入数据库或读取/搜索数据库更重要的是什么? --> 我没明白你的意思 你的核心数据库中的数据如何流向目标受众/解决方案/工具? --> 我必须创建很多以这个核心数据库为中心的应用程序。是的,它应该是实时数据....数据大小为 10 -2000 万条记录。 这不是一个巨大的数据量。但是如果你认为你需要一个包含 2000 个属性的表,那么你真的需要重新考虑你的设计,不管你在什么平台上实现它。 是的..它不像 2000 个字段在一个表中。但我担心的是我应该不使用 sql 吗?将基于此数据分析创建应用程序。关系数据库是否适合该应用程序或需要不使用 sql? 10-20 百万行?那不是大数据。那是微小的。我处理过 750 000 000 行和 1 TB 大小的 mysql 表,性能很好。 【参考方案1】:像 MySQL 这样的关系数据库可以处理数十亿行/记录,因此决定将取决于您的用例。对于大数据 NoSQL 系统,了解每个系统的优势和局限性如何映射到您的用例非常重要,因为它们的行为可能非常不同。
以下是一些 MySQL 示例:
1.1 billion rows on Percona DB (fork of MySQL) 0.95 billion rows on MySQL在第二个示例中,他们从 MySQL 迁移到 Redis,因为他们需要存储相当于 3590 亿行,远远超过他们在 MySQL 中存储的 9.5 亿行。
鉴于您说您有快速搜索要求,因此了解您需要什么样的搜索非常重要,因为不同的数据库支持不同的搜索。此外,某些受支持的搜索可能具有有限的功能。如果您有超出核心数据存储功能的搜索需求,通常会添加一个全文解决方案,例如,使用 Cassandra 作为数据存储,使用 Elasticsearch 作为搜索组件。
为提供此决定的一些背景知识,考虑您对 CAP 定理的要求非常有用且重要,该定理指出分布式计算机系统可以提供以下部分但不是全部保证(来自 Wikipedia):
一致性(所有节点同时看到相同的数据) 可用性(保证每个请求都会收到响应 关于它是成功还是失败) 分区容错(系统继续运行,尽管任意消息丢失或系统部分故障)http://en.wikipedia.org/wiki/CAP_theorem
您可以在此处查看不同的数据库解决方案(包括 MySQL 和 NoSQL 解决方案)的分布情况:
如果您提供有关您的用例的更多信息,您可以获得更详细的回复。
【讨论】:
以上是关于大数据还是关系数据库(如 MySQL 集群)?的主要内容,如果未能解决你的问题,请参考以下文章