Фон -
Данные временных рядов поступают в Apache Kafka, который я храню в Cassandra. Поскольку необработанные данные требуют много места для хранения, я пытаюсь объединять данные и создавать ежечасные, ежедневные, ежемесячные сводки для отчетов. Я могу придумать два подхода:
- Потоковая обработка:
Используйте API-интерфейс Kafka Streams, чтобы свернуть данные и принять свернутые данные в Cassandra.
- Пакетная обработка:
Ввод необработанных данных в Cassandra, а также ведение индекса вновь загруженных ключей. Запустите планировщик для извлечения ключей из таблицы индексов, которые были недавно загружены с момента последнего запуска, извлечения временных рядов из Cassandra, свертывания и сохранения в ежечасных ежедневных таблицах.
Какой метод, по вашему мнению, лучше и почему?
Я попробовал метод пакетной обработки. Это позволяет мне наверстать упущенное, даже если в течение некоторого времени моя серия свертывания проваливалась / не выполнялась. НО я думаю, что тратить много ресурсов, чтобы обеспечить мне надежность.
Я ожидаю, что сворачивание будет выполнено, не съедая слишком много ресурсов.