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已将老版本的数据进行了删除,所有此时老版本的数据就不会出现了