日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HBase删除和修改操作

發(fā)布時間:2024/1/23 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HBase删除和修改操作 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

HBase的底層依賴于HDFS,其在進(jìn)行數(shù)據(jù)存儲的時候使用KeyValue類型。當(dāng)數(shù)據(jù)進(jìn)行刪除或修改操作時,實(shí)際上是對KeyValue結(jié)構(gòu)中的某些部分進(jìn)行修改來完成。

1 HBase源碼分析之KeyValue

參見HBase源碼分析之KeyValue和HBase的基礎(chǔ)類型KeyValue
HBase是面向列的存儲數(shù)據(jù)的,最終的存儲單元都是KeyValue的結(jié)構(gòu),HBase本身也定義了一個KeyValue的類型,這是HBase數(shù)據(jù)存儲的基本類型
從名字來看應(yīng)該只有兩個數(shù)據(jù),一個是Key,一個是Value,的確如此,不過這里的Key是多個元素的聚合,有rowkey,列族,列名,時間戳以及key的類型

從左到右,依次為:

  • Key Length:存儲Key的長度,占4B;
  • Value Length:存儲Value的長度,占4B;
  • Key:由Row Length、Row、Column Family Length、Column Family
  • Row Length:存儲Row的長度,即rowkey的長度,占2B;
  • Row:存儲Row實(shí)際內(nèi)容,即Rowkey,其大小為Row Length;
  • Column Family Length:存儲列簇Column Family的長度,占1B;
  • Column Family:存儲Column Family實(shí)際內(nèi)容,大小為Column Family Length;
  • Column Qualifier:存儲Column Qualifier對應(yīng)的數(shù)據(jù),既然key中其他所有字段的大小都知道了,整個key的大小也知道了,那么這個Column Qualifier大小也是明確的了,無需再存儲其length;
  • Time Stamp:存儲時間戳Time Stamp,占8B;
  • Key Type:存儲Key類型Key Type,占1B,Type分為Put、Delete、DeleteColumn、DeleteFamilyVersion、DeleteFamily等類型,標(biāo)記這個KeyValue的類型;
  • Value:存儲單元格Cell對應(yīng)的實(shí)際的值Value。
  • 2 刪除數(shù)據(jù)

    由于HBase底層依賴HDFS,對于HBase刪除操作來說,HBase無法在查詢到之前的數(shù)據(jù)并進(jìn)行修改,只能順序讀寫,追加記錄。那HBase只能追加記錄了,為了更新或刪除數(shù)據(jù),HBase會插入一條一模一樣的新的數(shù)據(jù),但是key type會標(biāo)記成Delete狀態(tài),以標(biāo)記該記錄被刪除。在讀取的時候如果取到了是Delete,而且時間是最新的,那么這條記錄肯定是被刪掉了。

    3 更新數(shù)據(jù)

    進(jìn)行更新操作的時候,也會重新插入一條新的數(shù)據(jù)來代替在原來數(shù)據(jù)上修改。新的數(shù)據(jù)的timestamp會大于老的數(shù)據(jù),這樣讀取的時候,判斷時間戳就可以取出最新的數(shù)據(jù)了。

    4 總結(jié)

    由于HBase這樣的刪除和更新機(jī)制,如果后面沒有一個對于過期數(shù)據(jù)處理的機(jī)制,會導(dǎo)致過期數(shù)據(jù)越來越大,因此后面的compact操作中的major compact就順便將過期的數(shù)據(jù)刪除掉了。

    對于標(biāo)記為刪除的數(shù)據(jù),直接刪除。對于不同時間戳的多條數(shù)據(jù),根據(jù)其保存的最大版本數(shù)據(jù),刪除過期的數(shù)據(jù)。

    總結(jié)

    以上是生活随笔為你收集整理的HBase删除和修改操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。