0

inet、複数の主キー、およびコレクションで失敗するテーブルの作成。構文は正しかった。

エラー メッセージは、主キー (かっこの不一致) では意味がありません。それを削除すると、場合によっては 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 がインストールされていることがわかりました。

4

1 に答える 1

-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 Driver を使用して、
  • ネイティブ/バイナリ プロトコル。Python ベースのコマンドライン クライアントである cqlsh を起動します。
  • 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
于 2013-06-22T06:27:04.397 に答える