3

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>".

4

0 回答 0