Kafka Streams получает доступ к последнему значению перед окном - PullRequest
0 голосов
/ 08 мая 2020

У меня есть оконный поток, которому необходимо вычислить значение на основе всех значений, которые произошли в окне, ПЛЮС последнее значение, которое произошло перед окном.

inputStream.groupByKey
  .windowedBy(timeWindow)
  .aggregate(Aggregation()) {
    case (_, value, aggregation) =>
      // ...
  }
  .suppress(Suppressed.untilWindowCloses(BufferConfig.unbounded()))
  .toStream
  .map((windowed, aggregation) => {
    // here I need access to the last value which
    // occurred before the window
  }
  .to("output")

Как я могу получить доступ к предыдущему значение на этом этапе моего потока?

1 Ответ

0 голосов
/ 11 мая 2020

Вам нужно будет использовать Processor API и написать собственный Processor (или, если вы встроите его в DSL, вы можете использовать transform()) с прикрепленным оконным хранилищем. Обратите внимание, что оконные хранилища также являются просто хранилищами значений ключей, причем ключ состоит из ключа записи и метки времени начала окна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...