2012-03-30 74 views
3

应该用什么任务不是使用HBase的?HBase反模式

我的理解是,HBase和HDFS应该被视为瞬态数据存储,只保存地图/缩减作业需要它们的持续时间数据。

将HBase用作规范数据存储是不恰当的吗?它的随机访问延迟峰值使得这非常不切实际,但是这可以通过缓存和其他badn-aid来缓解。

+0

你有什么理解? – 2012-03-30 11:49:17

+0

由于HDFS对于随机访问并不是特别快,但对于流式传输大文件非常有用。此外,其分布式特性适用于map/reduce作业,因为它可以使大量并发读取“接近”读取它的操作。 – 2012-03-30 12:05:43

回答

2

HBase应该被用作规范的数据存储(比如Big Table,它在很多Google服务中被大量使用)。 HDFS是为MapReduce制作的,但HBase是基于HDFS构建的,不仅允许MapReduce。 HBase真的是一个数据库。

您应该选择HBase而非传统关系数据库系统的主要原因是的可扩展性。如果您没有大数据,请不要打扰使用HBase。如果您的应用程序需要许多连接,需要像SQL这样的查询语言,并且在全球范围内没有数据缩放,则更喜欢RDBMS。另一方面,如果你的关系数据库有大量的NULL条目,HBase是一个不错的选择,因为它是稀疏的:它不存储NULL。