在hbase shell中查詢數據,能夠在hbase shell中直接使用過濾器:shell
# hbase shell > scan 'testByCrq', FILTER=>"ValueFilter(=,'substring:111')"
如上命令所示,查詢的是表名爲testByCrq,過濾方式是經過value過濾,匹配出value含111的數據。
因在hbase shell中一些操做比較麻煩(好比刪除字符需先按住ctrl在點擊退格鍵),且退出後,查詢的歷史紀錄不可考,故以下方式是比較方便的一種:bash
# echo "scan 'testByCrq', FILTER=>\"ValueFilter(=,'substring:111')\"" | hbase shell
如上命令,可在bash中直接使用,表名是testByCrq,過濾方式是經過value過濾,匹配出value含111的數據,中間的"
須要用\
轉義。code
如下介紹在hbase shell中經常使用的過濾器:string
> scan 'testByCrq', FILTER=>"RowFilter(=,'substring:111')"
如上命令所示,查詢的是表名爲testByCrq,過濾方式是經過rowkey過濾,匹配出rowkey含111的數據。test
> scan 'testByCrq', FILTER=>"RowFilter(=,'binary:0111486816556')"
如上命令所示,查詢的是表名爲testByCrq,過濾方式是經過rowkey過濾,匹配出rowkey等於0111486816556的數據。數據
> scan 'testByCrq', FILTER=>"RowFilter(<=,'binary:0111486816556')"
如上命令所示,查詢的是表名爲testByCrq,過濾方式是經過rowkey過濾,匹配出rowkey小於等於0111486816556的數據。查詢
> scan 'testByCrq', FILTER=>"ValueFilter(=,'substring:111')"
如上命令所示,查詢的是表名爲testByCrq,過濾方式是經過value過濾,匹配出value含111的數據。co
> scan 'testByCrq', FILTER=>"FamilyFilter(=,'substring:f')"
如上命令所示,查詢的是表名爲testByCrq,過濾方式是經過列簇過濾,匹配出列簇含f的數據。
注:substring不能使用小於等於等符號。字符
> scan 'testByCrq', FILTER=>"PrefixFilter('00000')"
如上命令所示,查詢的是表名爲testByCrq,過濾方式是經過前綴過濾過濾的是行鍵,匹配出前綴爲00000的數據。hbase