在HBase中,可以使用scan
命令來根據條件列出數據。以下是一些示例:
hbase(main):001:0> scan 'your_table_name'
column_family
為cf1
且column_qualifier
為q1
的所有行:hbase(main):001:0> scan 'your_table_name', {COLUMN => 'cf1:q1'}
column_family
為cf1
且column_qualifier
以q
開頭的所有行:hbase(main):001:0> scan 'your_table_name', {COLUMN => 'cf1:q%' }
column_family
為cf1
且column_qualifier
為q1
,時間戳在1609459200000
(2021-01-01 00:00:00 UTC)之后的所有行:hbase(main):001:0> scan 'your_table_name', {COLUMN => 'cf1:q1', TIMESTAMP => 1609459200000}
column_family
為cf1
且column_qualifier
為q1
,值大于100
的所有行:首先,需要創建一個過濾類:
import org.apache.hadoop.hbase.filter.CompareFilter;
import org.apache.hadoop.hbase.filter.Filter;
import org.apache.hadoop.hbase.filter.SingleColumnValueFilter;
public class ValueFilterExample {
public static Filter createValueFilter(String columnFamily, String columnName, CompareFilter.CompareOp compareOp, Object value) {
SingleColumnValueFilter filter = new SingleColumnValueFilter(columnFamily.getBytes(), columnName.getBytes(), compareOp, value);
return filter;
}
}
然后,在HBase Shell中使用該過濾器:
hbase(main):001:0> scan 'your_table_name', {FILTER => ValueFilterExample.createValueFilter('cf1', 'q1', CompareFilter.CompareOp.GREATER, 100)}
這些示例應該可以幫助您根據條件列出HBase表中的數據。請注意,根據您的需求和環境,可能需要對這些示例進行調整。