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
挿入できます。
どんな助けでも大歓迎です。