- 根据特定行键前缀查询数据:
scan 'your_table_name', {STARTROW => 'row_key_prefix', LIMIT => 100}
- 含义:
scan
是HBase Shell中用于扫描表数据的命令。
'your_table_name'
是你要操作的HBase表名,需替换为实际表名。
STARTROW => 'row_key_prefix'
表示从以 row_key_prefix
为前缀的行键开始扫描数据。HBase中的行键是有序存储的,通过指定STARTROW可以快速定位到满足前缀条件的起始位置。
LIMIT => 100
是可选参数,这里表示只返回100条记录,可根据实际需求调整,用于限制返回结果的数量,避免返回过多数据。
- 原理:HBase基于行键的字典序存储数据,通过指定STARTROW,HBase会从满足该前缀的行键开始读取数据,直到扫描完所有符合条件的数据或者达到指定的LIMIT数量。
- 筛选出某列族中特定列值满足一定条件的数据(例如数值大于某个值):
scan 'your_table_name', {FILTER => "SingleColumnValueFilter('cf_name', 'col_name', >, 'binary:10')"}
- 含义:
scan
依然是扫描表数据的命令。
'your_table_name'
是要操作的HBase表名,需替换为实际表名。
FILTER
是过滤器选项,用于对扫描结果进行过滤。
SingleColumnValueFilter
是HBase的一种过滤器,用于根据指定列族和列的值进行过滤。
'cf_name'
是指定的列族名,需替换为实际列族名。
'col_name'
是指定列族下的列名,需替换为实际列名。
>
表示比较运算符,这里表示大于。
'binary:10'
表示要比较的值,这里假设值是数值类型且以二进制格式存储,10是要比较的数值,需根据实际情况调整。如果值是字符串类型,可省略 binary:
前缀。
- 原理:
SingleColumnValueFilter
过滤器在扫描表数据时,对每一行数据中指定列族和列的值进行比较。只有当该列的值满足设定的比较条件(如这里的大于10)时,该行数据才会被包含在最终的扫描结果中。