HBase的一些要點
以下五點是 HBase 這個 NoSQL 資料庫的要點
① 高併發,以擴充套件,解決海量資料集的隨機實時增刪改查
② HBase 本質依然是 Key-Value 資料庫,查詢資料功能很簡單,不支援 join 等複雜操作(可
通過 Hive 支援來實現多表 join 等複雜操作)
③ 不支援複雜的事務,只支援行級事務
④ HBase 中支援的資料型別:byte[](底層所有資料的儲存都是位元組陣列)
⑤ 主要用來儲存結構化和半結構化的鬆散資料。
結構化:資料結構欄位含義確定,清晰,典型的如資料庫中的表結構
半結構化:具有一定結構,但語義不夠確定,典型的如 HTML 網頁,有些欄位是確定的(title),有些不確定(table)
非結構化:雜亂無章的資料,很難按照一個概念去進行抽取,無規律性
HBase 中的表特點
1、大:一個表可以有上十億行,上百萬列
2、面向列:列可以靈活指定,面向列(族)的儲存和許可權控制,列(簇)獨立檢索。
3、稀疏:對於為空(null)的列,並不佔用儲存空間,因此,表可以設計的非常稀疏。
4、無嚴格模式:每行都有一個可排序的主鍵和任意多的列,列可以根據需要動態的增加,
同一張表中不同的行可以有截然不同的列
關於儲存系統的模式介紹:
讀模式:在讀取資料的時候做模式校驗,比如資料倉庫 Hive
寫模式:在寫入資料進入儲存系統的時候做模式校驗,比如 RDBMS
表結構
1、RDBMS 完全可以抽象成是一張二維表格,表由行和列組成。由行和列確定一個唯一的值
2、HBase 本質是 key-value 資料庫,key 是行健 rowkey,value 是所有真實 key-value 的集合
3、HBase 也可以抽象成為一張四維表格,四維分別由行健 RowKey,列簇 Column Family,列
Column 和時間戳 Timestamp 組成。
4、其中,一張 HBase 的所有列劃分為若干個列簇 (Column Family)