網易視頻雲技術分享:HBase - 建表語句解析

來源:互聯網
上載者:User

標籤:

      網易視頻雲的技術專家給大家分享一篇技術性文章:HBase - 建表語句解析。

  像所有其他資料庫一樣,HBase也有表的概念,有表的地方就有建表語句,而且建表語句還很大程度上決定了這張表的儲存形式、讀寫效能。比如我們熟悉的MySQL,建表語句中資料類型決定了資料的儲存形式,主鍵、索引則很大程度上影響著資料的讀寫效能。雖然HBase沒有主鍵、索引這些概念,但在HBase的世界裡,有些東西和它們一樣重要!

  廢話不說,直接奉上一條HBase建表語句,來為各位看官分解剖析:

  create ‘NewsClickFeedback‘,{NAME=>‘Toutiao‘,VERSIONS=>1,BLOCKCACHE=>true,BLOOMFILTER=>‘ROW‘,COMPRESSION=>‘SNAPPY‘,TTL => ‘ 259200 ‘},{SPLITS => [‘1‘,‘2‘,‘3‘,‘4‘,‘5‘,‘6‘,‘7‘,‘8‘,‘9‘,‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘]}

  上述建表語句表示建立一個表名為“NewsClickFeedback”的表,該表只包含一個列簇“Toutiao”。接下來重點講解其他欄位的含義以及如何正確設定。Note:因為篇幅有限本文並不講解具體的工作原理,後續會有相關專題對其進行分析。

  VERSIONS

  資料版本數,HBase資料模型允許一個cell的資料為帶有不同時間戳記的多版本資料集,VERSIONS參數指定了最多儲存幾個版本資料,預設為1。假如某個使用者想儲存兩個曆史版本資料,可以將VERSIONS參數設定為2,再使用如下Scan命令就可以擷取到所有曆史資料:

  scan ‘NewsClickFeedback‘,{VERSIONS => 2}

  BLOOMFILTER

  布隆過濾器,最佳化HBase的隨即讀取效能,可選值NONE|ROW|ROWCOL,預設為NONE,該參數可以單獨對某個列簇啟用。啟用過濾器,對於get操作以及部分scan操作可以剔除掉不會用到的隱藏檔,減少實際IO次數,提高隨機讀效能。Row類型適用於只根據Row進行尋找,而RowCol類型適用於根據Row+Col聯合尋找,如下:

  Row類型適用於:get ‘NewsClickFeedback’,’row1′

  RowCol類型適用於:get ‘NewsClickFeedback’,’row1′,{COLUMN => ‘Toutiao’}

  對於有隨機讀的業務,建議開啟Row類型的過濾器,使用空間換時間,提高隨機讀效能。

  COMPRESSION

  資料壓縮方式,HBase支援多種形式的資料壓縮,一方面減少資料存放區空間,一方面降低資料網路傳輸量進而提升讀取效率。目前HBase支援的壓縮演算法主要包括三種:GZip | LZO | Snappy,下面表格分別從壓縮率,編解碼速率三個方面對其進行對比:

  Snappy的壓縮率最低,但是編解碼速率最高,對CPU的消耗也最小,目前一般建議使用Snappy

  TTL

  資料到期時間,單位為秒,預設為永久儲存。對於很多業務來說,有時候並不需要永久儲存某些資料,永久儲存會導致資料量越來越大,消耗儲存空間是其一,另一方面還會導致查詢效率降低。如果設定了到期時間,HBase在Compact時會通過一定機制檢查資料是否到期,到期資料會被刪除。使用者可以根據具體業務情境設定為一個月或者三個月。樣本中TTL => ‘ 259200’設定資料到期時間為三天

  IN_MEMORY

  資料是否常駐記憶體,預設為false。HBase為頻繁訪問的資料提供了一個快取區域,快取區域一般儲存資料量小、訪問頻繁的資料,常見情境為中繼資料存放區。預設情況,該快取區域大小等於Jvm Heapsize * 0.2 * 0.25 ,假如Jvm Heapsize = 70G,儲存地區的大小約等於3.2G。需要注意的是HBase Meta中繼資料資訊儲存在這塊地區,如果業務資料設定為true而且太大會導致Meta資料被置換出去,導致整個叢集效能降低,所以在設定該參數時需要格外小心。

  BLOCKCACHE

  是否開啟block cache緩衝,預設開啟。

  SPLITS

  region預分配策略。通過region預分配,資料會被均衡到多台機器上,這樣可以一定程度上解決熱點應用資料量劇增導致系統自動split引起的效能問題。HBase資料是按照rowkey按升序排列,為避免熱點資料產生,一般採用hash + partition的方式預分配region,比如樣本中rowkey首先使用md5 hash,然後再按照首字母partition為16份,就可以預分配16個region。

  更多技術諮詢,請關注網易視頻雲官方網站(vcloud.163.com)和官方(vcloud163)。

網易視頻雲技術分享:HBase - 建表語句解析

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.