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') |