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已將老版本的數據進行了刪除,所有此時老版本的數據就不會出現了