在Cassandra 3.11.8中实现的视图显示的行数与基本表不同

问题描述

我在Cassandra 3.11.8中有下表

create table MyTable (
    id int,farm_id int,etc....,primary key (farm_id,id)
);

在插入带有数据的表之后(14,273,683行):

select count (*) 
from MyTable 
where farm_id = 1504;

计数

20964

注意:表(MyTable)中没有ID为null的行。

按如下所示创建实例化视图之后:

create materialized view MyView 
as 
  select id,farm_id 
  from MyTable 
  where farm_id = 1504 
  and id is not null 
  primary key (id,farm_id);

但是当检查视图中的行数时,我得到了以下结果:

select count(*) from MyView;

计数

10297

我尝试了很多次,结果是一样的。

发生了什么事?

解决方法

唯一的区别是在视图的where子句中添加了 id不为空。也许您可以检查原始表中给定farm_id的id = null的行数。