13
下面是我正面临的场景示例。说我有此列族:使用Hector查询Cassandra中的CompositeType列
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();
这工作,如果我去卡桑德拉-CLI和做一个名单,我得到这样的:
$ list CompositeTypeCF;
Using default limit of 100
-------------------
RowKey: rowkey1
=> (column=1:test1, value=Some Data, timestamp=1326916937547000)
我现在的问题是:我该如何去有关赫克托查询这些数据?基本上,我需要查询它在几个方面:
- 给我整行,其中行键=“rowkey1”
- 给我列数据,其中列名的第一部分=某个整数值
- 给我所有列,其中列名的第一部分是在一定范围
您能详细说明为什么我们需要在最后一个组件中使用GREATER_THAN_EQUAL吗?我阅读了文章,但事情仍不清楚。 – 2012-07-17 06:19:31
我已经问过这个问题了,所以我可以奖励你的积分! – 2012-07-17 06:32:16
我不知道,我尝试了一些示例代码来说服自己,它适用于我所需要的。 – libjack 2012-07-18 18:40:41