<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          美團(tuán)一面:為什么選用Hbase,Hbase和MySQL的區(qū)別是什么?

          共 2006字,需瀏覽 5分鐘

           ·

          2021-09-27 11:39

          MySQL + HBase是我們?nèi)粘?yīng)用中常用的兩個數(shù)據(jù)庫,分別解決應(yīng)用的在線事務(wù)問題和大數(shù)據(jù)場景的海量存儲問題。

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

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

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

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

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

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

          圖片
          圖片

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

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

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

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

          關(guān)于LSM樹和B+樹的理解

          目的是為了減少磁盤IO,

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

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

          B+樹

          • 從磁盤讀數(shù)據(jù)是以頁為單位,根據(jù)這個特點(diǎn)使用平衡多路查找樹
          • B+樹的非葉子節(jié)點(diǎn)存放索引,葉子節(jié)點(diǎn)存放數(shù)據(jù)
          • 非葉子節(jié)點(diǎn)能夠存放更多的索引,樹的高度更低
          • 葉子節(jié)點(diǎn)通過指針相連,有利于區(qū)間查詢
          • 葉子節(jié)點(diǎn)和根節(jié)點(diǎn)的距離基本相同,查找的效率穩(wěn)定
          • 數(shù)據(jù)插入導(dǎo)致葉子節(jié)點(diǎn)分裂,最終導(dǎo)致邏輯連續(xù)的數(shù)據(jù)存放到不同物理磁盤塊位置,導(dǎo)致區(qū)間查詢效率下降
          LSM Tree
          • LSM(Log-Structured Merge),LevelDB,RocksDB,HBase,Cassandra等都是基于LSM結(jié)構(gòu)
          • HDD,SSD順序讀寫的速度都高于隨機(jī)讀寫,寫入日志就是順序?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樹有更好的性能,因?yàn)殡S著insert操作,為了維護(hù)B+樹結(jié)構(gòu),節(jié)點(diǎn)分裂。讀磁盤的隨機(jī)讀寫概率會變大,性能會逐漸減弱。LSM樹相比于B+樹,多次單頁隨機(jī)寫變成一次多頁隨機(jī)寫,復(fù)用了磁盤尋道時間,極大提高寫性能。不過付出代價就是放棄部分讀性能。

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

          相同之處:數(shù)據(jù)以表的模型進(jìn)行邏輯組織,應(yīng)用對數(shù)據(jù)進(jìn)行增刪改查

          不同之處:MySQL的SQL功能更豐富:事務(wù)能力更強(qiáng),HBase既可以用APIl進(jìn)行更靈活、性能更好的訪問,也可以借助Phoenix使用標(biāo)準(zhǔn)sQL訪問;只支持單行事務(wù)。

          HBase的特色功能--TTL

          圖片

          HBase的特色功能—多版本

          圖片

          HBase的特色功能—多列簇

          圖片

          HBase的特色功能—MOB

          圖片

          從生態(tài)看差異

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

          圖片

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

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

          總結(jié)

          圖片

          哪些場景的存儲適合HBase ?

          圖片
          圖片
          圖片
          圖片
          圖片
          圖片
          圖片
          圖片
          圖片
          圖片
          圖片

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

          圖片

          (感謝閱讀,希望對你所有幫助)

          來源:blog.csdn.net/weixin_41605937/article/details/110933984

          1. 一頓操作后,F(xiàn)GC頻率降低到原來的1/400

          2. 秀!如何搭建一個永久運(yùn)行的個人服務(wù)器?

          3. @Qualifier的作用和應(yīng)用

          4. TIOBE 9月編程語言排行榜

          最近面試BAT,整理一份面試資料Java面試BATJ通關(guān)手冊,覆蓋了Java核心技術(shù)、JVM、Java并發(fā)、SSM、微服務(wù)、數(shù)據(jù)庫、數(shù)據(jù)結(jié)構(gòu)等等。

          獲取方式:點(diǎn)“在看”,關(guān)注公眾號并回復(fù) Java 領(lǐng)取,更多內(nèi)容陸續(xù)奉上。

          文章有幫助的話,在看,轉(zhuǎn)發(fā)吧。

          謝謝支持喲 (*^__^*)

          瀏覽 23
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美很很鲁 | 亚洲成人在线视频 | 囯产精品久久精品 | 国产美女被强躁到呻吟红视频 | 青青草在线免费 |