nosql(nosql = not only sql),意思是不僅僅是sql的擴充套件,一般指的是非關係型的資料庫。
隨著網際網路web2.0**的興起,傳統的關聯式資料庫在應付web2.0**,特別是超大規模和高併發的sns型別的web2.0純動態**已經顯得力不從心,傳統的電信行業動輟就千萬甚至上億的資料,甚至有客戶提出需要儲存相關的日誌資料50年以上,暴露了很多難以克服的問題,而非關係型的資料庫則由於其本身的特點得到了非常迅速的發展。
關係型資料庫難以克服的問題:
sql語言和關係型資料庫(mysql、postgresql、oracle等)是通用的資料解決方案,占有絕大多數的市場。但是就像上面提到的,它有很多難以解決的問題。不過在最近興起的nosql運動中,湧現出一批具備高可用性、支援線性擴充套件、支援map/reduce操作等特性的資料產品,它們具有如下特性:
使用這些資料產品並不是要取代原有的資料產品,而是為不同的應用場景提供更多的選擇。也就是說,在一些特定的情況下如果是關係型的資料庫解決不了的問題,那麼就可以考慮使用nosql,而不是說完全將應用移植到nosql上,畢竟適合才是最好的。
15個nosql資料庫
hbase是apache hadoop中的乙個子專案,hbase依託於hadoop的hdfs作為最基本儲存基礎單元,通過使用hadoop的dfs工具就可以看到這些這些資料 儲存資料夾的結構,還可以通過map/reduce的框架(演算法)對hbase進行操作,如下圖所示:
hbase在產品中還包含了jetty,在hbase啟動時採用嵌入式的方式來啟動jetty,因此可以通過web介面對hbase進行管理和檢視當前執行的一些狀態,非常輕巧方便。
hbase是apache hadoop中的乙個子專案,現已成為apache的頂級專案。
hbase是google bigtable(基於google file system)的開源山寨版本。
hbase 不同於一般的關聯式資料庫,它是乙個適合於非結構化資料儲存的資料庫.所謂非結構化資料儲存就是說hbase是基於列的而不是基於行的模式,這樣方便讀寫你的大資料內容。
hbase是介於map entry(key & value)和db row之間的一種資料儲存方式。就點有點類似於現在流行的memcache,但不僅僅是簡單的乙個key對應乙個 value,你很可能需要儲存多個屬性的資料結構,但沒有傳統資料庫表中那麼多的關聯關係,這就是所謂的鬆散資料。
簡單來說,你在hbase中的表建立的可以看做是一張很大的表,而這個表的屬性可以根據需求去動態增加,在hbase中沒有表與表之間關聯查詢。你只需要 告訴你的資料儲存到hbase的那個column families 就可以了,不需要指定它的具體型別:char,varchar,int,tinyint,text等等。但是你需要注意hbase中不包含事務此類的功能。
apache hbase 和google bigtable 有非常相似的地方,乙個資料行擁有乙個可選擇的鍵和任意數量的列。表是疏鬆的儲存的,因此使用者可以給行定義各種不同的列,對於這樣的功能在大專案中非常實用,可以簡化設計和公升級的成本。
hbase 是基於列的資料庫,讓我們看一下關係型資料庫和hbase資料庫儲存的對比。
行式儲存和列式儲存對比:
行式儲存
列式儲存
資料按列儲存——每一列單獨存放
資料即是索引
只訪問查涉及的列——大量降低系統io
每一列由乙個線索來處理——查詢的併發處理
資料型別一致,資料特徵相似——高效壓縮
hbase 是基於
下面的**中hbase和rdbms的對比關係
hbase
rdbms
資料型別
只有字串
豐富的資料型別
資料操作
簡單的增刪改查
各種各樣的函式,表連線
儲存模式
基於列儲存
基於**結構和行儲存
資料保護
更新後舊版本仍然會保留
替換可伸縮性
輕易的進行增加節點,相容性高
需要中間層,犧牲功能
hadoop使用:
hadoop使用(一)
hadoop使用(二)
hadoop使用(三)
hadoop使用(四)
hadoop使用(五)
hadoop使用(六)
hbase實戰:
hbase實戰——(1.1 nosql介紹)
hbase實戰 (1 1 nosql介紹)
nosql nosql not only sql 意思是不僅僅是sql的擴充套件,一般指的是非關係型的資料庫。隨著網際網路web2.0 的興起,傳統的關聯式資料庫在應付web2.0 特別是超大規模和高併發的sns型別的web2.0純動態 已經顯得力不從心,傳統的電信行業動輟就千萬甚至上億的資料,甚至...
HBase程式設計實戰
程式設計實現以下指定功能,並用hadoop提供的hbase shell命令完成相同任務 1 列出hbase所有的表的相關資訊,例如表名 public static void main string args throws ioexception if admin null admin.close i...
《HBase實戰》一導讀
hbase實戰 2008年秋季我開始和hbase結緣,當時它還是乙個新生專案,一年前剛剛發布。早期版本出來時,hbase表現很不錯,但是也不是沒有令人尷尬的缺陷。hbase專案當時有近10個軟體commiffer,作為乙個apache子專案還算不錯。接下來是nosql宣傳的高潮。當時專有名詞nosq...