Cassandra IS NOT NULL不支持的限制

时间:2018-09-07 12:36:22

标签: cassandra cassandra-3.0

运行时未填充实例化视图。我认为是因为SQL查询会产生错误。

select * from table where id is not null

InvalidRequest: Error from server: code=2200 [Invalid query] message="Unsupported restriction: id IS NOT NULL"

以前,此SQL查询是让我放置的位置不为null。我认为,当我更新系统时,这会使我失败。

1 个答案:

答案 0 :(得分:1)

因此cassandra的where子句支持=<>>=<=。不支持not null!= null。值得注意的是,IS NOT NULL存在的唯一时间是在物化视图中。这是因为主键不能为null,在这种情况下,您要强制强制将变量设置为INTO主键。另外,您确实需要在您的实例化视图中包括基表中的所有主键。

实例化视图

CREATE KEYSPACE test_keyspace
WITH REPLICATION = { 'class': 'SimpleStrategy', 'replication_factor': 1};

CREATE TABLE myTable(
  id int, 
  col1 varchar, 
  col2 varchar, 
PRIMARY KEY(id, col1)) ;

CREATE MATERIALIZED VIEW test_view AS 
  SELECT col2, col1, id FROM myTable 
  WHERE col2 IS NOT NULL AND col1 IS NOT NULL
PRIMARY KEY(col2, id, col1);

应该注意的是,物化视图会带来一些性能影响,您最好自己滚动一下。