使用 Hector 查询 Cassandra 中的 CompositeType 列
2022-09-04 21:28:34
以下是我面临的方案示例。假设我有这个专栏系列:
create column family CompositeTypeCF
with comparator = 'CompositeType(IntegerType,UTF8Type)'
and key_validation_class = 'UTF8Type'
and default_validation_class = 'UTF8Type'
以下是一些使用Hector的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();
这有效,如果我去cassandra-cli并做一个列表,我得到这个:
$ list CompositeTypeCF;
Using default limit of 100
-------------------
RowKey: rowkey1
=> (column=1:test1, value=Some Data, timestamp=1326916937547000)
我现在的问题是:如何在赫克托耳中查询这些数据?基本上,我需要通过几种方式查询它:
- 给我整行,其中行键 = “rowkey1”
- 给我列数据,其中列名的第一部分= 某个整数值
- 给我列名的第一部分在特定范围内的所有列