我们正在Hadoop系统之上构建数据库基础结构。我们将付钱给某个供应商来这样做,但我认为我们没有从第一个供应商那里得到正确的答案。因此,我需要一些专家的帮助,以验证我是否正确或错过某件事 1.数据中大约有1600个字段。这1600条记录可以识别唯一记录
我们希望能够在特定时间范围内搜索记录 (又名,给定时间范围内的记录)
有些字段会随时间变化(每月)
供应商指出,最好的方法是HBASE,他们必须选择:(1)针对机器学习优化搜索(2)进行即席查询。 (1)将需要具有所有感兴趣字段的连接键。密钥长度将确定搜索运行的速度。
我认为这是不正确的。 1.我们不需要使用HBASE。我们可以使用HIVE 2.我们不需要连接字段名称。我们可以将它们翻译为数字,并以数字作为键 3.我认为我们不需要选择一个。
您能告诉我您的想法吗?
答案 0 :(得分:0)
这完全取决于您的用例。简而言之,在interactive
查询方面,仅Hive并不是很好,但在分析方面却是最好的之一。
Hbase确实对交互式查询很有用,但是进行分析并不是那么容易。
数据中大约有1600个字段。这1600条记录可以识别唯一记录
HBase
Hbase是一个NoSQL列式数据库,它以Map(Dictionary)格式存储信息。每行需要有一个唯一标识该行的列。这称为key
。
如果您没有一个可以唯一标识该行的列,则也可以将键作为多列的组合。然后,您可以使用partial key
搜索记录。但是,这将影响性能(与具有单列键相比)。
配置单元:
Hive具有类似SQL的语言(HQL)来查询HDFS,您可以将其用于分析。但是,它不需要任何主键,因此可以根据需要插入重复的记录。
供应商表示最好的方式是使用HBASE,并且他们拥有 选择:(1)使搜索针对机器学习进行优化(2)使 即席查询。 (1)将需要一个带有所有 感兴趣的领域。密钥长度将确定 搜索将运行。
就像我之前解释的那样,您的供应商是正确的。
- 我们不需要使用HBASE。我们可以使用HIVE2。我们不需要连接字段名称。我们可以将它们转换为数字,并以数字3作为键。我认为我们不需要选择一个。
您可以使用 HBASE 或 Hive 的天气取决于您的用例。但是,如果您打算使用Hive,则甚至不需要生成pseudo key
(您正在谈论的行号)
如果您有hortonworks部署,还有另一种选择。考虑将Hive
用于分析,将LLAP
用于交互式查询。