我打算在HBase中存储流媒体天气数据。我的rowkey是: [5个字母城市代码] [时间戳],其中时间戳为[日期] [时间与HH:mm:ss.SSS] 我只有一个名为“温度”的专栏。所以样本数据看起来像:
NEWYO20131121080932123 32.4
NEWYO20131121081034342 34.6
NEWYO20131121081156424 31.8
NEWYO20131121081223532 24.9
SINGA20131121091142563 23.1
SANFR20131121091214763 22.1
我想查询数据,以便在11月21日8:11到8:13之间返回纽约的温度值(应该返回第3行和第4行)
如何使用Java API为此编写查询。
我遇到了Scan(byte[] startRow, byte[] stopRow)
,但我不认为我可以使用它,因为我在检索数据时不知道确切的rowkey(因为密钥末尾的秒和毫秒) )
(是否可以将regex用于rowkeys?)
答案 0 :(得分:1)
您可以使用RowFilter。以下代码将提供帮助
Filter filter2 = new RowFilter(CompareFilter.CompareOp.EQUAL,
new RegexStringComparator("regex"));
scan.setFilter(filter2);
ResultScanner scanner2 = table.getScanner(scan);
for (Result res : scanner2) {
System.out.println(res);
}
答案 1 :(得分:0)
startkey是NEWYO20131121081100000
结束键是NEWYO20131121081400000
顺便说一句:
无需使用hbase本机API。
你可以查看http://phoenix.incubator.apache.org/
或https://github.com/zhang-xzhi/simplehbase