1)RowFilter原理简析
RowFilter顾名思义就是对rowkey进行过滤,那么rowkey的过滤无非就是相等(EQUAL)、大于(GREATER)、小于(LESS),大于等于(GREATER_OR_EQUAL),小于等于(LESS_OR_EQUAL)和不等于(NOT_EQUAL)几种过滤方式。Hbase中的RowFilter采用比较符结合比较器的方式来进行过滤。
比较器的类型如下:
- BinaryComparator
- BinaryPrefixComparator
- NullComparator
- BitComparator
- RegexStringComparator
- SubStringComparator
例子:
Filter rowFilter = new RowFilter(CompareFilter.CompareOp.EQUAL, new BinaryComparator(Bytes.toBytes(rowKeyValue))); Scan scan = new Scan(); scan.setFilter(rowFilter) ...
在上面例子中,比较符为EQUAL,比较器为BinaryComparator
2)BloomFilter原理简析
- 主要功能:提供随机读的性能
- 存储开销:BloomFilter是列族级别的配置,一旦表格中开启BloomFilter,那么在生成StoreFile时同时会生成一份包含BloomFilter结构的文件MetaBlock,所以会增加一定的存储开销和内存开销
- 粒度控制:ROW和ROWCOL
-
BloomFilter的原理
简单说一下BloomFilter原理- 内部是一个bit数组,初始值均为0
- 插入元素时对元素进行hash并且映射到数组中的某一个index,将其置为1,再进行多次不同的hash算法,将映射到的index置为1,同一个index只需要置1次。
- 查询时使用跟插入时相同的hash算法,如果在对应的index的值都为1,那么就可以认为该元素可能存在,注意,只是可能存在
- 所以BlomFilter只能保证过滤掉不包含的元素,而不能保证误判包含
- 设置:在建表时对某一列设置BloomFilter即可
上一题:HBase有哪些优化方法
下一题:HBase的导入导出方式
标签: rowfilter、bloomfilter、equal、binarycomparator、scan
笔试题
刷题
简历模板
AI算法
大数据
内推
内推: