Cassandra IS NOT NULL不受支持的限制

问题描述 投票:0回答:1

运行它时,不会填充物化视图。我认为这是因为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。我认为当我对系统进行更新时,这会让我失望。

cassandra cassandra-3.0
1个回答
1
投票

所以cassandra的子句支持=<>>=<=。没有支持not null!= null。值得注意的是,IS NOT NULL存在的唯一时间是在物化视图中。这是因为您的主键中不能有null,在这种情况下,您正在强制转换可能以其他方式取消设置为主键的变量。此外,您还需要在物化视图中包含基表中的所有主键。

Example Materialized View

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);

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

© www.soinside.com 2019 - 2024. All rights reserved.