今日問(wèn)題:發(fā)現(xiàn)delete操作不起作用
看如下的解釋
- 刪除指定的所有版本以及刪除指定列
- 刪除指定列的最新版本,意思就是:如果刪除了最新的版本,老的版本就會(huì)被使用。东涡。。倘待。
/**
* Delete all versions of the specified column.
* @param family family name
* @param qualifier column qualifier
* @return this for invocation chaining
*/
public Delete addColumns(final byte [] family, final byte [] qualifier) {
addColumns(family, qualifier, this.ts);
return this;
}
/**
* Delete the latest version of the specified column.
* This is an expensive call in that on the server-side, it first does a
* get to find the latest versions timestamp. Then it adds a delete using
* the fetched cells timestamp.
* @param family family name
* @param qualifier column qualifier
* @return this for invocation chaining
*/
public Delete addColumn(final byte [] family, final byte [] qualifier) {
this.deleteColumn(family, qualifier, this.ts);
return this;
}
但是舉個(gè)例子:
一個(gè)表有兩個(gè)列软啼,這時(shí)候如果調(diào)用
delete.addColumn(Bytes.toBytes("cf"),Bytes.toBytes("a"))
delete.addColumn(Bytes.toBytes("cf"),Bytes.toBytes("b"))
table.delete
執(zhí)行刪除后
你會(huì)發(fā)現(xiàn)還是沒(méi)有刪除掉 a這個(gè)列,但是仔細(xì)一看你發(fā)現(xiàn) 這個(gè)a的 timestamp和上面那個(gè)的已經(jīng)不一樣了延柠。;雠病!贞间!
一個(gè)是1515146085231 贿条,
一個(gè)是1515146081020
也就是最新的這個(gè)被刪除了,老的還在T鋈取U浴!峻仇。
所以必須通過(guò)addColumns這個(gè)才能實(shí)現(xiàn)刪除掉所有版本公黑。