基本上,我想从Couchbase读取一些来自元组属性的其他属性,例如,元组有输入字段" {a,b,c}",我想发出一个元组" {a,b,c,d,e}"在哪里" d"和" e"从Couchbase读取" a"作为关键。
然而,Trident BaseFunction是可序列化的,而CouchbaseClient不是,它导致" NotSerializable"例外,无论如何都要绕过这个?我能想到两种可能的解决方案:
1)阅读Trident以外的其他属性并将它们一起发送给Trident(我不想这样做因为我想把这种处理放在Storm中)
2)使用状态,这是只读的(只实现多次获取,留下多次放置空白,不确定这是否会起作用)
有没有简单的方法可以做到这一点?这在Storm本身应该是可行的,在现实世界中很常见。它也适用于像Cassandra这样的其他NoSQL数据库。感谢。
答案 0 :(得分:0)
您可以在函数的prepare()
方法中创建数据库连接,或使用queryState
一次查找批处理的所有值。