5
У меня есть семья колонки AllLog
создать чтоВставить столбец Cassandra семейство с композитным ключом
create column family LogData
with column_type = 'Standard'
and comparator = 'CompositeType(org.apache.cassandra.db.marshal.UTF8Type,org.apache.cassandra.db.marshal.UTF8Type)'
and default_validation_class = 'UTF8Type'
and key_validation_class = 'CompositeType(UTF8Type,UTF8Type)';
, но когда я использую мутатор для вставки:
String key0 = "key0";
String key1 = "key1";
Composite compositeKey = new Composite();
compositeKey.addComponent(key0, StringSerializer.get());
compositeKey.addComponent(key1, StringSerializer.get());
// add
mutator.addInsertion(compositeKey, columnFamilyName, HFactory.createColumn("name", "value"));
mutator.execute();
всегда через исключение:
me.prettyprint.hector.api.exceptions.HInvalidRequestException:
InvalidRequestException(why:Not enough bytes to read value of component 0)
Пожалуйста, помогите мне, где моя ошибка в этом коде?
да, я знаю это, но мне интересно, что: есть ли какое-либо решение, которое я могу создать таблицу с составным ключом, а другие колонки используют тип UTF8 ???? Я пытаюсь использовать его в cql3, но в hector я не могу вставить данные в такую таблицу :(:( –
Не знаете, что вы здесь задаете ... с указанной схемой, вы должны обновить код, поэтому createColumn использует Композитное имя, еще раз пересмотрите схему, чтобы сделать компаратор utf8. – libjack