运行时未填充实例化视图。我认为是因为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。我认为,当我更新系统时,这会使我失败。
答案 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);
应该注意的是,物化视图会带来一些性能影响,您最好自己滚动一下。