hbase中根據Rowkey字尾進行查詢

2021-08-11 05:05:51 字數 1070 閱讀 8666

假如hbase表設計時,rowkey設計為「time+uid」(這裡不考慮hbase的rowkey設計合理性,只是簡單說明)。現在有乙個需求,篩選出某一uid在乙個時間段[time1,time2)的值,該怎麼辦呢?

如果是在命令列中進行查詢,可以結合startrow,endrow,filter,(column),具體如下所示:

scan 『tablename』,

如果是在**中進行查詢,

configuration config =

new configuration();

config.

set("hbase.zookeeper.quorum", "10.1.1.1");//需根據hbase配置進行設定

hbaseconfiguration hbaseconfig =

new hbaseconfiguration(config);

scan scan =

new scan();

scan.setstartrow(bytes

.tobytes(time1+uid));

scan.setstoprow(bytes

.tobytes(time2+uid));

filter filter =

new rowfilter(comparefilter.compareop.equal,new regexstringcomparator(".*"

+uid));

scan.setfilter(filter);

resultscanner rs =

null;

htable table =

new htable(hbaseconfig, bytes

.tobytes(tablename));

string rowkey =

null;

rs = table.getscanner(scan);

for (result r : rs)

}

Hbase中rowkey設計原則

1.rowkey長度原則 rowkey不宜過長 建議不要超過16個位元組 若rowkey長度過長,memorystore會將部分快取資料存入記憶體降低記憶體利用率,降低檢索效率,hfile進行資料持久化時也會極大影響儲存效率 2.rowkey雜湊原則 設計目標 將資料均勻的分布在每個regionse...

Hbase中rowkey設計原則

1.熱點問題 在某一時間段,有大量的資料同時對乙個region進行操作 2.原因 對rowkey的設計不合理 對rowkey的劃分不合理 3.解決方式 rowkey是hbase的讀寫唯一標識 最大長度是64kb。4.核心原則 設計必須按照業務需求進行設計 5.長度原則 經驗 10 100位元組可以 ...

HBase學習之HBase的RowKey設計原則

hbase是三維有序儲存的,通過rowkey 行鍵 column key column family和qualifier 和timestamp 時間戳 這個三個維度可以對hbase中的資料進行快速定位。hbase中rowkey可以唯一標識一行記錄,在hbase查詢的時候,有以下幾種方式 通過get方...