Cassandra 2.0,CQL 3.x更新...使用TIMESTAMP

时间:2015-03-11 05:58:44

标签: cassandra cql

我打算使用Update ... USING TIMESTAMP ...语句来确保我不会使用陈旧数据覆盖新数据,同时必须避免至少执行LOCAL_QUORUM写入。

这是我的表结构。

Table=DocumentStore
DocumentID (primaryKey, bigint)
Document(text)
Version(int)

如果服务收到2个版本= 1且版本= 2的写入请求,则无论到达顺序如何,业务要求是我们最终在数据库中使用Version = 2.

我可以使用以下CQL语句吗?

Update DocumentStore using <versionValue>
SET  Document=<documentValue>,
Version=<versionValue>
where DocumentID=<documentIDValue>;

有人用这样的东西吗?如果是这样的行为如预期的那样?

1 个答案:

答案 0 :(得分:0)

是的,这是一种已知的技术。虽然它应该是

UPDATE "DocumentStore" USING TIMESTAMP <versionValue>
SET  "Document" = <documentValue>,
"Version" = <versionValue>
WHERE "DocumentID" = <documentIDValue>;

您错过了TIMESTAMP关键字,并且由于您使用了区分大小写的名称,因此应将它们用引号括起来。