14 / 15
Как выбрать между потоковой и пакетной обработкой данных?
Главный критерий — требуемая свежесть результата, а не мода. Нужен ответ «к утру» или «за час» — берите пакетную обработку: она проще, дешевле, легко пересчитывается на исторических данных и отлаживается обычным SQL. Нужна реакция за секунды (антифрод, лимиты, живые счётчики, лента) — потоковая. Разница по стоимости эксплуатации велика: у потока появляются окна, позднее прибытие, различие между временем события и временем обработки, состояние в памяти и вопрос «как пересчитать историю после исправления ошибки». Практичный компромисс — микробатч: те же пакетные вычисления, но каждые несколько минут по инкременту. Он покрывает большинство задач, которые кажутся потоковыми, и почти не добавляет эксплуатационной сложности.