我需要对Oracle 11g,MySQL和Hadoop进行基准测试,以获得10 ^ 6到10 ^ 9条记录(MySQL中的行)。将有大量数据挖掘查询全天候进行实时数据处理。我想知道哪个数据库会更好,特别是在一些真实的统计数据方面。未来几个月数据肯定会超出这个范围。
是否有针对此的开源基准测试工具?或者任何人都有一些有用的数据?
提前致谢。
修改: -
Hadoop不是数据库。它是一个分布式文件系统。让我更详细地解释一下我的要求。这就是我现在所拥有的,我将所有数据都存储在mysql中,我计划将其导出到hadoop并运行我的数据挖掘算法。算法结束后,最终结果将被发送到mysql以更新当前数据。我现在不能真正详细说明。现在算法将是广泛的,而不是完全实时的,但我将运行一个cron作业,每小时或大约2小时左右将数据导出到hadoop。我们将分析当前数据,如果还需要更新,则还要更新旧数据。
算法将主要基于神经网络。
我所关注的是: - 我应该在MySQL中运行我的数据挖掘查询,还是按照上面的解释执行操作,或者通过将数据导出到Oracle db来执行此操作?
答案 0 :(得分:1)
TPC-H基准测试将是一个良好的开端:http://www.tpc.org/tpch/default.asp。但是比较Oracle和Hadoop几乎是比较苹果和橙子。我认为,对于关系数据库基准测试,Oracle会击败Hadoop集群,而如果您的查询可以表示为Map / Reduce作业,Hadoop将在性能/ $基础上和可扩展性上击败Oracle。
答案 1 :(得分:1)
我有两件事要说:
Hadoop is "not" a DB.
Comparing un-comparable things is useless, IMHO.
您不能将Hadoop用作RDBMS的替代品。它不是为实时的东西开发的。 Hadoop最适合离线批处理有点要求。正如@Olaf所说,你试图将苹果与橙子进行比较。但是你为什么需要这个?我的意思是通过查看你的用例我觉得Haddop不会对你有用。
回复您的修改:
最好的办法是在MySQL本身上运行查询。理由:
1-导入/导出时间。
2-在MR程序方面,实现理想的算法并不总是那么容易。
3个1小时的数据量不足以被认定为BigData,恕我直言。(我假设您打算只处理最新数据,而不是整个数据集)。