Как реализовать управление окнами в Kafka Streams с заданным временным окном в 5 секунд? - PullRequest
1 голос
/ 07 марта 2019

Я пытаюсь реализовать управление окнами с помощью Kafka Streams, в котором мы получаем несколько разных транзакций в формате JSON из темы.Для каждого идентификатора транзакции может быть несколько фиксаций (рассматривайте это с точки зрения фиксации SQL, следовательно, несколько транзакций для разных идентификаторов транзакций).Мне нужно установить окно для микропакетирования, в котором я буду использовать данные каждые 5 секунд, и данные будут храниться в каталоге на основе идентификаторов транзакций.

Я хотел бы знать подход здесь и какую библиотеку / функцию / класс следует использовать для того же?

1 Ответ

1 голос
/ 07 марта 2019

Вы можете использовать Windowing в потоках kafka различными способами.Один из примеров падающего окна (как в вашем случае)

builder.stream("events")
    .groupByKey()
    .windowedBy(TimeWindows.of(TimeUnit.SECONDS.toMillis(10)))
    .count()
    .suppress(untilWindowCloses(BufferConfig.unbounded()))
    .toStream()
    .process(FileSink::new);

Более подробную информацию вы можете найти здесь:
https://kafka.apache.org/20/documentation/streams/developer-guide/dsl-api.html#tumbling-time-windows

...