2016-10-13 11 views
1

Интересно, возможно ли во Flink делиться состоянием между операторами.Share state среди операторов в Flink

Скажите, например, что у меня есть разделение по ключу на операторе, и мне нужно часть состояния раздела A внутри раздела C (по какой-либо причине) (рис. 1.a), или мне нужно состояние оператора C в операторе ниже по течению F (рис. 1.b).

enter image description here

Я знаю, что это возможно broadcast записей для всех разделов. Таким образом, если вы включаете внутреннее состояние оператора внутри записей, вы можете поделиться своим внутренним состоянием с операторами ниже по течению.
Однако это может быть дорогостоящая операция, а не просто дать op1 конкретно запросить состояние op2.

Недавние события вокруг запрашиваемое состояние переход к этой концепции или они предназначены только для того, чтобы позволить внешнему пользователю запрашивать внутреннее состояние топологии?

Заранее спасибо за ваши идеи

ответ

0

В общем, дизайн FLiNK не позволяет читать или записывать состояние других подзадач того же или разных операторов. Как вы сказали, вы можете использовать broadcast, чтобы сделать его доступным в глобальном масштабе. Запрошенные функции состояния предназначены для внешних пользовательских запросов.

Однако я слышал о пользователях, которые использовали эти функции в операторе для получения данных от других операторов той же работы. Я не знаю, как хорошо это работает (стабильность и производительность). Я бы указал вам на список рассылки пользователей для более подробного технического обсуждения, если вы хотите попробовать это.

+0

Спасибо fabian – affo