Cassandra CQL查询]message=“第1行:7输入“物化”([CREATE]物化)时没有可行的替代方案

Cassandra CQL查询]message=“第1行:7输入“物化”([CREATE]物化)时没有可行的替代方案,cassandra,cql,Cassandra,Cql,任何我从主题中得到错误的线索。下面我粘贴了所有步骤来重现错误 我发现有人面临同样的问题,我尝试了提出的解决方案,但我确实遇到了同样的问题 我试图通过创建表all_orders并遵循@halfer解决方案来跟踪,但我得到了完全相同的错误消息 整个日志: C:\Program Files\DataStax Community\apache-cassandra\bin>set JAVA_HOME=C:\Program Files\Java\jre1.8.0_171 C:\Program File

任何我从主题中得到错误的线索。下面我粘贴了所有步骤来重现错误

我发现有人面临同样的问题,我尝试了提出的解决方案,但我确实遇到了同样的问题

我试图通过创建表all_orders并遵循@halfer解决方案来跟踪,但我得到了完全相同的错误消息

整个日志:

C:\Program Files\DataStax Community\apache-cassandra\bin>set JAVA_HOME=C:\Program Files\Java\jre1.8.0_171
C:\Program Files\DataStax Community\apache-cassandra\bin>cqlsh
Connected to Test Cluster at 127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 2.2.3 | CQL spec 3.3.1 | Native protocol v4]
Use HELP for help.
WARNING: pyreadline dependency missing.  Install to enable tab completion.
cqlsh> CREATE KEYSPACE IF NOT EXISTS sample WITH replication = {'class':'SimpleStrategy', 'replication_factor':1};
cqlsh> use sample;
cqlsh:sample> CREATE TABLE IF NOT EXISTS  sample.hotels (
          ...     id UUID,
          ...     name varchar,
          ...     address varchar,
          ...     state varchar,
          ...     zip varchar,
          ...     primary key(id)
          ... );
cqlsh:sample>
cqlsh:sample> CREATE TABLE IF NOT EXISTS  sample.hotels_by_letter (
          ...     first_letter varchar,
          ...     hotel_name varchar,
          ...     hotel_id UUID,
          ...     address varchar,
          ...     state varchar,
          ...     zip varchar,
          ...     primary key((first_letter), hotel_name, hotel_id)
          ... );
cqlsh:sample> CREATE MATERIALIZED VIEW sample.hotels_by_state AS
          ... SELECT id, name, address, state, zip FROM hotels
          ... WHERE state IS NOT NULL AND id IS NOT NULL AND name IS NOT NULL
          ... PRIMARY KEY ((state), id)
          ... WITH CLUSTERING ORDER BY (name DESC)
          ... ;
SyntaxException: <ErrorMessage code=2000 [Syntax error in CQL query] message="line 1:7 no viable alternative at input 'MATERIALIZED' ([CREATE] MATERIALIZED...)">
***增加

我尝试了中提供的准确样品,得到了与下面相同的问题证据

cqlsh:sample> CREATE TABLE scores
          ... (
          ...   user TEXT,
          ...   game TEXT,
          ...   year INT,
          ...   month INT,
          ...   day INT,
          ...   score INT,
          ...   PRIMARY KEY (user, game, year, month, day)
          ... );
cqlsh:sample> CREATE MATERIALIZED VIEW alltimehigh AS
          ...        SELECT user FROM scores
          ...        WHERE game IS NOT NULL AND score IS NOT NULL AND user IS NOT NULL AND year IS NOT NULL AND month IS NOT NULL AND day IS NOT NULL
          ...        PRIMARY KEY (game, score, user, year, month, day)
          ...        WITH CLUSTERING ORDER BY (score desc);
SyntaxException: <ErrorMessage code=2000 [Syntax error in CQL query] message="line 1:7 no viable alternative at input 'MATERIALIZED' ([CREATE] MATERIALIZED...)">
cqlsh:sample>

我不认为这是Cassandra 2.X中的一个选项。我认为这是一个3.X规范,我们跳到了3.11,它工作得很好。

我不认为这是Cassandra 2.X中的一个选项。我认为这是一个3.X规范,我们跳到了3.11,它工作得很好。

你提到的文章说Cassandra 3.0中有新功能,所以你不能在2.3中使用它-如果您在某个地方使用DataStax Enterprise,它对应于DSE 5.0,但最好采用DSE 5.1,至少您提到的文章在Cassandra 3.0中是新的,因此您不能将其与2.2.3一起使用;如果您在某个地方使用DataStax Enterprise,它对应于DSE 5.0,但最好采用DSE 5.1,至少您已经回答了我的原话最后一个问题!如果你不介意的话,最后两条评论:我是否应该担心警告:物化视图是实验性的,不建议在生产中使用。?以及为什么我必须将Python降级到2.7以使用Cassandra 3.x中的新功能?在第一部分,我读到了同样的内容,但有些忽略。我们正在使用它,而且它可以工作很好。与cassandra中的任何其他表一样,存在获得不一致结果的风险。至于第二个表,cassandra需要使用Python 2.7运行。但是,由于我们在某些主机上运行RH 6.X,这不可能破坏内核操作。相反,您可以在会话/用户级别执行此操作,我们就是这样做的:scl enable python27 ksh。这很好。你已经回答了我最初的问题!如果你不介意,最后两条评论:我是否应该担心警告:物化视图是实验性的,不推荐用于生产。?为什么我必须将Python降级到2.7才能使用Cassandra 3.x的新功能?第一部分,我是同样的事情,有些被忽略了。我们正在使用它,它工作得很好。与cassandra中的任何其他表一样,有可能得到不一致的结果。至于第二个表,cassandra需要使用Python 2.7运行。但是,由于我们在某些主机上运行RH 6.X,这是不可能的,因为它会破坏内核操作。相反,您可以在会话/用户级别执行此操作,我们就是这么做的:scl enable python27 ksh