
Hbase是一个面向列存储的分布式存储系统,它的优点在于可以实现高性能的并发读写 *** 作,同时Hbase还会对数据进行透明的切分,这样就使得存储本身具有了水平伸缩性。
通常,顺序读取数据要比随机访问更快。而且,硬盘寻址时间的提升比起CPU速度的进步要慢得多 (参看摩尔定律),在使用硬盘作为存储媒介的系统上这种情况很可能还会持续一段时间。
下面简单罗列了一些选择行数据库还是列数据库的权衡依据。当然,如果能够把数据全放在内存中,那么使用内存数据库性能会更好。
特点:
因为硬盘寻址时间相较于计算机上其他部件的运行速度来说不是一般的慢,所以常用相同工作负载下的硬盘访问性能来比较行数据库和列数据库。
在只需要根据某几列来聚合数据的时候按列的数据组织方式更有效。因为这样只需要读取一部分数据,要比读取全部数据更快。
当只需要修改某一列值的时候按列的数据组织方式更有效。因为可以直接找到某列数据并改,而与行中的其他列无关。
Apache Hive 和 Apache HBase 都是大数据中不可思议的工具。虽然它们的功能存在一些重叠,但 Apache Hive 和 Apache HBase 都具有独特的品质,使它们更适合特定任务。一些主要区别包括:
虽然这两个工具都是Hadoop的衍生产品,但它们不为用户提供相同的功能。然而,尽管存在差异,Apache Hive 和 Apache HBase 都是处理大数据时优先考虑的两块工具和解决方案。
每个工具都有自己的优缺点。因此,Hive 和 HBase各自都存在一些限制。
首先,虽然Hive也具有非常基本的 ACID 功能,但它们没有像 MYSQL 那样成熟完备的产品架构,速度无法满足日常OLTP型业务。
Hive 查询通常也具有高延迟。由于它在 Hadoop 上运行批处理,因此获取查询结果可能需要几分钟甚至1小时。此外,更新数据可能既复杂又耗时。
Hive 不是擅长用于查询数据集(尤其是大数据集中)当中的部分数据,大多数用户倾向于依赖传统的 RDBMS (关系型数据)来处理这些数据集。
HBase 查询采用自定义语言,需要经过培训才能学习。HBase 并不完全符合 ACID,尽管它确实支持某些属性。
HBase 可以通过协同处理来处理小数据,但它仍然不如 RDBMS(关系型数据库) 有用。
1、Hive 应该用于对一段时间内收集的数据进行分析查询——例如,计算趋势或网站日志。
2、HDFS 的 SQL 查询引擎 - 您可以利用 Hive的HQL来查询处理 Hadoop 数据集,然后将它们连接到相应的BI工具,进行相关报表展示。
1、HBase 非常适合实时查询大数据(例如 Facebook 曾经将其用于消息传递)。Hive 不能用于实时查询,因为速度很慢。
2、HBase 主要用于将非结构化 Hadoop 数据作为一个湖来存储和处理。您也可以将 HBase 用作所有 Hadoop 数据的仓库。
3、大量数据需要长期保存, 且数量会持续增长,而且瞬间写入量很大。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)