hbase刪除標記和注意事項

hbase刪除有三種標記

  • Delete標記: 刪除特定列列指定的版本
  • DeleteFamily標記: 刪除特定列族所有列
  • DeleteColumn標記: 刪除特定列的所有版本

指定rowkey: 使用DeleteFamily標記

  • 不加時間戳表示刪除指定rowkey的所有數據
  • 加時間戳表示刪除指定rowkey時間戳版本小於或等於指定時間戳的所有數據

指定rowkey+columnFamily: 使用DeleteFamily標記

  • 不加時間戳表示刪除指定列族的所有數據
  • 加了時間戳就表示刪除指定列族時間戳版本小於或等於指定時間戳的所有數據

指定rowkey+columnFamily+column(addColumns): 使用DeleteColumn標記

  • 不加時間戳表示刪除指定列所有版本的數據
  • 加時間戳表示刪除指定列時間戳版本小於或等於指定時間戳的所有數據

指定rowkey+columnFamily+column(addColumn): 使用Delete標記 (只刪除單個版本數據,生產環境儘量別用)

  • 不加時間戳表示刪除指定列最新版本的數據

  • 加時間戳表示刪除指定列指定時間戳版本的數據

  • 不推薦的原因是:操作不同(如flush前後操作產生的結果會不一樣)結果可能不同
    在flush前如果有多個版本的數據,此時進行addColumn(不加時間戳)操作,會將最新版本的數據刪除,然後老版本的數據會出現

    在flush後進行addColumn(不加時間戳)操作,會將最新版本的數據刪除,而此時flush已將老版本的數據進行了刪除,所有此時老版本的數據就不會出現了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章