Вот пример сценария, с которым я сталкиваюсь. Скажем, у меня есть эта колонка семья:Запрос столбцов CompositeType в Cassandra с использованием Hector
create column family CompositeTypeCF
with comparator = 'CompositeType(IntegerType,UTF8Type)'
and key_validation_class = 'UTF8Type'
and default_validation_class = 'UTF8Type'
Вот некоторые примеры Java кода с использованием Гектора о том, как я бы идти о вставке некоторых данных в этой колонке семьи:
Cluster cluster = HFactory.getOrCreateCluster("Test Cluster", "192.168.1.6:9160");
Keyspace keyspaceOperator = HFactory.createKeyspace("CompositeTesting", cluster);
Composite colKey1 = new Composite();
colKey1.addComponent(1, IntegerSerializer.get());
colKey1.addComponent("test1", StringSerializer.get());
Mutator<String> mutator = HFactory.createMutator(keyspaceOperator, StringSerializer.get());
Mutator<String> addInsertion = mutator.addInsertion("rowkey1", "CompositeTypeCF",
HFactory.createColumn(colKey1, "Some Data", new CompositeSerializer(), StringSerializer.get()));
mutator.execute();
Это работает, и если я перейти к Кассандре-кли и сделать список, я получаю это:
$ list CompositeTypeCF;
Using default limit of 100
-------------------
RowKey: rowkey1
=> (column=1:test1, value=Some Data, timestamp=1326916937547000)
Мой вопрос теперь заключается в следующем: Как я могу идти о запросе эти данные в Гектора? В основном я должен был бы запросить его несколькими способами:
- Дайте мне всю строку, в которой строка Key = «rowkey1»
- Дайте мне данные колонки, где первая часть имени столбца = некоторое целое значение
- Дайте мне все столбцы, где первая часть имени столбца находится в пределах определенного диапазона
Вы можете уточнить, почему нам нужен GREATER_THAN_EQUAL в последнем компоненте? Я просмотрел статью, но все еще неясно. –
Я задал этот вопрос как отдельный вопрос, чтобы я мог вознаградить u очков! –
Я не знаю, я экспериментировал с некоторым примером кода, чтобы убедить себя, что он работает для того, что мне нужно. – libjack