1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        深度對比,Hbase 和 MySQL 的區(qū)別是什么?

        共 1653字,需瀏覽 4分鐘

         ·

        2021-11-29 20:11

        MySQL + HBase是我們?nèi)粘弥谐S玫膬蓚€數(shù)據(jù)庫,分別解決應用的「在線事務問題」「大數(shù)據(jù)場景」的海量存儲問題。

        從架構(gòu)對比看差異

        相比MySQL,HBase的架構(gòu)特點:

        1.完全分布式(數(shù)據(jù)分片、故障自恢復)、2.底層使用HDFS(存儲計算分離)。

        由架構(gòu)看到的能力差異:

        1. MySQL: 運維簡單(組件少)、延時低(訪問路徑短)
        2. HBase: 擴展性好、內(nèi)置容錯恢復與數(shù)據(jù)冗余
        MySQL
        HBase

        從引擎結(jié)構(gòu)看差異

        相比MySQL,HBase的內(nèi)部引擎特點:

        1. HBase原生沒有sQL引擎(無法使用sQL訪問,使用APlI),云HBase增強版(Lindorm)及開源Phoenix均提供sQL能力
        2. HBase使用LSM(Log-Structure Merge)樹,,Innodb使用B+樹。

        由引擎結(jié)構(gòu)(B+Tree vs LSM Tree)看到的能力差異:

        1. MySQL:讀寫均衡、存在空間碎片
        2. HBase:側(cè)重于寫、存儲緊湊無浪費、Io放大、數(shù)據(jù)導入能力強

        關于LSM樹和B+樹的理解

        目的是為了減少磁盤IO,

        索引:某種數(shù)據(jù)結(jié)構(gòu),方便查找數(shù)據(jù)

        hash索引不利于范圍查詢,使用樹結(jié)構(gòu)

        B+樹

        • 從磁盤讀數(shù)據(jù)是以頁為單位,根據(jù)這個特點使用平衡多路查找樹
        • B+樹的非葉子節(jié)點存放索引,葉子節(jié)點存放數(shù)據(jù)
        • 非葉子節(jié)點能夠存放更多的索引,樹的高度更低
        • 葉子節(jié)點通過指針相連,有利于區(qū)間查詢
        • 葉子節(jié)點和根節(jié)點的距離基本相同,查找的效率穩(wěn)定
        • 數(shù)據(jù)插入導致葉子節(jié)點分裂,最終導致邏輯連續(xù)的數(shù)據(jù)存放到不同物理磁盤塊位置,導致區(qū)間查詢效率下降

        LSM Tree

        • LSM(Log-Structured Merge),LevelDB,RocksDB,HBase,Cassandra等都是基于LSM結(jié)構(gòu)
        • HDD,SSD順序讀寫的速度都高于隨機讀寫,寫入日志就是順序?qū)?/section>
        • WAL,memtable,sstable
        • 有利于寫,不利于讀,先從memtable查找,再到磁盤所有的sstable文件查找
        • Compaction的目的是減少sstable文件數(shù)量,緩解讀放大的問題,加速查找可以對sstable文件使用布隆過濾器
        • Compaction策略
          STCS(SIze-Tiered Compaction Strategy)空間放大和讀放大問題
          LCS(Leveled Compaction Strategy)寫放大問題
        • Compaction會引入寫放大問題,在Value較大時采用KV分離存儲緩解寫放大
        • 寫操作多于讀操作時,LSM樹有更好的性能,因為隨著insert操作,為了維護B+樹結(jié)構(gòu),節(jié)點分裂。讀磁盤的隨機讀寫概率會變大,性能會逐漸減弱。LSM樹相比于B+樹,「多次單頁隨機寫變成一次多頁隨機寫,復用了磁盤尋道時間,極大提高寫性能」。不過付出代價就是放棄部分讀性能。

        數(shù)據(jù)訪問

        相同之處:數(shù)據(jù)以表的模型進行邏輯組織,應用對數(shù)據(jù)進行增刪改查
        不同之處:MySQL的SQL功能更豐富:事務能力更強,HBase既可以用APIl進行更靈活、性能更好的訪問,也可以借助Phoenix使用標準sQL訪問;只支持單行事務

        「HBase的特色功能--TTL」

        HBase的特色功能—多版本

        HBase的特色功能—多列簇

        HBase的特色功能—MOB

        從生態(tài)看差異

        MySQL: 滿足APP的在線數(shù)據(jù)庫存儲,一般有我足矣

        大數(shù)據(jù)圈:應用于大數(shù)據(jù)場景的存儲、計算及管理組件

        MySQL:一般可獨立滿足在線應用的數(shù)據(jù)存儲需求,或者與少量組件配合(如緩存、分庫中間件)
        HBase:一般需要和較多大數(shù)據(jù)組件一起配合完成應用場景,場景架構(gòu)的設計、實施存在較大的挑戰(zhàn)

        總結(jié)

        哪些場景的存儲適合HBase ?

        HBase不是MySQL的替換,HBase是業(yè)務規(guī)模及場景擴張后,對MySQL的自然延伸

        瀏覽 36
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            黄色小视频免费观看 | 狠狠色综合网 | 麻豆导航 | 一本道精品在线 | 3p一女两男做爰免费观看 | 黄色网址在线播放 | 日韩黄片无码 | 国产黄片aaa | 欧美大黑粗 | 无码一级毛片一区二区视频孕妇 |