先觀察表中資料:
hbase中儲存資料時hbase行鍵是網域名稱倒置的命名方式,時間戳則為當前時間,有不用的時間戳,在冒號之前就是列簇的名字,但是並不是每行資料的時間戳是相同的。這裡體現出hbase在儲存資料的時候可以做到不儲存某個屬性的資料(在關係型資料中建立表之後,即使該屬性沒有資料也需要顯示為null),這就是hbase表儲存稀疏的特點。
hbase資料結構設計到四個名詞:
rowkey,column family,cell,timestamps。
rowkey(行鍵)
行鍵是用來檢索記錄的主鍵
與nosql資料庫一樣,row key就是用來檢索記錄的主鍵,訪問hbase中的行,只有三種方式:
通過單個rowkey訪問。通過rowkey的range(正規表示式)全表掃瞄
**==rowkey可以是任意字串(最大長度為64kb),在hbase內部,rowkey儲存為位元組陣列。儲存時,資料按照rowkey的位元組順序(bytecolumn family(列簇)hbase表中的每個列,都歸屬於某個列簇,其實就是列的集合。列簇是表的schema的一部分(列不是),必須在使用表之前定義。列名都已列簇作為字首。order)排序儲存。設計rowkey時,要充分考慮排序儲存這個特性,將經常一起讀取的行(io特性相似的行)儲存到一起(位置相關性)。 **
cell(無型別位元組碼)
由rowkey,column family,columb(值),bersion組成的唯一單元,值得注意是這裡的cell並不單單指當前列簇的值,而是指好幾個屬性加在一起所表示唯一的值。cell中的資料是沒有型別的,都是位元組碼形式儲存。
hbase和關係型資料庫區別:資料庫型別:hbase中的資料都是字串型別(string)資料。timestampshbase通過rowkey和columns確定的為乙個儲存單元成為乙個cell。每個cell都儲存著同乙份資料的多個版本。版本通過時間戳來索引。時間戳的型別是64位整數。時間戳可以由hbase(在資料寫入時)自動賦值。時間戳也可以有客戶顯示賦值。如果應用程式要避免資料版本衝突,就必須自己生成具有唯一性的時間戳。每個cell中,不同版本的資料按照時間倒序排序,即最新的資料排在前面。操作:hbase只有普通的增刪改查等操作,沒有表之前的關聯查詢。
儲存模式:hbase是基於列式儲存模式,二rdbms是基於行式儲存。
應用場景:hbase適合儲存大量資料,查詢效率極高。
HBase資料結構
與nosql資料庫們一樣,rowkey是用來檢索記錄的主鍵。訪問hbase table中的行,只有三種方式 1.通過單個rowkey訪問 get 2.通過rowkey的range 正則 like 3.全表掃瞄 scan rowkey行鍵 rowkey 可以是任意字串 最大長度是64kb,實際應用中長...
HBase學習 三 HBase的資料結構
hbase 資料庫中也有乙個表示唯一的鍵,這個唯一的鍵是 rowkey。rowkey 組成 hbase 中 rowkey 由任意字串組成,組成長度不超過 64kb 在實際應用中長度一般為10 100bytes,一般用到70 100bytes就能滿足需求,在hbase內部,rowkey儲存為位元組陣列...
4 HBase資料結構
與nosql資料庫們一樣,rowkey是用來檢索記錄的主鍵。訪問hbase table中的行,只有三種方式 1.通過單個rowkey訪問 get 2.通過rowkey的range 正則 like 3.全表掃瞄 scan rowkey行鍵 rowkey 可以是任意字串 最大長度是64kb,實際應用中長...