【发布时间】:2017-06-06 12:53:28
【问题描述】:
阅读 Cloudera 文档,使用 Impala 将 Hive 表与 HBase 较小的表连接起来,如下所述,然后在没有大数据设备(如 OBDA)和较大的可变 HBase 维度表的情况下:
如果您有对大型事实进行聚合操作的联接查询 表并将结果与小维度表连接起来,考虑 对事实表使用 Impala,对维度表使用 HBase。 (因为在这种情况下,Impala 会对 HBase 表进行全面扫描, 而不是基于连接列进行单行 HBase 查找, 仅在 HBase 表足够小的情况下使用此技术 进行全表扫描不会导致性能瓶颈 查询。)
有没有办法让那个单一的键以另一种方式查找?
此外,我在 KUDU 和 HDFS 上注意到以下内容,大概是 HIVE。有人在这里有经验吗?很想知道。我会在适当的时候自己尝试,但是在非打包快速入门上安装包裹并不容易......
在单个应用程序(或查询)中混合和匹配存储管理器
• SELECT COUNT(*) FROM my_fact_table_on_hdfs JOIN
my_dim_table_in_kudu ON ...
【问题讨论】:
-
“有没有办法让那个单一的键以另一种方式查找” > 你的意思是,读取一次巨大的数据集以提取键列表,然后检索来自 HBase 的相关记录(循环中有多个 GET),然后再次读取庞大的数据集以执行查找?那将是非常低效的,你不觉得吗?
-
我没有对什么是最好的做任何假设,但我一直是一个具有性能和调优的 VLDB ORACLE DBA,当然这有点不同。在 BIG DATA 中什么是小表?您的回复导致了 KUDU 选项。
-
HBase 基本上是一个键/值数据库,专为随机访问和无事务而设计。 Hive 是建立在 HDFS(用于不可变大文件的分布式文件系统)和 YARN(用于分布式批处理作业的资源管理器)之上的批处理查询引擎。 Hive 也有一个“连接器”来在 HBase 上运行 Full Scans,但是这里有一个 SERIOUS 阻抗不匹配......
-
另一方面,Phoenix 尝试在 HBase 之上引入一些 RDBMS 特性——原始数据类型、表模式、索引、事务。 Kudu 尝试引入一些 RDBMS 特性——原子插入更新删除——作为 HDFS+YARN 的替代方案,但这是 Cloudera 的一项举措,面向 Impala 和 Spark(不是 Hive ......!)
-
另请注意,Kudu 仍然不成熟,还没有真正的身份验证/授权/审计功能,没有真正的文档(即使您是 Cloudera 付费客户)。
标签: join hive hbase apache-kudu