溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

HBase創(chuàng)建表指定版本和未指定版本區(qū)別有哪些

發(fā)布時間:2021-12-08 14:57:02 來源:億速云 閱讀:583 作者:小新 欄目:云計算

這篇文章主要介紹HBase創(chuàng)建表指定版本和未指定版本區(qū)別有哪些,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

HBase創(chuàng)建表未指定版本  [建表時默認的VERSION是1.]

create 'mytable', {NAME => 'colfam1'}

HBase創(chuàng)建表指定版本和未指定版本區(qū)別有哪些

向'mytable'中添加三條數(shù)據(jù):

put 'mytable','001','colfam1','1@'

put 'mytable','001','colfam1','1%'

put 'mytable','001','colfam1','1&'

 put 'mytable','001','colfam1','1*'
 

HBase創(chuàng)建表指定版本和未指定版本區(qū)別有哪些
 

scan 'mytable' 中的數(shù)據(jù)【默認只能查看最新的數(shù)據(jù),想查看多個版本需要指定下

看到的最后一條記錄。

HBase創(chuàng)建表指定版本和未指定版本區(qū)別有哪些
 

查找時指定了版本,還是看到最后一條記錄。雖然加了VERSIONS,但get的結(jié)果是1條;這就是因為建表時默認的VERSION是1.

可以修改VERSIONS:alter 'member',{NAME=>'info','VERSIONS'=>2}

HBase創(chuàng)建表指定版本和未指定版本區(qū)別有哪些
 

分析:與建表時指定的保留版本數(shù)有關(guān)系


HBase創(chuàng)建表指定版本:(加了VERSIONS=>3,就可以查到歷史的數(shù)據(jù)了,但是必須再創(chuàng)建表的時候加上VERSIONS,否則無效)

create 'mytable', {NAME => 'colfam1', VERSIONS => 5,MIN_VERSIONS => '3'}

put 'mytable','001','colfam1','1@'
put 'mytable','001','colfam1','1%'

put 'mytable','001','colfam1','jhl'

put 'mytable','001','colfam1','hjf'

 get 'mytable','001',{COLUMN => 'colfam1',VERSIONS => 3}

get 'mytable','001',{COLUMN => 'colfam1',VERSIONS => 5}
 


 

HBase創(chuàng)建表指定版本和未指定版本區(qū)別有哪些

總結(jié):1.若想保留表的列族的歷史記錄:就要在當前列上指定版本信息

{COLUMN => 'colfam1',VERSIONS => 5}
 

2.scan table 始終是掃描到表的每一行的最大版本的那條記錄。

參詳api解釋:

Gets實在Scan的基礎(chǔ)上實現(xiàn)的。可以詳細參見下面的討論 Get 同樣可以用 Scan來描述.

默認情況下,如果你沒有指定版本,當你使用Get操作的時候,會返回最近版本的Cell(該Cell可能是最新寫入的,但不能保證)。默認的操作可以這樣修改:

  • 如果想要返回返回兩個以上的把版本,參見Get.setMaxVersions()

  • 如果想要返回的版本不只是最近的,參見 Get.setTimeRange()

    要向查詢的最新版本要小于或等于給定的這個值,這就意味著給定的'最近'的值可以是某一個時間點??梢允褂?到你想要的時間來設(shè)置,還要把max versions設(shè)置為1.

5.8.1.2. 默認 Get 例子

下面的Get操作會只獲得最新的一個版本。

        Get get = new Get(Bytes.toBytes("row1"));
        Result r = htable.get(get);
        byte[] b = r.getValue(Bytes.toBytes("cf"), Bytes.toBytes("attr"));  // returns current version of value
5.8.1.3. 含有的版本的Get例子

下面的Get操作會獲得最近的3個版本。

        Get get = new Get(Bytes.toBytes("row1"));
        get.setMaxVersions(3);  // will return last 3 versions of row
        Result r = htable.get(get);
        byte[] b = r.getValue(Bytes.toBytes("cf"), Bytes.toBytes("attr"));  // returns current version of value
        List<KeyValue> kv = r.getColumn(Bytes.toBytes("cf"), Bytes.toBytes("attr"));  // returns all versions of this column

以上是“HBase創(chuàng)建表指定版本和未指定版本區(qū)別有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI