Cassandra 墓碑对多个查询与单个查询进行计数

标签 cassandra cql cassandra-2.0 cql3

我有一个 cassandra 表定义如下

CREATE TABLE mytable
(
  colA text,
  colB text,
  timeCol timestamp,
  colC text,
  PRIMARY KEY ((colA, colB, timeCol), colC)
) WITH....

我想知道以下类型的查询之间的墓碑数量是否会有所不同:

1. delete from mytable where colA = '...' AND colB = '...' and timeCol = 111

以上查询影响多条记录,(colC的多个值)

2. delete from mytable where colA = '...' AND colB = '...' and timeCol = 111 AND colC = '...'

但是,需要对最后一列 colC 的每个值执行第二个查询,而第一个查询在一次执行中负责删除

Cassandra 在这两种情况下会创建相同数量的墓碑吗?

最佳答案

Cassandra 将为每个删除语句创建一个逻辑删除。但是,每个语句都会创建不同类型的墓碑。

1。从 mytable 中删除,其中 colA = '...' AND colB = '...' 且 timeCol = 111

将创建行级逻辑删除:

{ “ key ”:“00032e2e2e0000032e2e2e000008000000000000006f00”, “元数据”:{ “删除信息”:{ “markedForDeleteAt”:1427461335167000,“localDeletionTime”:1427461335 } }, “列”: [] }

行级逻辑删除将确保所有列都将被删除。

2。从 mytable 中删除,其中 colA = '...' AND colB = '...' and timeCol = 111 AND colC = '...'

创建一个列墓碑:

{ “ key ”:“00032e2e2e0000032e2e2e000008000000000000006f00”, “列”:[[“...”,“...:!”,1427461572135000,“t”,1427461572]] }

这只会删除已保存在此集群键下的值。

关于Cassandra 墓碑对多个查询与单个查询进行计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29299662/

相关文章:

cassandra - 如何使用CQL更新Cassandra整数列?

sorting - Cassandra如何按时间戳排序

java - 如何在 cassandra 中创建 @OneToMany 表

node.js - 将 HLS .m3u8 文件及其段文件 .ts 存储在 cassandra 数据库中是否很好?

c# - 连接到 AWS Managed Cassandra Service (MCS)

mysql - 数百万人的高效私有(private)消息传递解决方案?

google-bigquery - 选择大数据仓库

postgresql - 用于大数据导入和快速查找的 SQL 或 noSQL 数据库?

cassandra - 在 cassandra/DSE 中将列表列转换为集合列

Cassandra : java. lang.OutOfMemoryError:Java 堆空间