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:未配置的列族配置文件

通过这种方式,我正在尝试使用 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

My guess: your CLI columnfamilies are in a different keyspace.

于 2013-04-22T18:26:36.637 回答