Debido a que c* es la última escritura gana, simplemente puede mantener las últimas versiones de cada fila.
Podría, como sugiere MSD, usar writetime
para tirar del tiempo de la escritura. Pero tenga cuidado porque esto es específico de la columna y no puede usar el tiempo de escritura en las columnas de su clave principal. Por ejemplo, en una tabla de la siguiente manera:
cqlsh> create TABLE test.test ( a int, b int, c int, d int, primary key (a))
... ;
cqlsh> insert INTO test.test (a, b, c, d) VALUES ( 1,2,3,4)
... ;
cqlsh> select * from test.test
... ;
a | b | c | d
---+------+---+------
1 | 2 | 3 | 4
(2 rows)
cqlsh> insert into test.test (a,c) values (1, 6);
cqlsh> select * from test.test ;
a | b | c | d
---+------+---+------
1 | 2 | 6 | 4
(2 rows)
cqlsh> select writetime(a), writetime(b), writetime(c), writetime(d) from test.test
... ;
InvalidRequest: code=2200 [Invalid query] message="Cannot use selection function writeTime on PRIMARY KEY part a"
cqlsh> select writetime(b), writetime(c), writetime(d) from test.test ;
writetime(b) | writetime(c) | writetime(d)
------------------+------------------+------------------
1434424690700887 | 1434424690700887 | 1434424702420929
De lo contrario, puede agregar una columna cql con la marca de tiempo:
create TABLE test.test ( a int, b int, c int, d int, touched_at timeuuid, primary key (a)) ;
Algunas evaluaciones comparativas rápidas lo ayudarían a determinar cuál tiene más rendimiento.