Cassandra 2.1使用元组创建表时出现CQL错误:在输入和#x27&燃气轮机';

Cassandra 2.1使用元组创建表时出现CQL错误:在输入和#x27&燃气轮机';,cassandra,cql,cassandra-2.0,Cassandra,Cql,Cassandra 2.0,这可能是非常愚蠢的事情。。。但我无法创建具有新元组类型的表: cqlsh:ta> CREATE TABLE tuple_test (k int PRIMARY KEY, v frozen <tuple<int, int>> ); Bad Request: line 1:68 no viable alternative at input '>' cqlsh:ta> cqlsh:ta>创建表元组测试(k int主键,v冻结); 错误请求:第1:68行输入

这可能是非常愚蠢的事情。。。但我无法创建具有新元组类型的表:

cqlsh:ta> CREATE TABLE tuple_test (k int PRIMARY KEY, v frozen <tuple<int, int>> );
Bad Request: line 1:68 no viable alternative at input '>'
cqlsh:ta> 
cqlsh:ta>创建表元组测试(k int主键,v冻结);
错误请求:第1:68行输入“>”处没有可行的替代方案
cqlsh:ta>
我几乎已经从DataStax文档复制了表创建语句。。。我错过了什么

谢谢

更新-基于BryceAtNetwork23和RossS的帮助:

是的,你是对的-我有一个Datasax Enterprise,它有Cassandra 2.0

我已经用Cassandra 2.1安装了DataStax社区,一切都很好

注意:跳过'freezed'关键字不适用于DSC的Cassandra发行版,但将其冻结在中确实有效。谢谢你的帮助

[cqlsh 4.1.1 | Cassandra 2.1.2 | DSE  | CQL spec 3.1.1 | Thrift protocol 19.39.0]
cqlsh> CREATE TABLE ta.tuple_test (k int, v tuple<int, int>,PRIMARY KEY(k) );
Bad Request: Non-frozen tuples are not supported, please use frozen<>
cqlsh> CREATE TABLE ta.tuple_test (k int, v frozen <tuple<int, int>>,PRIMARY KEY(k) );
cqlsh> 
[cqlsh 4.1.1 | Cassandra 2.1.2 | DSE | CQL规范3.1.1 |节俭协议19.39.0]
cqlsh>创建表ta.tuple_test(k int,v tuple,主键(k));
错误请求:不支持非冻结元组,请使用冻结元组
cqlsh>创建表ta.tuple_测试(k int,v冻结,主键(k));
cqlsh>
这很奇怪。我也犯了同样的错误。我做了一两个小小的修改,就成功地让它工作了。然后我做了一个
desc
,以确保它创建了ok:

aploetz@cqlsh> CREATE TABLE stackoverflow.tuple_test (k int, v tuple<int, int>,PRIMARY KEY(k) );

aploetz@cqlsh> use stackoverflow ;
aploetz@cqlsh:stackoverflow> desc table tuple_test ;

CREATE TABLE stackoverflow.tuple_test (
    k int PRIMARY KEY,
    v frozen<tuple<int, int>>
) WITH bloom_filter_fp_chance = 0.01
    AND caching = '{"keys":"ALL", "rows_per_partition":"NONE"}'
    AND comment = ''
    AND compaction = {'min_threshold': '4', 'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32'}
    AND compression = {'sstable_compression': 'org.apache.cassandra.io.compress.LZ4Compressor'}
    AND dclocal_read_repair_chance = 0.1
    AND default_time_to_live = 0
    AND gc_grace_seconds = 864000
    AND max_index_interval = 2048
    AND memtable_flush_period_in_ms = 0
    AND min_index_interval = 128
    AND read_repair_chance = 0.0
    AND speculative_retry = '99.0PERCENTILE'
卡桑德拉2.0.11.83

嗯…基于这一点,我不知道你真的在卡桑德拉2.1上。我很确定Tuple类型是2.1及更高版本的特性。再次检查你的卡桑德拉版本。另外,如果你在DSE上(这意味着你有支持),我会向他们开一张罚单,描述你看到的错误

编辑-仅供参考,我已将我的2.1.0-rc5版本升级为2.1.2,并运行您的原始
创建
,其工作原理如下:

Connected to PermanentWaves at 127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 2.1.2 | CQL spec 3.2.0 | Native protocol v3]
Use HELP for help.
aploetz@cqlsh> use stackoverflow ;
aploetz@cqlsh:stackoverflow> CREATE TABLE tuple_test (k int PRIMARY KEY, v frozen <tuple<int, int>> );
aploetz@cqlsh:stackoverflow> desc table tuple_test ;

CREATE TABLE stackoverflow.tuple_test (
    k int PRIMARY KEY,
    v frozen<tuple<int, int>>
)...
连接到127.0.0.1:9042的PermanentWaves。
[cqlsh 5.0.1 | Cassandra 2.1.2 | CQL规范3.2.0 |本机协议v3]
用帮助换取帮助。
aploetz@cqlsh>使用堆栈溢出;
aploetz@cqlsh:stackoverflow>CREATE TABLE tuple_test(k int主键,v冻结);
aploetz@cqlsh:stackoverflow>desc table tuple_test;
创建表stackoverflow.tuple\u测试(
k int主键,
v冻结
)...

谢谢,@BryceAtNetwork23!!然而,在我的cqlsh中它仍然不适用于我。。。我接受了您的精确创建stmt,但仍然得到相同的错误。现在我开始怀疑,最新的DataStax Enterprise 4.6附带的“cqlsh”版本可能不是正确的版本,并且不理解Cassandra2.1。。。这是我的“cqlsh”规范:[cqlsh 4.1.1 | Cassandra 2.0.11.83 | DSE 4.6.0 | CQL规范3.1.1 |节俭协议19.39.0]你能告诉我你的是什么吗?非常感谢。DSE 4.6没有附带Cassandra 2.1,只有2.0.11.83,所以这可能就是这个例子不起作用的原因。谢谢@RussS,我想是的。Marina,谢谢你提供关于
冻结
关键字的信息。这对我来说可能是可行的,因为我的沙盒(这里正在工作)仍然在2.1版本候选上运行。我将升级并再次尝试。在我的home 2.1.2集群上尝试了您原来的
CREATE
,效果很好(请参见编辑)。很好:)我还必须将我的DataStax驱动程序升级到2.1.4(我以前有2.1.2),以避免guava lib版本冲突-但这是另一个问题。现在一切都好了。谢谢
Connected to PermanentWaves at 127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 2.1.2 | CQL spec 3.2.0 | Native protocol v3]
Use HELP for help.
aploetz@cqlsh> use stackoverflow ;
aploetz@cqlsh:stackoverflow> CREATE TABLE tuple_test (k int PRIMARY KEY, v frozen <tuple<int, int>> );
aploetz@cqlsh:stackoverflow> desc table tuple_test ;

CREATE TABLE stackoverflow.tuple_test (
    k int PRIMARY KEY,
    v frozen<tuple<int, int>>
)...