3

当我进行表修复时,我看到很多警告,如下所示:

WARN [CompactionExecutor:112958] 2016-04-07 15:39:33,160 SliceQueryFilter.java:236 - 读取 10002 个实时单元和 2857 个墓碑单元

但是我没有删除任何东西,也没有设置 TTL,所以什么都没有被删除。为什么有这么多墓碑?数据大小约为200G,但我插入了一些带有NULL的单元格。

4

1 回答 1

4

我最近有同样的问题。原因是我插入了 NULL 值。我只是不知道我做到了。

如果您使用准备好的语句并且您没有设置某些参数,或者您将它们设置为 NULL,或者如果您插入一个不包含表的每一列的键的 JSON 对象,那么您最终会得到一个墓碑对于每一列。

在准备好的语句的情况下,您可以通过将未使用的参数显式设置为unset来避免墓碑。参见卡桑德拉-7304

不幸的是,还没有这样的 JSON 插入语法/API。查看CASSANDRA-11424以检查进度。

于 2016-04-08T07:12:25.123 回答