2013-06-22 144 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或多個主鍵。我的問題不清楚。抱歉混淆。 –