CompositeKey
我有一个名为<userId: int, attribute: string>
. 另一个名为SimpleValue
.
使用 Kafka Streams,我使用 Avro 序列化器/反序列化器将它们放入 KeyValueStore。
myKeyValueStore.put(myCompositeKey, mySimpleValue);
稍后,使用交互式查询我可以get
userId, attribute
一对一配对。但我也想得到所有attributes
属于一个单一的userId
. 当我使用时,
store.range(
new CompositeKey(userID, lowestPossibleAttribute),
new CompositeKey(userID, highestPossibleAttribute))
它不会返回所有属性。我猜这是因为底层的 RocksDB 像字节数组一样对它们进行排序,而 avro 序列化格式与此混淆。
有没有办法在 RocksDB 中使用 Avro 进行部分范围查询?否则,我将不得不将它们与从 Avro 模式生成的字符串一起以"<userId>+<attribute>"
.