Apache Phoenix CURRENT_TIME()给出了NPE

时间:2017-05-23 21:00:38

标签: hbase phoenix

我正在尝试在时间戳列上使用Apache Phoenix的过滤器。

我的表和列存在。该列的类型为TIMESTAMP。 https://phoenix.apache.org/language/datatypes.html#timestamp_type

0: jdbc:phoenix:localhost:2181:/hbase> SELECT * FROM METRIC where METRIC_ID = 'process.cpu' AND METRIC_TIMESTAMP > NOW();
java.lang.NullPointerException
at org.apache.phoenix.compile.ScanRanges.getAscTimeRange(ScanRanges.java:674)

我也尝试过使用CURRENT_TIME()

0: jdbc:phoenix:localhost:2181:/hbase> SELECT * FROM METRIC where METRIC_ID = 'process.cpu' AND METRIC_TIMESTAMP > CURRENT_TIME();
java.lang.NullPointerException
at org.apache.phoenix.compile.ScanRanges.getAscTimeRange(ScanRanges.java:674)
at org.apache.phoenix.compile.ScanRanges.getRowTimestampColumnRange(ScanRanges.java:658)

1 个答案:

答案 0 :(得分:0)

这是一个错误 - 请提交JIRA。解决方法是将METRIC_TIMESTAMP声明为DATE而不是TIMESTAMP。 Phoenix中的DATE类型的粒度为毫秒。