hbase基于hue的查询语法
hbase基于hue的查询语法
登录地址
界面操作说明
- 进入hue中的hbase
- 进入表的查询界面
- 界面说明
查询语句
,
表示结束查询,可以不加
主键查询
- 输入主键
rowkey1,rowkey2
说明:只输入主键查询
例1:00000051|1538229142
例2:00000051|1538229142,00000051|1538230148
- 根据主键的前缀查询
row_prefix*,
说明:根据主键的前几位进行模糊查询,默认只显示一条数据;通过+n-1
来显示n条数据
例1:00000051|*
例2:显示10条数据00000051|* +9
查询列族和列名
[colFamily:col1,colFamily:col2,colFamily:,col3,col_prefix*+(n-1),col1 to col2]
说明:colFamily表示列族,col表示列名, colFamily:
表示显示该列族下所有列, <col_prefix>*+(n-1)
根据列名模糊查询,col1 to col2
显示col1到col2之间的列
例1:00000051|* +9 [i:ts,i:path]
例2:00000051|* +9 [i:p*+3]
例3:00000051|1538229142,00000051|1538230148[elapse to path]
根据条件过滤查询
{filter() AND/OR filter()}
个人意见:substring筛选时使用=来筛选,否则会出错;binary筛选时可以用=、>=、<=等操作
- 根据主键进行过滤
RowFilter(=,'substring:111')
主键中包含111RowFilter(=,'binary:111')
主键等于111PrefixFilter('user1')
主键的前缀是user1
- 根据列进行过滤
- 列名过滤
QualifierFilter (=, 'substring:p')
列名中包含pQualifierFilter (=, 'binary:p')
列名等于pMultipleColumnPrefixFilter('a','b','e')
列名的前缀是a或者b或者eColumnPrefixFilter('c2')
列名的前缀是c2
- 列值过滤
SingleColumnValueFilter('i', 'path', =, 'substring:student')
列族为i,列名为path,列值包含studentSingleColumnValueFilter('i', 'path', =, 'binary:student')
列族为i,列名为path,列值等于studentValueFilter(=,'substring:111')
列值中包含111ValueFilter(=,'binary:111')
列值等于111
以上过滤器是大部分常用的过滤器,在hue-hbase中另有一些过滤器未在此文档中描述。
- 列名过滤
以下是我自己整理的一部分参考语法:
hbase中有单纯根据列值查询的ValueFilter和根据列名和列值查询的SingleColumnValueFilter,可根据需要选择。
下表中是按照根据列名和列值来进行查询的参考
SQL | hue_hbase |
---|---|
select col1,col2 | [col1,col2] |
where col1="student" | SingleColumnValueFilter('i', 'col1', =, 'binary:student') |
where col1 like "%body%" | SingleColumnValueFilter('i', 'col1', =, 'substring:body') |
where col1>=1.9 | SingleColumnValueFilter('i', 'col1', >=, 'binary:1.9') |
where col1="student" AND col2>1.9 | SingleColumnValueFilter('i', 'col1', =, 'binary:student') AND SingleColumnValueFilter('i', 'col2', >, 'binary:1.9') |
where col1="student" OR col2>1.9 | SingleColumnValueFilter('i', 'col1', =, 'binary:student') OR SingleColumnValueFilter('i', 'col2', >, 'binary:1.9') |
ฅ平平庸庸的普通人ฅ