Можно ли использовать Apache Kafka для агрегирования почасовых данных о потреблении для каждого клиента? - PullRequest
0 голосов
/ 24 ноября 2018

Например, потребление электроэнергии на одного клиента.Данные о потреблении не транслируются постоянно, а вставляются партиями за последние 12 часов для некоторого количества клиентов.После вставки нам нужно агрегировать почасовое потребление для каждого клиента и, если для какого-то клиента не было потребления за предыдущий час, найти потребление «по дате».

1 Ответ

0 голосов
/ 25 ноября 2018

Вы проверяли потоки Кафки (https://kafka.apache.org/documentation/streams/)?

Это позволяет читать темы в виде потоков данных и агрегировать по временным окнам:

StreamsBuilder builder = new StreamsBuilder();
builder.stream("topic-name")
  .groupByKey() // assuming the key is a customer-ID
  .windowedBy(TimeWindows.of(Duration.ofHours(1)))
  .aggregate(...); // insert business logic here
...