从 INSERT 语句中获取 Cassandra 中自动生成的 UUID

Ale*_*kov 1 cassandra

用例:

我有一个 RESTful API,可以将数据插入 Cassandra 并向用户返回新条目的 ID。我uuid()在 Cassandra 中使用ID 生成器来填充 ID。

问题:

INSERT 语句不返回生成的 ID,但我描述的 RESTful API 似乎是一个常见的用例。获取该确切条目的 UUID 的方法是什么?理论上我可以做一些类似的事情,SELECT id FROM table WHERE partition_key = ? ORDER BY id DESC LIMIT 1;但这似乎会引入竞争条件,以防两个写入大约在同一时间发生。

Ale*_*Ott 5

没办法,只能自己生成UUID,然后插入。只需为您的语言使用库。如果您使用 Cassandra 的 Java 驱动程序,您可以使用UUID类中的函数:random- 生成随机 UUID(类型 4),或timeBased用于当前时间的 UUID(类型 1)。