防止墓碑创建

时间:2018-03-12 15:22:25

标签: cassandra datastax-enterprise cassandra-3.0

我需要对Cassandra表执行插入操作,而不为任何列创建逻辑删除。我正在使用类似于此的查询:

insert into my_table(col1,col2,col3) values(val1,val2,null)

其中col1,col2和col3是my_table中的所有属性。 除了在查询中仅传递非null属性并让cassandra将其余属性设置为null之外,是否有任何其他解决方案或解决方法来阻止创建col3的逻辑删除?

3 个答案:

答案 0 :(得分:5)

请勿在插页中加入col3,而且它不会设置任何内容。

insert into my_table(col1,col2) values(val1,val2)

如果对磁盘上的结构感到好奇,请执行nodetool flush并在创建的sstable上运行sstabledump以查看差异。

答案 1 :(得分:3)

如果插入空值,Cassandra将创建逻辑删除。如果您知道col3将为null,请不要在查询中使用它。

insert into my_table(col1,col2) values(val1,val2)

我会就这个问题提出两篇非常好的文章

答案 2 :(得分:0)

假设您正在使用准备好的语句,您可以使用" unset"功能是introduced in Cassandra 2.2.0,它允许您使用不带值的假准备语句变量,而不在服务器上创建逻辑删除。 Java driver 3.0.0和其他驱动程序支持它。