如何解决Cassandra Upsert 不适用于每一列
我正在尝试更新测试键空间和表中的记录。当我插入一条记录时,接受一个列值更改,而另一个不接受。 (注意:我也无法删除记录,尽管没有错误消息)
观察 middle_initial 是如何不更新的,而 title 却是...什么原因?
//之前
cqlsh:my_keyspace> SELECT * FROM user;
last_name | first_name | middle_initial | title
-----------+------------+----------------+-------
Rodriguez | Mary | Q | null
Rodriquez | Mary | Q | O
Nguyen | Bill | null | Mr.
Nguyen | Wanda | null | Mrs.
//命令
cqlsh:my_keyspace> UPDATE user SET middle_initial = 'F',title = 'U' WHERE last_name = 'Rodriquez' AND first_name = 'Mary';
//之后
cqlsh:my_keyspace> SELECT * FROM user;
last_name | first_name | middle_initial | title
-----------+------------+----------------+-------
Rodriguez | Mary | Q | null
Rodriquez | Mary | Q | U
Nguyen | Bill | null | Mr.
Nguyen | Wanda | null | Mrs.
//附加信息
CREATE KEYSPACE my_keyspace WITH replication = {'class': 'SimpleStrategy','replication_factor': '1'} AND durable_writes = true;
CREATE TABLE my_keyspace.user (
last_name text,first_name text,middle_initial text,title text,PRIMARY KEY (last_name,first_name)
) WITH CLUSTERING ORDER BY (first_name ASC)
AND bloom_filter_fp_chance = 0.01
AND caching = {'keys': 'ALL','rows_per_partition': 'NONE'}
AND comment = ''
AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy','max_threshold': '32','min_threshold': '4'}
AND compression = {'chunk_length_in_kb': '64','class': 'org.apache.cassandra.io.compress.LZ4Compressor'}
AND crc_check_chance = 1.0
AND dclocal_read_repair_chance = 0.1
AND default_time_to_live = 0
AND gc_grace_seconds = 864000
AND max_index_interval = 2048
AND memtable_flush_period_in_ms = 0
AND min_index_interval = 128
AND read_repair_chance = 0.0
AND speculative_retry = '99PERCENTILE';
解决方法
Manish 是对的。我的 middle_initial 时间戳设置为未来日期 1623699999999999
为了删除记录(这实际上是我的目标),我做到了:
cqlsh:my_keyspace> DELETE FROM user USING timestamp 1623699999999999 WHERE first_name = 'Mary' AND last_name = 'Rodriquez';
,
这通常发生在您的列写入时间在未来时。您可以检查您的专栏的写入时间
SELECT WRITETIME (middle_initial) FROM my_keyspace.user WHERE last_name = 'Rodriquez' AND first_name = 'Mary';
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。