Чтение данных из Elasticsearch в агрегацию Flink? - PullRequest
1 голос
/ 28 мая 2019

Я пытаюсь обновить документы в Elasticsearch, используя сообщения Kafka (как StreamSource). Запись в Elasticsearch в пакетном режиме с использованием окон и соединителя Elasticsearch в качестве приемника - это нормально, однако нам необходимо обновить существующие данные в документах и ​​прочитать их массово (не для каждого кортежа, а, например, для всего окна после byKey() разделение, которое мы хотим объединить)

Сейчас мы используем Storm Trident, который выполняет массовое чтение до persistentAggregate и записывает обновленные агрегаты обратно, сводя к минимуму взаимодействие с бэкендом. Я просто не могу найти что-то похожее во Флинке - есть подсказки?

1 Ответ

0 голосов
/ 29 мая 2019

Как насчет запуска двух оконного вызова в потоке -

window1 - Для массового чтения из эластичного поиска

window2 - для объемной обработки в эластичном поиске.

streamData
  .window1(bulkRead and update/join)
  .processFunction(...)
  .window2(BulkPush)
  • Вы можете использовать любой подходящий метод для массового чтения, например Storm Trident.
  • использовать BulkProcessor в window2 ссылка
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...