2013-06-22 118 views
0

创建与inet,多个主键和集合失败的表。语法正确。CREATE TABLE失败(错误的CQL版本)

错误消息与主键(不匹配的parens)无关。删除,我知道inet不会工作,除了在某些情况下。

任何我做错了,或不理解使用CQL3(接口或语法)?

CREATE TABLE session (
    'user_id' bigint, 
    'admin_id' bigint, 
    'session_id' varchar, 
    'cache' text , 
    'created' timestamp , 
    'hits' list<timestamp>, 
    'ip' inet , 
    PRIMARY KEY ('session_id' , 'user_id') 
); 

下也未能

CREATE TABLE 'session' (
    'user_id' bigint, 
    'session_id' varchar, 
    PRIMARY KEY ('session_id' , 'user_id') 
); 

这工作

CREATE TABLE 'session' (
    'user_id' bigint, 
    'session_id' varchar PRIMARY KEY 
); 

线索

>help TYPES 

    CQL types recognized by this version of cqlsh: 

     ascii 
     bigint 
     blob 
     boolean 
     counter 
     decimal 
     double 
     float 
     int 
     text 
     timestamp 
     uuid 
     varchar 
     varint 

DSE 3.0.x的

[编辑] - 原来DSE安装了Cassandra 1.1.x。

回答

-1

TL; DR:集合(CQL3的一部分),但在DSE 3.0.x中不可

另外值得一提,但无关我的问题:

即使在Datastax社区版 - 一个需要激活CQL3。该文件说,它应该是默认在cqlsh激活

http://www.datastax.com/docs/1.2/cql_cli/using_cql

“激活CQL 3 您在下列方式之一激活CQL模式:

  • 使用DataStax Java驱动程序来启动定制列表通过
  • 本地/二进制协议启动cqlsh,一个基于Python的命令行 客户端
  • 使用set_sql_version Thrift方法
  • 指定在connect()调用到的Python驾驶员所需CQL模式: *连接= cql.connect( '本地主机:9160',cql_version = '3.0')*

有该文档不正确也应该是

con = cql.connect('localhost', cql_version='3.0.0') 

此外,Enterprise Opcenter尚不支持DSE中的CQL 3。

cqlsh --cqlversion=3 
+0

Datastax企业没有cql3,所以没有收集 –

+0

添加cqlsh -3相同cqlsh --cqlversion = 3。它确实加载了cql3,但仍不支持集合类型,inet或多个主键。我的问题不清楚。抱歉混淆。 –