运行它时,不会填充物化视图。我认为这是因为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的子句支持=
,<
,>
,>=
,<=
。没有支持not null
或!=
null。值得注意的是,IS NOT NULL
存在的唯一时间是在物化视图中。这是因为您的主键中不能有null,在这种情况下,您正在强制转换可能以其他方式取消设置为主键的变量。此外,您还需要在物化视图中包含基表中的所有主键。
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);
应该注意的是,物化视图会带来一些性能影响,您可能最好自己动手。