如何讀取hbase所有資料,並分頁?使用者57337638087082019-10-04 19:31:58

hbase分頁功能的幾種實現方案。分頁功能是線上系統的常用功能,對hbase,有以下幾個方案可以選擇(拋磚引玉)。

假設要查第N頁,1頁大小為M1 client分頁,scan查到N*M條,過濾掉N*(M——1)條,返回M條。

對於M,N較小時比較適合。

2 自定義Filter,該filter可以傳遞offset(server端需要過濾的記錄條數),在server端分頁,注意,跨不同的region時需要重新計算該offset。

例子:第1個HRegion的請求傳遞該值為N*M-1,表示需要在server端過濾掉N*M——1條記錄。

當第1個HRegion返回時,需要知道該次請求在server端實際過濾了多少條記錄(假設為Size條),第2個HRegion的請求傳遞該值為(N*(M-1))-Size。

3 快取上次分頁查詢的最後一條,下次分頁查詢從這條(不包含)開始查。

4 查詢條件固定的話,定時任務彙總表。5 結合其他框架想辦法。少量資料的推薦使用的,使用了方案1。