HBASE填坑日志

内容纲要

总结:

1.查询时能用rowKey查询尽量使用rowKey查询,这样hbase能最快确定数据在集群中的哪台机器上。

 

2.Scan.setReversed(true)、Filter.setReversed(true)可以将查询结果反转,但是有些限制:

使用Scan.setStartRow() Scan.setStopRow()时,如果Scan.setReversed(true)会导致查询不到数据。

使用FilterList时,所有的filter的reversed必须相同,否则会报错(Filters in the list must have the same reversed flag, this.reversed=XXX)。

 

3.Scan.setBatch()指定最多返回的Cell的数量,防止OutofMemory。

 

4.分页可以使用PageFilter,但是不能获取所有数据的总数量。

 

5.Filter.setFilterIfMissing()设置该行是否跳过。

 

6.可以使用SubstringComparator进行模糊查询;对RowKey使用RowFilter&RegexStringComparator进行正则查询;使用RowFilter&BinaryPrefixComparator对RowKey进行前缀查询。

 

7.按照时间戳查询可以使用Scan.setTimeRange()。

 

8.对于查询,使用Filter的效率远远低于使用RowKey(数据量越大越明显),设置合理的RowKey很重要,如果可以,尽量充分利用RowKey。

 

9.Scan.setMaxResultSize()设置的是二进制字节的大小,不是返回的数据的条数。

 

10.单条查询使用Get速度永远最快。

 

11.列族名、RowKey越短越好;能用一个列族搞定的就不要用两个列族,浪费空间,而且不方便查询。

 

暂时这么多,其他后续补充。


除非注明,否则均为李锋镝的博客原创文章,转载必须以链接形式标明本文链接

本文链接:https://www.lifengdi.com/archives/article/91

打赏 赞(0)
微信
支付宝
微信二维码图片

微信扫描二维码打赏

支付宝二维码图片

支付宝扫描二维码打赏

1
说点什么

avatar
  订阅  
最新 最旧 最热
提醒
李锋镝
访客
超新星

沙发