查询HBase表
SELECT命令用于查询hbase表中的数据。
语法格式
1
|
SELECT * FROM table_name LIMIT number; |
关键字
LIMIT:对查询结果进行限制,number参数仅支持INT类型。
注意事项
所查询的表必须是已经存在的表,否则会出错。
示例
查询表中的数据。
1
|
SELECT * FROM test_hbase limit 100; |
查询下压
通过hbase进行数据过滤,即HBase Client将过滤条件传给HBase服务端进行处理,HBase服务端只返回用户需要的数据,提高了Spark SQL查询的速度。对于HBase不支持的过滤条件,例如组合Rowkey的查询,直接由Spark SQL进行。
- 支持查询下压的场景
- 数据类型场景
- Int
- boolean
- short
- long
- double
- string
float类型数据不支持查询下压。
- 过滤条件场景
- 过滤条件为>,<,>=,<=,=,!=,and,or
1
select * from tableName where (column1 >= value1 and column2<= value2) or column3 != value3
- 过滤条件为like 和 not like,支持前缀,后缀和包含匹配
1
select * from tableName where column1 like "%value" or column2 like "value%" or column3 like "%value%"
- 过滤条件为IsNotNull()
1
select * from tableName where IsNotNull(column)
- 过滤条件为in ,not in
1
select * from tableName where column1 in (value1,value2,value3) and column2 not in (value4,value5,value6)
- 过滤条件为between _ and _
1
select * from tableName where column1 between value1 and value2
- 组合rowkey中的子rowkey过滤
例如,组合Rowkey为column1+column2+column3,进行子rowkey查询:
1
select * from tableName where column1= value1
- 过滤条件为>,<,>=,<=,=,!=,and,or
- 数据类型场景
- 不支持查询下压的场景