当我们需要拉出更多列时,Hive还是Hbase?

时间:2016-10-04 08:53:22

标签: hadoop hive hbase

我在Hadoop中有一个包含100列和几百行的数据结构。大多数时候我需要查询65%的列。在这种情况下哪个更好地使用HBASE或HIVE?请指教。

2 个答案:

答案 0 :(得分:2)

您访问的列数不是决定hbase或配置单元的标准。

HIVE(SQL):

当您有仓储需求并且擅长SQL并且不想编写MapReduce作业时使用Hive。但重要的一点是,Hive查询会转换为在您的集群上运行的相应MapReduce作业,并为您提供结果。 Hive为你做的伎俩。但是使用HiveQL无法解决每一个问题。有时,如果你需要非常细粒度和复杂的处理,你可能不得不采取MapReduce的庇护所。

Hbase(NoSQL数据库):

您可以使用Hbase来实现此目的。如果您有一些想要实时访问的数据,可以将其存储在Hbase中。

当您知道自己的访问模式时,

hbase get 'rowkey'功能强大

Hbase遵循CAP Theorm的CP

一致性:

系统中的每个节点都包含相同的数据(例如副本永远不会超出数据)

状况:

对系统中非故障节点的每个请求都会返回响应

分区容差:

系统属性(一致性和/或可用性)即使在系统被分区(通信丢失)和数据丢失(节点丢失)时也会保留

enter image description here

还可以查看this

答案 1 :(得分:0)

很难在一行中回答这个问题。

HBASE是NoSQL数据库:您的数据需要存储非规范化数据,因为HBASE对于joi非常糟糕

ning tables。

Hive:您可以在Hive中以类似格式存储数据(规范化),但只能在批量处理时看到好处。