自慰套教室~女子全员妊娠,精品无码国产自产拍在线观看蜜桃,亚洲国产精品成人精品无码区,久别的草原在线看视频免费

集團站切換校區

驗證碼已發送,請查收短信

復制成功
微信號:togogoi
添加微信好友, 詳細了解課程
已復制成功,如果自動跳轉微信失敗,請前往微信添加好友
打開微信
圖標

業界新聞

當前位置:首頁 > >業界新聞 > >

大數據培訓_W HBase 高級用法之行健設計

發布時間: 2019-05-30 14:30:04

  大數據培訓_W HBase 高級用法之行健設計

  1.熱點問題
  寫入要分散,減少region的熱點問題。
  例如: 歷史交易訂單,一般生成的訂單號都是通過時間戳+隨機的4位數字組成,可以讓訂單號倒序。這樣rowkey是訂單號的倒序存儲,減少集中存儲到某個region。
  例如:用戶上網流量存儲到Hbase,一般是讓手機號作為hbase的rowkey。由于手機號的后四位是隨機的??梢宰屖謾C號倒序排序作為hbase的rowkey。
  思考問題:
  直接將時間戳作為行健, 在寫入單個 region 時候會發生熱點問題,為什么?
  回答: 直接使用時間戳會引發單個region的熱點問題。
  HBase的rowkey在底層是HFile存儲數據的,以<K,V>鍵值對存放到SortedMap中。并且region中的rowkey是有序存儲,若時間比較集中。就會存儲到一個region中,這樣一個region的數據變多,其它的region數據很好,加載數據就會很慢。直到region分裂可以解決。
  2.行健設計
  在HBase中有兩類基本的鍵結構:行健和列鍵
  這兩者都存儲著有意義的信息,不僅僅是該鍵對應的值:
  列鍵:包括了列族名和限定符,定位到列的索引
  行?。合喈斢陉P系型數據庫中的主鍵,通過行健得到邏輯布局中一行的所有列
  邏輯上用戶設置的每一行都沒放在一起,但是實際存儲的時候每個列族的以單獨的文件存儲的,不同列族的單元格絕對不會出現在同一個StoreFile中。同時,HBase也不會存儲值為空的單元格,所以磁盤上的文件也只有這些有值的單元格。
  每個單元格在實際存儲的時候也保存了行健和列鍵,所以每個單元格都單獨存儲了它在表中所處位置的關鍵信息。
  同一個單元格的不同版本被單獨存儲為連續的單元格,單元格按照時間戳降序排列,所以默認讀取的是最新的單元格數據。
  同一列族的單元格在存儲的時候先按行健排序,當一行中有多個單元格的時候再按列鍵排序,同一單元格有多個版本的時候按時間戳排序
  根據以上的存儲特性,建議在查詢的時候指定列族信息可以有效減少查詢的存儲文件,提高效率
  3.行鍵設計的關鍵要點
  (1)存儲方式:磁盤上一個列族下所有的單元格都存儲在一個存儲文件(store file)中,不同列族的單元格不會出現在同一個存儲文件中。
  (2)NULL 不會存儲在HBase表中。
  (3)每個單元格在實際存儲時也保存了行健和列鍵,即單獨存儲了它在表中所處位置的相關信息。
  (4)同一個單元格的多個版本被單獨存儲為連續的單元格,單元格按照時間戳降序排列。故在HFile讀取時候,最新的值先被讀到。
  (5)單元格的KeyValue內容:行健、列族、列限定符、時間戳、值。KeyValue存儲先按照行健排序,再按列鍵排序。
  (6)對于KeyValue,篩選的效率從左到右變差:行健、列族、列限定符、時間戳、值。故而盡量將重要的篩選信息左移。

上一篇: Java培訓_Java NIO的緩沖區介紹

下一篇: Python培訓_Python開發環境搭建

在線咨詢 ×

您好,請問有什么可以幫您?我們將竭誠提供最優質服務!

<蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>