2015-05-05 2 views
0

В принципе, я хочу прочитать некоторые дополнительные атрибуты из Couchbase с атрибутами из кортежа, например, кортеж имеет поля ввода «{a, b, c}», я хочу для испускания кортежа «{a, b, c, d, e}», где «d» и «e» считываются из Couchbase с «a» в качестве ключа.Проблема с сериализацией клиента: прочитайте из Couchbase в функции Trident

Однако Trident BaseFunction является сериализуемым, тогда как CouchbaseClient не является, что приводит к исключению NotSerializable, есть ли способ обойти это? Есть два возможных решения, о которых я могу думать:

1) прочитайте дополнительные атрибуты за пределами Trident и отправьте их вместе с Trident (я не хочу этого делать, я хочу, чтобы этот вид обработки был в Storm)

2) Использование государством, которое предназначено только для чтения (только орудие мульти-получить, оставив несколько ставить пустой, не уверен, будет ли это сделать трюк)

есть ли простой способ сделать это? Это должно быть сносно в самом Шторме и довольно распространено в реальном мире. Это также относится и к другим базам данных NoSQL, таким как Cassandra. Благодарю.

ответ

0

Вы можете создать соединение с базой данных в методе prepare() вашей функции или использовать queryState для поиска всех значений сразу для партии.

Смежные вопросы