Hbase葱岭探秘 过滤器Api - 数据库服务器 - 最新IT资讯_电脑知识大全_网络安全教程 -.docx

上传人:安*** 文档编号:19268248 上传时间:2022-06-05 格式:DOCX 页数:19 大小:18.17KB
返回 下载 相关 举报
Hbase葱岭探秘 过滤器Api - 数据库服务器 - 最新IT资讯_电脑知识大全_网络安全教程 -.docx_第1页
第1页 / 共19页
Hbase葱岭探秘 过滤器Api - 数据库服务器 - 最新IT资讯_电脑知识大全_网络安全教程 -.docx_第2页
第2页 / 共19页
点击查看更多>>
资源描述

《Hbase葱岭探秘 过滤器Api - 数据库服务器 - 最新IT资讯_电脑知识大全_网络安全教程 -.docx》由会员分享,可在线阅读,更多相关《Hbase葱岭探秘 过滤器Api - 数据库服务器 - 最新IT资讯_电脑知识大全_网络安全教程 -.docx(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Hbase葱岭探秘过滤器Api-数据库服务器-最新IT资讯_电脑知识大全_网络安全教程-次元立方网Hbase中提供了很多的过滤器接口,以此来对数据进行过滤,使得查询出想要的数据。针对行信息进行过滤,参数中能够采用前缀匹配、按位与、或、异或以及子串匹配等匹配的方式。同时能够控制EQUAL、NOT_EQUAL选项进行控制挑选数据的条件。*行过滤器BinaryComparatorNullComparator:是不是空值*BitComparator:通过BitwiseOp类提供的按位与、或、异或操作进行位级别比拟RegexStringComparator:正则匹配*SubStringComparato

2、r:子串是不是包含进行匹配privatestaticvoidtestRowFilter()tryHTabletable=newHTable(config,testtableScanscan=newScan();scan.addColumn(col1.getBytes(),name.getBytes();/行过滤器Filterfilter=newRowFilter(CompareOp.EQUAL,newBinaryComparator(row2.getBytes();scan.setFilter(filter);ResultScannerresult=table.getScanner(scan)

3、;for(Resultres:result)log.info(行过滤器+res);/正则的行过滤器Filterfilter2=newRowFilter(CompareOp.EQUAL,newRegexStringComparator(.*.2scan.setFilter(filter2);ResultScannerresultRegx=table.getScanner(scan);for(Resultres:resultRegx)log.info(正则+res);FilterfilterSubString=newRowFilter(CompareOp.EQUAL,newSubstringCom

4、parator(w2scan.setFilter(filterSubString);ResultScannerresultSubString=table.getScanner(scan);for(Resultres:resultSubString)log.info(子串+res);table.close();catch(IOExceptione)log.error(e);列族过滤器根据列族的数据进行挑选,形式和上面的行过滤器类似,通过控制相应的参数中的挑选的条件进行相应的挑选。*列族过滤器privatestaticvoidtestFamlyFilter()tryHTabletable=newH

5、Table(config,testtableFilterfilter=newFamilyFilter(CompareOp.EQUAL,newBinaryComparator(col1.getBytes();Scanscan=newScan(row2.getBytes(),filter);ResultScannerresult=table.getScanner(scan);for(Resultres:result)log.info(res);FilterfilterNull=newFamilyFilter(CompareOp.EQUAL,newRegexStringComparator(.*.1

6、ScanscanNull=newScan(row2.getBytes(),filterNull);scanNull.addFamily(col1.getBytes();ResultScannerresultNull=table.getScanner(scanNull);if(resultNull!=null)for(Resultres:resultNull)log.info(res);elselog.info(nulltable.close();catch(IOExceptione)log.error(e);列名过滤器和上面几个过滤器类似,这里是根据列进行挑选,设置相应的条件后就能够进行相应的

7、挑选了。*列名过滤器publicstaticvoidtestColumFilter()tryHTabletable=newHTable(config,testtableFilterfilter=newQualifierFilter(CompareOp.EQUAL,newBinaryComparator(name.getBytes();Scanscan=newScan(row2.getBytes(),filter);ResultScannerresult=table.getScanner(scan);for(Resultres:result)log.info(res);Getget=newGet

8、(row2.getBytes();get.setFilter(filter);ResultresultGet=table.get(get);log.info(resultGet);table.close();catch(IOExceptione)log.info(e);参考列过滤器参考列过滤器根据列族和列限定符进行挑选,返回与参考列一样时间戳的行的所有键值对。*参考列过滤器publicstaticvoidtestDependentColumnFilter()tryHTabletable=newHTable(config,testtableFilterfilter=newDependentCol

9、umnFilter(col1.getBytes(),name.getBytes(),false);Scanscan=newScan();scan.setFilter(filter);ResultScannerresu=table.getScanner(scan);for(Resultresult:resu)log.info(result);Getget=newGet(row2.getBytes();get.setFilter(filter);Resultresult=table.get(get);log.info(result);table.close();catch(IOExceptione

10、)log.error(e);单列过滤器通过一列的值进行判定是不是需要进行过滤。*单列过滤器publicstaticvoidtestSingleColumnValueFilter()tryHTabletable=newHTable(config,testtableFilterfilter=newSingleColumnValueFilter(col1.getBytes(),name.getBytes(),CompareOp.EQUAL,wy.getBytes();Scanscan=newScan();scan.setFilter(filter);ResultScannerresult=table

11、.getScanner(scan);for(Resultres:result)log.info(res);Getget=newGet(row2.getBytes();get.setFilter(filter);ResultresultGet=table.get(get);log.info(resultGet);table.close();catch(IOExceptione)log.info(e);前缀过滤器根据前缀进行匹配行键的数据,本例中给出的是以row为前缀的行的数据。*前缀过滤器publicstaticvoidtestPrefixFilter()tryHTabletable=newHT

12、able(config,testtableFilterfilter=newPrefixFilter(row.getBytes();Scanscan=newScan();scan.setFilter(filter);ResultScannerresult=table.getScanner(scan);for(Resultres:result)log.info(res+res);Getget=newGet(row2.getBytes();ResultresultGet=table.get(get);log.info(get+resultGet);table.close();catch(IOExce

13、ptione)log.info(e);分页过滤器通过pageFilter设置一页中数据的条数,注意,在重新设置起始行的时候,要使得新的行和数据库中有区别,否则,会死循环无法停止。*分页过滤器publicstaticvoidtestPageFilter()tryHTabletable=newHTable(config,testtableFilterfilter=newPageFilter(10);inttotalRows=0;bytelastRow=null;Scanscan=newScan();while(true)scan.setFilter(filter);if(lastRow!=null

14、)/加上0后表示新的开场防止row的内容一样造成死循环bytestartRow=Bytes.add(lastRow,POSTFIX);scan.setStartRow(startRow);ResultScannerresultScan=table.getScanner(scan);intlocalRows=0;Resultresult=resultScan.next();while(result!=null)log.info(result);localRows+;totalRows+;lastRow=result.getRow();result=resultScan.next();if(loc

15、alRows=0)break;log.info(totalRows);table.close();catch(IOExceptione)log.info(e);*列分页过滤publicstaticvoidtestColumnPaginationFilter()tryHTabletable=newHTable(config,testtableFilterfilter=newColumnPaginationFilter(5,10);Scanscan=newScan();scan.setFilter(filter);ResultScannerresult=table.getScanner(scan)

16、;for(Resultres:result)log.info(res);table.close();catch(IOExceptione)log.info(e);Skip过滤器与ValueFilter结合使用,假如一行中某一列不符合要求的话直接被过滤掉。*跳过过滤器publicstaticvoidtestSkipFilter()tryHTabletable=newHTable(config,testtableFilterfilt=newValueFilter(CompareOp.NOT_EQUAL,newBinaryComparator(v.getBytes();ScanscanValue=n

17、ewScan();scanValue.setFilter(filt);ResultScannerress=table.getScanner(scanValue);for(Resultresult:ress)log.info(+result);Filterfilter=newSkipFilter(filt);Scanscan=newScan();scan.setFilter(filter);ResultScannerresult=table.getScanner(scan);for(Resultres:result)log.info(+res);table.close();catch(IOExc

18、eptione)log.info(e);全匹配过滤器在碰到某个条件之前的数据全部查询出来,直到碰到知足该条件的数据之后结束查询。*全匹配过滤器publicstaticvoidtestWhileMatch()tryHTabletable=newHTable(config,testtableFilterfilt=newRowFilter(CompareOp.NOT_EQUAL,newBinaryComparator(row6.getBytes();Scanscan=newScan();scan.setFilter(filt);ResultScannerresults=table.getScanne

19、r(scan);for(Resultres:results)log.info(+res);Filterfilter=newWhileMatchFilter(filt);scan.setFilter(filter);ResultScannerresultScan=table.getScanner(scan);for(Resultres:resultScan)log.info(+res);table.close();catch(IOExceptione)log.info(e);过滤器组合能够将上面的过个过滤器放在一个List中,然后构成多个过滤器的组合的形式进行过滤。*过滤器组合publicsta

20、ticvoidtestFilterList()ListFilterfilterList=newArrayListFilterFilterfilter1=newSingleColumnValueFilter(col1.getBytes(),name.getBytes(),CompareOp.EQUAL,x.getBytes();filterList.add(filter1);Filterfilter2=newRowFilter(CompareOp.NOT_EQUAL,newBinaryComparator(row2.getBytes();filterList.add(filter2);FilterListfilters=newFilterList(filterList);Scanscan=newScan();scan.setFilter(filters);tryHTabletable=newHTable(config,testtableResultScannerresult=table.getScanner(scan);for(Resultres:result)log.info(res);table.close();catch(IOExceptione)log.info(e);转载注明出处::/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 策划方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁