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