HBASE与HIVE:哪种方法更适合多个字段唯一定义的数据?

时间:2018-12-01 20:55:17

标签: hadoop hive hbase

我们正在Hadoop系统之上构建数据库基础结构。我们将付钱给某个供应商来这样做,但我认为我们没有从第一个供应商那里得到正确的答案。因此,我需要一些专家的帮助,以验证我是否正确或错过某件事 1.数据中大约有1600个字段。这1600条记录可以识别唯一记录

  1. 我们希望能够在特定时间范围内搜索记录 (又名,给定时间范围内的记录)

  2. 有些字段会随时间变化(每月)

供应商指出,最好的方法是HBASE,他们必须选择:(1)针对机器学习优化搜索(2)进行即席查询。  (1)将需要具有所有感兴趣字段的连接键。密钥长度将确定搜索运行的速度。

我认为这是不正确的。 1.我们不需要使用HBASE。我们可以使用HIVE 2.我们不需要连接字段名称。我们可以将它们翻译为数字,并以数字作为键 3.我认为我们不需要选择一个。

您能告诉我您的想法吗?

1 个答案:

答案 0 :(得分:0)

这完全取决于您的用例。简而言之,在interactive查询方面,仅Hive并不是很好,但在分析方面却是最好的之一。

另一方面,

Hbase确实对交互式查询很有用,但是进行分析并不是那么容易。

  

数据中大约有1600个字段。这1600条记录可以识别唯一记录

HBase

Hbase是一个NoSQL列式数据库,它以Map(Dictionary)格式存储信息。每行需要有一个唯一标识该行的列。这称为key

如果您没有一个可以唯一标识该行的列,则也可以将键作为多列的组合。然后,您可以使用partial key搜索记录。但是,这将影响性能(与具有单列键相比)。

配置单元:

Hive具有类似SQL的语言(HQL)来查询HDFS,您可以将其用于分析。但是,它不需要任何主键,因此可以根据需要插入重复的记录。

  

供应商表示最好的方式是使用HBASE,并且他们拥有   选择:(1)使搜索针对机器学习进行优化(2)使   即席查询。 (1)将需要一个带有所有   感兴趣的领域。密钥长度将确定   搜索将运行。

就像我之前解释的那样,您的供应商是正确的。

  
      
  1. 我们不需要使用HBASE。我们可以使用HIVE2。我们不需要连接字段名称。我们可以将它们转换为数字,并以数字3作为键。我认为我们不需要选择一个。
  2.   

您可以使用 HBASE Hive 的天气取决于您的用例。但是,如果您打算使用Hive,则甚至不需要生成pseudo key(您正在谈论的行号)

如果您有hortonworks部署,还有另一种选择。考虑将Hive用于分析,将LLAP用于交互式查询。