我从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驱动程序插入Column Family(我是从CLI模式创建的)?一旦我尝试插入我在CLI模式下创建的Column Family,我总是得到上述异常。
但是如果我尝试插入我在CQLsh mode
中创建的另一个表,我可以插入到该表中。
任何帮助将不胜感激。
答案 0 :(得分:3)
我的猜测:您的CLI列系列位于不同的键空间中。