使用Kafka Streams、RocksDB和Avro模式的部分范围查询
我有一个名为使用Kafka Streams、RocksDB和Avro模式的部分范围查询,avro,apache-kafka-streams,rocksdb,Avro,Apache Kafka Streams,Rocksdb,我有一个名为CompositeKey的avro模式,其字段为。另一个名为SimpleValue的avro模式 使用Kafka流,我使用Avro序列化器/反序列化器将它们放入KeyValueStore myKeyValueStore.put(myCompositeKey, mySimpleValue); 稍后,使用交互式查询,我可以一对一对地获取用户ID、属性。但是我还想获得属于单个用户id的所有属性。当我使用 store.range( new CompositeKey(userID,
CompositeKey
的avro模式,其字段为
。另一个名为SimpleValue
的avro模式
使用Kafka流,我使用Avro序列化器/反序列化器将它们放入KeyValueStore
myKeyValueStore.put(myCompositeKey, mySimpleValue);
稍后,使用交互式查询,我可以一对一对地获取用户ID、属性。但是我还想获得属于单个用户id
的所有属性。当我使用
store.range(
new CompositeKey(userID, lowestPossibleAttribute),
new CompositeKey(userID, highestPossibleAttribute))
它不会返回所有属性。我想这是因为底层RocksDB像字节数组一样对它们进行排序,而avro序列化格式会弄乱这一点
有没有办法在RocksDB中使用Avro进行部分范围查询?否则,我将不得不以“+”
的格式将它们与Avro模式生成的字符串一起存储。您将问题交叉发布到Confluent的邮件列表中(供其他读者参考:Confluent是Apache Kafka所有产品的主要供应商),并且您已经收到了第一次反馈: