我们目前面临的问题是如何有效地存储和检索非常大的数据集(数十亿)中的数据。我们一直在使用 mysql,并优化了系统、操作系统、raid、查询、索引等,现在正在寻求继续前进。
我需要就采用什么技术来解决我们的数据问题做出明智的决定。我一直在研究 HDFS 的 map/reduce,但也听说过有关 HBase 的好消息。我忍不住想还有其他选择。是否对可用技术以及每种技术的权衡进行了很好的比较?
如果您有可分享的链接,我也将不胜感激。
最佳答案
这是一个广泛的问题。我会尽力给出指示,对于每一个,您都可以查看或询问更多信息。
第一个是......传统数据库。如果数据足够有值(value),您可以拥有 RAID 和优质服务器 - Oracle 可能是一个不错的解决方案,但价格昂贵。 TPC-H 是决策支持查询的行业标准基准:http://www.tpc.org/tpch/results/tpch_perf_results.asp它是指向最高性能结果的链接。正如您所看到的 - RDBMS 可以扩展到 TB 级的数据。
其次是HDFS + Map/Reduce + Hive形式的Hadoop。 Hive 是 MapReduce 之上的数据仓库解决方案。您可以获得一些额外的好处,例如能够以原始格式存储数据并线性扩展。您将看到的一件事是索引和运行非常复杂的查询。
第三个是 MPP——大规模并行处理数据库。它们可从数十个节点扩展到数百个节点,并具有丰富的 SQL 支持。例如 Netezza、Greenplum、Asterdata、Vertica。在其中进行选择并不是一件简单的事情,但是如果有更精确的要求也是可以完成的。
关于hbase - 如何存储和查询非常大的数据集(超出关系数据库),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4742876/