列簇設計
版本設計
資料壓縮
rowkey設計原則
在hbase有很多張表,這些表需要按照業務劃分開,為方便管理這些表,不同業務就有不同的命名空間,
類似hive中的資料庫,不同的資料庫用來儲存不同型別的表。
注:
建立命名空間:
create_namespace 'momo_chat'
檢視命名空間列表:
list_namespace
檢視命名空間:
describe_namespace 'momo_chat'
命名空間建立表:
在命令momo_chat命名空間下建立名為:msg的表,該錶包含乙個名為c1的列蔟。
注意:帶有命名空間的表,使用冒號將命名空間和表名連線到一起。
create 'momo_chat:msg','c1'
刪除命名空間:
刪除命名空間,命名空間中必須沒有表,如果命名空間中有表,是無法刪除的
drop_namespace 'momo_chat'
設計目的
設計原則
個數原則
長度原則
檢視表的版本資訊:
檢視命名空間momo_chat中的msg表資訊:
describe "momo_chat:msg"
檢視命名空間momo_chat中的msg表資訊:
escribe "momo_chat:msg"
通過輸出可以看出,hbase建立表預設是沒有指定壓縮演算法的
建立新的表,並指定資料壓縮演算法:
create "momo_chat:msg",
修改已有的表,並指定資料壓縮演算法:
alter "momo_chat:msg",
業務原則:用最常見的查詢條件作為rowkey目的:盡量走索引查詢
唯一原則:每條rowkey是不能重複
目的:唯一標識一條資料
組合原則:將最常用的幾個查詢條件組合構建rowkey
目的:盡量大部分查詢都走索引
雜湊原則:rowkey整體或者字首不能是連續的,需要構建隨機的雜湊
目的:避免熱點問題
長度原則:在滿足業務需求情況下,越短越好
目的:提高效能
預分割槽:
rowkey避免熱點設計
反轉策略
加鹽策略
雜湊策略
Hbase表結構設計
一 主體思路 先確定查詢場景,再確定表結構。二 主鍵設計 主鍵設計需要考慮兩個問題 1.選擇哪些作為主鍵?2.當主鍵大於1個時,如何排列。2.1 邏輯上用於表示行的唯一性的列必須作為主鍵 2.2 單個查詢場景中一定出現的列可以考慮加入主鍵列,用於優化查詢效能 2.3 在多個查詢場景都出現的主鍵列要排...
結構設計 資料表設計 常用表結構設計
為了建立冗餘較小 結構合理的資料庫,設計資料庫時必須遵循一定的規則。在關係型資料庫中這種規則就稱為正規化。位址一般包括 省 市 縣 區 詳細位址 我們當然可以儲存乙個字段 使用分隔符 json 等儲存 介紹字段介紹 字段介紹 idbigint id parentid parentidlist chi...
RBAC 的表結構設計
一套能體現 rbac 的表結構設計 1 rbac 概述 2 表結構設計 2.1 使用者表 2.2 角色表 2.3 許可權表 2.4 使用者角色 關係 表 2.5 角色許可權 關係 表 3 總結1 rbac 概述 rbac role based access control 即基於角色的訪問控制,是一...