0

基本上,我想从 Couchbase 中读取一些带有元组属性的附加属性,例如,元组有输入字段“{a,b,c}”,我想发出一个元组“{a,b,c,d , e}" 其中 "d" 和 "e" 是从 Couchbase 中读取的,其中 "a" 作为键。

但是,Trident BaseFunction 是可序列化的,而 CouchbaseClient 不是,这会导致“NotSerializable”异常,有没有办法解决这个问题?我能想到两种可能的解决方案:

1)读取Trident外部的附加属性并将它们一起发送到Trident(我不想这样做因为我想把这种处理放在Storm中)

2)使用状态,只读(只实现multi-get,把multi-put留空,不知道这样行不行)

有什么简单的方法可以做到这一点?这在 Storm 本身中应该是可行的,并且在现实世界中很常见。它也适用于其他 NoSQL 数据库,例如 Cassandra。谢谢。

4

1 回答 1

0

您可以在prepare()Function 的方法中创建数据库连接,或者使用 aqueryState一次查找批处理的所有值。

于 2015-05-09T19:45:50.540 回答