hbase shell (2)

在hbase中, 有些時候我們須查詢某一欄位的數值是否更新,
在這個情況下, 應該如何利用hbase shell的方式查詢呢?
如果我們確知row-key的名稱, 我們可以利用get的方式執行:

hbase(main):005:0> get 'UserTable', 'B8:8D:12:1A:59:76'
[...]
10 row(s) in 0.4240 seconds

甚至指定欄位, 例如:

hbase(main):008:0> get 'UserTable', 'B8:8D:12:1A:59:76', {COLUMN=>['x', 'y']}
COLUMN                CELL
 x:                   timestamp=1434519293316, value=12.847539358614743
 y:                   timestamp=1434519293316, value=28.36858703324554
2 row(s) in 0.0100 seconds


然而, 若是row-key為自動產生 (由寫入程式決定), 
或是, 不知道row-key的資訊 (例如: 使用者的MAC位址), 應該如何查詢呢?

這時,我們可以用scan的方式, 搭配filter的方式,
比如說, 我想查詢UserTable下所有使用者的位置,
我們可以用以下指令進行:

hbase(main):010:0> scan 'UserTable', {COLUMN=>['x', 'y']}
ROW                   COLUMN+CELL
 00:08:CA:CE:76:57    column=x:, timestamp=1434520113031, value=11.78151150906617
                      4
 00:08:CA:CE:76:57    column=y:, timestamp=1434520113031, value=28.00934724972817
 00:1F:3B:7F:67:6F    column=x:, timestamp=1434520112978, value=10.53167830917483
                      6
 00:1F:3B:7F:67:6F    column=y:, timestamp=1434520112978, value=28.06432776675917
                      8
 1C:87:2C:9A:9D:DF    column=x:, timestamp=1434520112921, value=9.586855841089205
 1C:87:2C:9A:9D:DF    column=y:, timestamp=1434520112921, value=26.72912365889001
                      8
 34:23:BA:D0:51:B0    column=x:, timestamp=1434520103913, value=-3.20190502157049
                      4
 34:23:BA:D0:51:B0    column=y:, timestamp=1434520103913, value=-3.65217097379893
                      03
 3C:E0:72:B6:29:B9    column=x:, timestamp=1434516849406, value=-0.55738529450722
                      09
 3C:E0:72:B6:29:B9    column=y:, timestamp=1434516849406, value=-0.34557026187865
                      314
 44:D4:E0:89:7C:B7    column=x:, timestamp=1434520226495, value=36.9641301909726
 44:D4:E0:89:7C:B7    column=y:, timestamp=1434520226495, value=25.10948579266705
 54:A0:50:01:DA:94    column=x:, timestamp=1434520238803, value=1.190297772010054
                      7
 54:A0:50:01:DA:94    column=y:, timestamp=1434520238803, value=6.247115441286943
 60:F8:1D:9F:3F:5A    column=x:, timestamp=1434520103916, value=3.067398502730814
 60:F8:1D:9F:3F:5A    column=y:, timestamp=1434520103916, value=1.407806713033101
 B8:8D:12:1A:59:76    column=x:, timestamp=1434520112951, value=9.794736465620819
 B8:8D:12:1A:59:76    column=y:, timestamp=1434520112951, value=25.86060679139192
                      3
9 row(s) in 0.0750 seconds

scan的filter除了對欄位進行外, 還有其他多種用法,
包括對於timestamp, 或是, prefix進行,
若是有需要的話, 可以用help查詢.




留言

熱門文章

LTE筆記: RSRP, RSSI and RSRQ

[WiFi] WiFi 網路的識別: BSS, ESS, SSID, ESSID, BSSID

LTE筆記: 5G NR Measurement Events