теория
Смотри, у пакетной обработки дурная слава: «ночной монстр, который тормозит и падает». Но в её основе лежит идея настолько простая и мощная, что её стоит прочувствовать отдельно.
читает и заново строит выход. Ключевое слово — неизменяемый. Вход за время работы не меняется: это снимок базы, вчерашние логи, выгрузка. И вот что это даёт:
Сравни с обновлением «на лету», которое предлагал Гена: там каждое изменение необратимо меняет состояние на месте. Ошибся — и уже не откатишь просто так; порча копится тихо.
Модель обработки за десятилетия прошла путь от простых утилит (отсортировал, сгруппировал, посчитал) до распределённых движков: разложил задачу на «преобразовать каждую запись» и «свести», а современные вроде Spark берут граф преобразований и сами раскладывают его по десяткам машин. Классический сценарий — : вытащить из источников, преобразовать, сложить в хранилище для аналитики.
Но суть под всеми слоями одна: не менять данные на месте, а порождать новые из неизменных. Тот же приём, что спас нас с идемпотентностью в платежах, — только на уровне целых наборов данных.