gpt4 book ai didi

cassandra - 如何为列族定义复合键,然后使用 Hector 引用它?

转载 作者:行者123 更新时间:2023-12-02 23:55:19 28 4
gpt4 key购买 nike

在哪里可以找到这方面的示例?

我的大部分代码都使用 ColumnFamilyTemplate 对数据记录进行 CRUD,请参见下文。定义复合键后,我仍然可以使用 ColumnFamilyTemplate 访问具有复合键的数据吗?

private static final ColumnFamilyTemplate<UUID, String> template = 
new ThriftColumnFamilyTemplate<UUID, String>(
Bootstrap.keyspace,
"User",
UUIDSerializer.get(),
StringSerializer.get(),
HFactory.createMutator(Bootstrap.keyspace, UUIDSerializer.get()));

最佳答案

使用哪个 API 对记录进行 CRUD 并不重要; CompositeType(或 DynamicCompositeType)只是另一种类型(例如,类似于 UUID),它具有相应的序列化器(CompositeSerializer)。因此,您的示例可能会变为:

private static final ColumnFamilyTemplate<Composite, String> template = 
new ThriftColumnFamilyTemplate<Composite, String>(
Bootstrap.keyspace,
"User",
CompositeSerializer.get(),
StringSerializer.get(),
HFactory.createMutator(Bootstrap.keyspace, CompositeSerializer.get()));

唯一需要做的就是在使用模板之前创建 Composite(假设 UUID 和 Long 的组合):

Composite key = new Composite();
key.addComponent(someUUID, UUIDSerializer.get());
key.addComponent(someLong, LongSerializer,get());
ColumnFamilyResult<Composite,String> result = template.queryColumns(key);

获取结果时,获取key的组成部分的一种方法:

myUUID = result.getKey().get(0, UUIDSerializer.get());
myLong = result.getKey().get(1, LongSerializer,get());

关于cassandra - 如何为列族定义复合键,然后使用 Hector 引用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7329211/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com