hbase rowkey設計的注意事項

2021-09-08 01:12:20 字數 606 閱讀 3948

1

充分利用有序性

1.1如果要scan操作,且不是很頻繁,可以利用rowkey的有序性將需要一起掃瞄的資料放到一起。例如直接用時間戳。這樣就可以按時間scan了。這個只要是簡單的全表掃瞄都行。

1.2同樣是scan,還可以利用rowkey的有序性實現資料本地化,設同一類別的資料需要一起掃瞄,那就可以給rowkey加乙個類別字首。(為了節約磁碟空間,需將類別名稱編碼) 這個不如垂直爬蟲,我要掃瞄新聞類,或者bbs類,就可以為rowkey加個編碼後的新聞,bbs類別id,實現同一類別的url本地化。

1.3組合rowkey

多個字段組合出rowkey,實現多欄位排序以滿足我們的程式設計需求,例如爬蟲系統的需求有根據host ,優先順序,等排序。這個完全可以是使用 hostid_pid(優先順序)_urlid(雜湊,或者md5)

2.1避免熱點

頻繁按時間段查詢,如果用時間戳作為rowkey會造成熱點,所以這裡需要將rowkey打散到各個節點,將壓力分配到各個節點。例如人民幣冠字型大小查詢,如果rowkey是冠字型大小,hbase會將臨近的冠字型大小作為rowkey放到同乙個region。這樣當頻繁查詢的時候,就會造成某個regionserver壓力過大,形成熱點,影響整體效能。

HBase RowKey設計原則

對於關係型資料庫,資料定位可以理解為 二維座標 但是hbase中需要四維來定位乙個單元格,即 行健 列族 列限定符 時間戳 hbase中的行是按照rowkey的字典順序排序的,這種設計優化了scan操作,可以將相關的行以及會被一起讀取的行訪問在臨近位置,便於scan。然而糟糕的rowkey設計是熱點...

HBase Rowkey 設計指南

文章目錄 2 rowkey設計技巧 3 rowkey 設計案例剖析 我們常說看一張 hbase 表設計的好不好,就看它的 rowkey 設計的好不好。可見 rowkey 在 hbase 中的地位。那麼 rowkey 到底是什麼?rowkey 的特點如下 如果我們的 rowkey 設計為 uid ph...

HBase Rowkey 設計指南

我們常說看一張 hbase 表設計的好不好,就看它的 rowkey 設計的好不好。可見 rowkey 在 hbase 中的地位。那麼 rowkey 到底是什麼?rowkey 的特點如下 如果我們的 rowkey 設計為 uid phone name,那麼這種設計可以很好的支援以下的場景 難以支援的場...