當前位置:吉日网官网 - 傳統美德 - Hbase和傳統數據庫的區別

Hbase和傳統數據庫的區別

HBase與傳統關系數據庫的區別?

答:主要體現在以下幾個方面:1.數據類型。關系數據庫采用關系模型,具有豐富的數據類型和儲存方式。HBase則采用了更加簡單的數據模型,它把數據儲存為未經解釋的字符串,用戶可以把不同格式的結構化數據和非結構化數據都序列化成字符串保存到HBase中,用戶需要自己編寫程序把字符串解析成不同的數據類型。

2.數據操作。關系數據庫中包含了豐富的操作,如插入、刪除、更新、查詢等,其中會涉及復雜的多表連接,通常是借助多個表之間的主外鍵關聯來實現的。HBase操作則不存在復雜的表與表之間的關系,只有簡單的插入、查詢、刪除、清空等,因為HBase在設計上就避免了復雜的表與表之間的關系,通常只采用單表的主鍵查詢,所以它無法實現像關系數據庫中那樣的表與表之間的連接操作。

3.存儲模式。關系數據庫是基於行模式存儲的,元祖或行會被連續地存儲在磁盤頁中。在讀取數據時,需要順序掃描每個元組,然後從中篩選出查詢所需要的屬性。如果每個元組只有少量屬性的值對於查詢是有用的,那麽基於行模式存儲就會浪費許多磁盤空間和內存帶寬。HBase是基於列存儲的,每個列族都由幾個文件保存,不同列族的文件是分離的,它的優點是:可以降低I/O開銷,支持大量並發用戶查詢,因為僅需要處理可以回答這些查詢的列,而不是處理與查詢無關的大量數據行;同壹個列族中的數據會被壹起進行壓縮,由於同壹列族內的數據相似度較高,因此可以獲得較高的數據壓縮比。

4.數據索引。關系數據庫通常可以針對不同列構建復雜的多個索引,以提高數據訪問性能。與關系數據庫不同的是,HBase只有壹個索引——行鍵,通過巧妙的設計,HBase中所有訪問方法,或者通過行鍵訪問,或者通過行鍵掃描,從而使整個系統不會慢下來。由於HBase位於Hadoop框架之上,因此可以使用Hadoop MapReduce來快速、高效地生成索引表。

6.數據維護。在關系數據庫中,更新操作會用最新的當前值去替換記錄中原來的舊值,舊值被覆蓋後就不會存在。而在HBase中執行更新操作時,並不會刪除數據舊的版本,而是生成壹個新的版本,舊有的版本仍舊保留。

7.可伸縮性。關系數據庫很難實現橫向擴展,縱向擴展的空間也比較有限。相反,HBase和BigTable這些分布式數據庫就是為了實現靈活的水平擴展而開發的,因此能夠輕易地通過在集群中增加或者減少硬件數量來實現性能的伸縮。

但是,相對於關系數據庫來說,HBase也有自身的局限性,如HBase不支持事務,因此無法實現跨行的原子性。

註:本來也想來問這個問題,然後復制壹下的。結果找不到,只好自己手打了,麻煩復制拿去用的同學點下贊唄。

  • 上一篇:農村房屋設計圖大全解析農村房屋設計技巧
  • 下一篇:創意知識競賽團隊名稱的口號
  • copyright 2024吉日网官网