hbase 多条件查询or 怎么过滤掉不需要查的列

慕码人2483693
浏览 1966回答 2
2回答

蛊毒传说

hbase提供了ListFilter过滤List<Filter> filters = new ArraList<Filter>();Filter f1=new RowFilter(.........);Filter f2=new AualifierFilter(................);filters.add(f1);filters.add(f2);FilterList filterList=new FilterList(filters);Scan scan=new Scan();scan.setFilter(filterList);ResultScanner scanner=table.getScanner(scan);之后遍历就ok了

拉风的咖菲猫

hbase的region是按行划分,而非按列,如果你读取指定一行的所有列数据,regionServer虽然无法保证你的所有数据都在一个HFile中,但是至少是在一个Region中。但是具体的HFile所在的hdfs的节点那就不是HBase关心的事了,因为HBase的存储是依赖与hdfs,所以底层存储读取的事会由NameNode操心,NameNode会考虑就近原则,而提供最高效的数据读取策略。你的数据传输是必然,但是HBase不会计算,计算是发生在你将想要的数据获取到之后再自行进行计算的。你读取大量数据必然会有大量数据传输,HBase只是将提供了一种高效的数据读取策略,尽量减小数据传输量
打开App,查看更多内容
随时随地看视频慕课网APP