我正在尝试在时间戳列上使用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)
答案 0 :(得分:0)
这是一个错误 - 请提交JIRA。解决方法是将METRIC_TIMESTAMP声明为DATE而不是TIMESTAMP。 Phoenix中的DATE类型的粒度为毫秒。