2019/2/19 星期二
-------------------
hbase基本概念
目前創新互聯已為成百上千家的企業提供了網站建設、域名、網站空間、網站托管維護、企業網站設計、湞江網站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協力一起成長,共同發展。
hbase 數據庫介紹
hbase 是建立的hdfs 之上,提供高可靠性、高性能、列存儲、可伸縮、實時讀寫的數據庫系統。
它介于NOSQL 和RDBMS 之間,僅能通過主鍵(row key)和主鍵的range 來檢索數據,僅支持單行事務(可通過hive 支持來實現多表join 等復雜操作)。主要用來
存儲非結構化和半結構化的松散數據。
與hadoop 一樣,Hbase 目標主要依靠橫向擴展,通過不斷增加廉價的商用服務器,來增加計算和存儲能力。
hbase 表結構
HBase 中的表一般有這樣的特點:
1 大:一個表可以有上10 億行,上100 萬列
2 面向列:面向列(族)的存儲和權限控制,列(族)獨立檢索。 //傳統的MySQL數據是面向行的存儲
3 稀疏:對于為空(null)的列,并不占用存儲空間,因此,表可以設計的非常稀疏。
hbase集群結構 //見圖 各組件的作用
hbase表結構:建表的時候,不需要限定表中的字段,只需要指定若干個列族。
插入數據的時候,列族中可以存儲任意多個裂(kv對,列名&列值) //字段或者數量都可以任意
要查詢某個具體字段的值,需要指定坐標,表名--->行鍵---->列族:列名----->版本
時間戳 //一個value可以由多個版本,通過版本號來區分。默認返回最新的版本
HBase 以表的形式存儲數據。表有行和列組成。列劃分為若干個列族(row family)
Row Key與nosql 數據庫們一樣,row key 是用來檢索記錄的主鍵。
訪問hbase table 中的行,只有三種方式:
1 通過單個row key 訪問
2 通過row key 的range(范圍)
3 全表掃描
由此可以看出rk的設計在hbase中極為重要,我們下一篇博客重點討論hbase 表 rk設計重點
Row key 行鍵(Row key)
可以是任意字符串(最大長度是64KB,實際應用中長度一般為10-100bytes),在hbase 內部,row key 保存為字節數組。存儲時,數據按照Row key 的字典序(byte order)排序存儲。設計key 時,要充分排序存儲這個特性,將經常一起讀取的行存儲放到一起。(位置相關性)
注意:
字典序對int 排序的結果是
1,10,100,11,12,13,14,15,16,17,18,19,2,20,21,…,9,91,92,93,94,95,96,97,98,99。要保持×××的自然序,行鍵必須用0 作左填充。行的一次讀寫是原子操作(不論一次讀寫多少列)。這個設計決策能夠使用戶很容易的理解程序在對同一個行進行并發更新操作時的行為。
列族(column family)
hbase 表中的每個列,都歸屬與某個列族。
列族是表的chema 的一部分(而列不是) , 必須在使用表之前定義。
列名都以列族作為前綴。例如 courses:history , courses:math 都屬于courses 這個列族。
訪問控制、磁盤和內存的使用統計都是在列族層面進行的。
實際應用中,列族上的控制權限能幫助我們管理不同類型的應用:我們允許一些應用可以添加新的基本數據、一些應用可以讀取基本數據并創建繼承的列族、一些應用則只允許瀏覽數據(甚至可能因為隱私的原因不能瀏覽所有數據)。
//Hbase的列族不是越多越好,官方推薦的是列族最好小于或者等于3。我們使用的場景一般是1個列族。
時間戳 //一個value可以由多個版本,通過版本號來區分。
HBase 中通過row 和columns 確定的為一個存貯單元稱為cell。每個cell 都保存著同一份數據的多個版本。版本通過時間戳來索引。時間戳的類型是64 位整型。時間戳可以由hbase(在數據寫入時自動)賦值,此時時間戳是精確到毫秒的當前系統時間。時間戳也可以由客戶顯式賦值。如果應用程序要避免數據版本沖突,就必須自己生成具有唯一性的時間戳。每個cell 中,不同版本的數據按照時間倒序排序,即最新的數據排在最前面。為了避免數據存在過多版本造成的的管理(包括存貯和索引)負擔,hbase 提供了兩種數據版本回收方式。一是保存數據的最后n 個版本,二是保存最近一段時間內的版本(比如最近七天)。用戶可以針對每個列族進行設置。
Cell//是由kv組從或者是kv+version組成 可以理解為excell表格中的一格
由{row key, column( =<family> + <label>), version} 唯一確定的單元。
cell 中的數據是沒有類型的,全部是字節碼形式存貯。
hbase表結構與傳統數據庫表結構的對比 //見圖
小結:在關系型數據庫中不可以為單獨某一行加某一個字段,要加就得全部加
文章標題:hbase基本概念hbase
文章路徑:http://m.newbst.com/article44/gciiee.html
成都網站建設公司_創新互聯,為您提供網站排名、ChatGPT、軟件開發、品牌網站建設、App設計、靜態網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯