将数据从java存储到cassandra
我正在存储文件数据。我通过java读取文件,当我在cassandra中存储文件数据时,它会给我这个错误 线程“main”com.datastax.driver.core.exceptions.SyntaxError:第1行:115在输入“PRIMARY”处没有可行的替代方案(…*来自sensorkeyspace.sensortable,其中[PRIMARY]…) 我的问题就在这里将数据从java存储到cassandra,java,python,cassandra,cql,Java,Python,Cassandra,Cql,我正在存储文件数据。我通过java读取文件,当我在cassandra中存储文件数据时,它会给我这个错误 线程“main”com.datastax.driver.core.exceptions.SyntaxError:第1行:115在输入“PRIMARY”处没有可行的替代方案(…*来自sensorkeyspace.sensortable,其中[PRIMARY]…) 我的问题就在这里 CREATE MATERIALIZED VIEW IF NOT EXISTS sensorkeyspace.tex
CREATE MATERIALIZED VIEW IF NOT EXISTS sensorkeyspace.texttable AS select * from sensorkeyspace.sensortable WHERE PRIMARY KEY (sensor_id) IS NOT NULL
尝试将WHERE子句更改为:
WHERE sensor_id IS NOT NULL PRIMARY KEY (sensor_id)
如果您收到一个错误,表明:
除了主键之外,没有为物化视图定义任何列
基于:
该错误消息意味着您只使用了基址中的分区键/主键作为视图的分区键(基址主键中没有额外的集群列)
当我有一个带有简单主键的表,并且我尝试使用相同的简单主键创建一个视图时,我会得到这个消息
例如,如果我有这个表:
CREATE TABLE stackoverflow.newtable (
name text PRIMARY KEY,
score float,
value float,
value2 blob);
这失败了:
cassdba@cqlsh:stackoverflow> CREATE MATERIALIZED VIEW IF NOT EXISTS
stackoverflow.newtable_view AS SELECT * FROM stackoverflow.newtable
WHERE name IS NOT NULL PRIMARY KEY (name);
InvalidRequest: Error from server: code=2200 [Invalid query]
message="No columns are defined for Materialized View other than primary key"
但这适用于同一张表:
cassdba@cqlsh:stackoverflow> CREATE MATERIALIZED VIEW IF NOT EXISTS
stackoverflow.newtable_view AS SELECT * FROM stackoverflow.newtable
WHERE score IS NOT NULL AND name IS NOT NULL PRIMARY KEY (score,name);
Warnings :
Materialized views are experimental and are not recommended for production use.
不是很相关,但请注意最后一部分;关于如何在Cassandra中使用MVs确实不是一个好主意。在这种情况下,它会给我这个错误“除了主键之外,没有为物化视图定义列”仍然会给我错误“除了主键之外,没有为物化视图定义列”@Realtiger您能编辑您的帖子来添加表定义吗?很难告诉你为什么没有它。