【发布时间】:2011-09-28 21:49:11
【问题描述】:
我正在使用 hive 在 HBase 表上运行选择查询。
我想检索时间戳值低于 X 的所有行。
我的问题是如何创建这样的选择查询(我是否需要以特定方式创建 Hive 表?)
【问题讨论】:
我正在使用 hive 在 HBase 表上运行选择查询。
我想检索时间戳值低于 X 的所有行。
我的问题是如何创建这样的选择查询(我是否需要以特定方式创建 Hive 表?)
【问题讨论】:
时间戳是与列值关联的属性。除非 Hive 在文档中调用了特定约定以使列时间戳明确可用,否则我怀疑您是否可以从 Hive 访问时间戳信息。
在 HBase 中,您可以构造一个扫描并为时间戳添加过滤条件。有一个示例,您可以在代码中建立这样的过滤器: /hbase/src/main/java/org/apache/hadoop/hbase/filter/TimestampsFilter.java
注意:您必须确保您的代码在每个区域服务器的类路径中,然后才能正常工作。这意味着您将不得不重新启动您的区域服务器。
【讨论】:
根据this Quora thread,两个时间戳函数are available in Hive 0.8:
from_utc_timestamp(timestamp, string timezone)
to_utc_timestamp(timestamp, string timezone).
【讨论】:
我相信 OP 正在寻求从创建时间戳匹配条件的表中选择行的能力。
AFAIK,Hive 没有公开这一点。
上面的两个函数用于将给定的时间戳值(被解释为 UTC)与给定的时区相互转换。
【讨论】: