Hive/Impala 选择并平均所有行键版本
Posted
技术标签:
【中文标题】Hive/Impala 选择并平均所有行键版本【英文标题】:Hive/Impala select and average all rowkey versions 【发布时间】:2014-04-13 20:00:00 【问题描述】:我想知道是否有一种方法可以在 HBase 中获取特定行键的先前版本,而无需编写 MapReduce 程序并对值进行平均。我很好奇这是否可以使用 Hive 或 Impala(或其他类似程序)以及您将如何做到这一点。
我的桌子是这样的:
Composite keys Values
(md5 + date + id) | (value)
我想对特定日期的所有值和所有版本的 id 的子字符串(“411”)进行平均。
提前谢谢。
【问题讨论】:
您应该在服务器上进行计算,而不是在客户端(Impala 或其他)。 Hbase 协处理器端点非常适合您的需求。 【参考方案1】:Impala 使用 Hive 元存储将其表的逻辑概念映射到物理存储在 HDFS 或 HBase 中的数据(有关更多详细信息,请参阅Cloudera documentation)。
要详细了解如何告知 Hive 元数据存储在 HBase 中的数据,请参阅Hive documentation。
不幸的是,如上面链接的 Hive 文档中所述:
目前无法访问 HBase 时间戳属性,并且 查询总是使用最新的时间戳访问数据
在HIVE-2828 中针对旧版本的 Hive 添加了此功能,但不幸的是,该工作尚未合并到主干中。
因此,对于您的应用程序,您必须重新设计 HBase 架构以包含“版本”列,将这一新列告知 Hive 元存储,并让您的应用程序了解该列。
【讨论】:
以上是关于Hive/Impala 选择并平均所有行键版本的主要内容,如果未能解决你的问题,请参考以下文章