自己整理的HBase建表引數預設值與配置差異

2021-10-25 19:00:35 字數 2066 閱讀 8866

寫在最前面,關於建表引數預設值:

由於hbase版本的不同,建表引數預設值可能會不同,建議建一張測試表,不設定所有引數

create 'gd:test'

,

然後再查詢建表語句desc(筆者hbase版本 0.98.6)。

'gd:test'

,

以下開始梳理具體建表引數的含義以及預設值:

啟用壓縮的步驟:

一是在建立表時指定壓縮演算法;

二是在建立表後,disable**之後再指定壓縮演算法或者修改壓縮演算法。

詳見:hbase表啟用壓縮的步驟

2.versions

預設值為1(或3?), 這個引數的意思是資料保留三個版本(時間戳),如果我們認為我們的資料沒有這麼大的必要保留這麼多,隨時都在更新,而老版本的資料對我們沒有多餘價值,那將此引數設為1 ,則能節約2/3 的空間

筆者專案中除了預設,其他表多被設定為1或10

min_versions:如果當前儲存的所有時間版本都早於ttl,至少min_version個最新版本會保留下來。這樣確保在查詢與資料早於ttl時有結果返回。

3.bloomfilter:預設值為none

布隆過濾器是hbase中的高階功能,它能減少特定訪問模式下的查詢時間,region伺服器不需要載入每乙個塊來檢查該塊中是否存在包含該行的單元格。但是相對應地,會增加記憶體和儲存的負擔。布隆過濾器預設為關閉狀態。

型別描述

none

不使用布隆過濾器

row行鍵使用布隆過濾器

rowcol

列鍵使用布隆過濾器

如果使用rowcol配置,則布隆過濾器會會占用大量的空間(由於行列數量遠大於行的數量)

(如果使用者只儲存計數器型別8位元組資料,那麼過濾器會占用儲存檔案的5%大小。如果乙個單元格的平均大小為1k,布隆過濾器需要1mb空間,那麼相比較而言開銷就會很小。)另外,如果**中的資料需要使用者定期修改所有行,此則不適合使用布隆過濾器。因為此時大部分的儲存檔案都會包含使用者所查詢的行資料。相應的,如果使用者按批更新資料,使得一行資料只被寫入少數幾個儲存檔案中,那麼此時布隆過濾器就能很大程度上減少i/o

4.data_block_encoding:預設不啟動,主要針對行鍵,用時間換空間。是hbase 0.94版本引入的特性,可以將重複的row/family/qualifier/進行壓縮,減少block的空間占用,提高記憶體使用率。

hbase目前提供了四種常用的編碼方式:prefix | diff | fast_diff | prefix_tree

6.replication_scope:集群間資料複製開關,預設為0,表示不啟動;如果值=1,代表啟動

7.ttl:time to live 即資料的有效市場,單位為秒。超過有效市場的資料在主壓縮(major compact)的時候,會被刪除,如果選擇forever則預設不會被刪除。

8.keep_deleted_cells:是否保留刪除的資料(true 保留,false 不保留)

9.blockcache:塊快取(true :使用塊快取,false:不使用)

10.in_memory:預設為false。設定 in_memory=true 的列族,block 被讀取後才會直接放到 in-memory 區,因此建議只給那些資料量少且訪問頻繁的列族設定 in_memory 屬性。

11.replication_scope:預設值為0,即關閉實時同步。配置為1時,即為開啟跨集群的同步功能,即本地的資料更新可以同步至其他集群。

範圍描述

0本地範圍,即關閉實時同步(預設)

1全域性範圍,即開啟實時同步

hbase 0.94版本新特性、效能優化詳解及使用(一)之資料壓縮(datablock compression,hlog compression)

hive建hbase外部表,內部表的問題

對於4000個字元的配置單元儲存區中的serde params表中的param value欄位的字元限制是此問題的根本原因。此限制可防止hive建立高列數的表,最終導致desc或select from失敗,並出現上述錯誤。1 登陸hive metastore所在節點的mysql資料庫 2 指定下面s...

Hbase 建表設定資料的有效期

如果想讓hbase中的資料在超過90天 這個時間是以資料最後修改的時間為準 後自動刪除可以在建表的時候指定ttl值 以秒為單位 順便記錄下hbase建表空間 create namespace jrjmqv2 建表的時候指定ttl,如建乙個表指定資料有效期為90天 60 60 24 90 777600...

常用sql命令列表 自己整理的

不知道怎樣帶顏色複製過來,把下面的複製到查詢分析器中就能看到效果,例子更改相關的值就可以用 sql常用命令 資料的增刪改查 增加資料 插入資料 insert into 表名 字段 字段 values 值,值,值.按需要字段填寫 insert into 表名 values 值,值,值.插入全部字段,自...