1

CLI からこのような列ファミリーを作成しました。

create column family profile
    with key_validation_class = 'UTF8Type'
    and comparator = 'UTF8Type'
    and default_validation_class = 'UTF8Type'
    and column_metadata = [
      {column_name : account, validation_class : 'UTF8Type'}
      {column_name : advertising, validation_class : 'UTF8Type'}
      {column_name : behavior, validation_class : 'UTF8Type'}
      {column_name : info, validation_class : 'UTF8Type'}
      ];

今、Datastax Java ドライバーを使用して、この列ファミリーに挿入しようとしていました-

public void upsertAttributes(final String userId, final Map<String, String> attributes) {

String batchInsert = "INSERT INTO PROFILE(id, account, advertising, behavior, info) VALUES ( '12345', 'hello11', 'bye2234', 'bye1', 'bye2') "; 

        CassandraDatastaxConnection.getInstance().getSession().execute(batchInsert);

    }

私はいつもこの例外を受けています -

com.datastax.driver.core.exceptions.InvalidQueryException: 構成されていない columnfamily プロファイル

そして、この方法で、Datastax Java ドライバーを使用して Cassandra への接続/セッションの初期化を作成しようとしています。

private CassandraDatastaxConnection() {

    try{
    cluster = Cluster.builder().addContactPoint("localhost").build();
    session = cluster.connect("my_keyspace");           
    } catch (NoHostAvailableException e) {

            throw new RuntimeException(e);
    }
}

Cassandra 1.2.3 を実行しています。そして、上記のコードを使用して Cassandra に接続できます。私が直面している唯一の問題は、挿入中です。

私が知りたかったのは、Datastax Java ドライバーを使用して (CLI モードで作成した) 列ファミリーに挿入できるかどうかです。CLI モードで作成した列ファミリーに挿入しようとすると、常に上記の例外が発生します。

しかし、 で作成した別のテーブルに挿入しようとすると、そのテーブルにCQLsh mode挿入できます。

どんな助けでも大歓迎です。

4

1 に答える 1

4

私の推測: CLI カラムファミリーは別のキースペースにあります。

于 2013-04-22T18:26:36.637 に答える