CREATE TABLE失败(错误的CQL版本)

时间:2013-06-22 06:27:04

标签: cassandra cql3 datastax-enterprise

使用inet,多个主键和集合创建失败的表。语法是正确的。

主键(不匹配的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 个答案:

答案 0 :(得分:-1)

TL; DR:DSE 3.0.x中尚未提供的集合(CQL3的一部分)

另外值得注意,但与我的问题无关:

即使在Datastax社区版中 - 也需要激活CQL3。文档说它应该在cqlsh

中默认激活

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

“激活CQL 3 您可以通过以下方式之一激活CQL模式:

  • 使用DataStax Java驱动程序通过
  • 激活CQL
  • 原生/二进制协议。启动cqlsh,一个基于Python的命令行 客户。
  • 使用set_sql_version Thrift方法。
  • 在对Python驱动程序的connect()调用中指定所需的CQL模式: * connection = cql.connect('localhost:9160',cql_version ='3.0')*

那里的文件也不正确,应该是

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

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

 cqlsh --cqlversion=3