在cassandra中使用带有时间戳的插入

Han*_*bt9 3 cassandra

我试图使用时间戳插入(也更新和删除)Casandra中的数据,但表中没有任何帮助PLZ发生变化?

BEGIN BATCH
  INSERT INTO transaction_test.users(email,age,firstname,lastname) VALUES ('1',null,null,null) USING TIMESTAMP 0;
  INSERT INTO transaction_test.users(email,age,firstname,lastname) VALUES ('2',null,null,null) USING TIMESTAMP 1;
  INSERT INTO transaction_test.users(email,age,firstname,lastname) VALUES ('3',null,null,null) USING TIMESTAMP 2;         
APPLY BATCH;
Run Code Online (Sandbox Code Playgroud)

Car*_*ini 7

我认为你陷入了卡桑德拉的"时间戳控制".仅当新操作的时间戳比前一个操作的时间戳" " 时,才执行C*中的操作.

让我们看一个例子,给出以下插入

INSERT INTO test (key, value ) VALUES ( 'mykey', 'somevalue') USING TIMESTAMP 1000;
Run Code Online (Sandbox Code Playgroud)

你期望这作为输出:

select key,value,writetime(value) from test where key='mykey';


 key   | value     | writetime(value)
-------+-----------+------------------
 mykey | somevalue |             1000
Run Code Online (Sandbox Code Playgroud)

它应该是这样的,除非你之前有人没有用更高的TS对这些信息进行操作 - 例如,如果你现在写的话

INSERT INTO test (key, value ) VALUES ( 'mykey', '999value') USING TIMESTAMP 999;
Run Code Online (Sandbox Code Playgroud)

这是输出

select key,value,writetime(value) from test where key='mykey';


 key   | value     | writetime(value)
-------+-----------+------------------
 mykey | somevalue |             1000
Run Code Online (Sandbox Code Playgroud)

正如你所看到的那样,ts也没有被更新.

HTH,卡罗