【发布时间】:2012-06-12 03:31:02
【问题描述】:
不知道为什么用prefixfilter查询会很慢。谁能解释一下查询 HBase 的最佳方式,谢谢。
hbase(main):002:0> scan 'userlib',{FILTER=>org.apache.hadoop.hbase.filter.PrefixFilter.new(org.apache.hadoop.hbase.util.Bytes.toBytes('0000115831F8'))}
ROW COLUMN+CELL
0000115831F8001 column=track:aid, timestamp=1339121507633, value=aaa
1 row(s) in 41.0700 seconds
hbase(main):002:0> scan 'userlib',{STARTROW=>'0000115831F8',ENDROW=>'0000115831F9'}
ROW COLUMN+CELL
0000115831F8001 column=track:aid, timestamp=1339121507633, value=aaa
1 row(s) in 0.1100 seconds
【问题讨论】:
-
这种做法的问题是,当最后一个字符是最大Byte值时,不能加1。如果放0,下一个字节加1,说明HBase 包含这个不是预期结果的结束键
标签: performance filter hbase database-scan