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