Является ли потоковая обработка лучше, чем пакетная обработка для временных рядов Roll-Up / Aggregation? - PullRequest
0 голосов
/ 25 марта 2019

Фон -

Данные временных рядов поступают в Apache Kafka, который я храню в Cassandra. Поскольку необработанные данные требуют много места для хранения, я пытаюсь объединять данные и создавать ежечасные, ежедневные, ежемесячные сводки для отчетов. Я могу придумать два подхода:

  1. Потоковая обработка: Используйте API-интерфейс Kafka Streams, чтобы свернуть данные и принять свернутые данные в Cassandra.
  2. Пакетная обработка: Ввод необработанных данных в Cassandra, а также ведение индекса вновь загруженных ключей. Запустите планировщик для извлечения ключей из таблицы индексов, которые были недавно загружены с момента последнего запуска, извлечения временных рядов из Cassandra, свертывания и сохранения в ежечасных ежедневных таблицах.

Какой метод, по вашему мнению, лучше и почему?

Я попробовал метод пакетной обработки. Это позволяет мне наверстать упущенное, даже если в течение некоторого времени моя серия свертывания проваливалась / не выполнялась. НО я думаю, что тратить много ресурсов, чтобы обеспечить мне надежность.

Я ожидаю, что сворачивание будет выполнено, не съедая слишком много ресурсов.

1 Ответ

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

Оба решения будут осуществимы. Поскольку у меня мало опыта с Cassandra, я упомяну только о возможностях решения этой проблемы с Kafka Streams:

Эта страница содержит несколько расширенных примеров:

...