Dataflow Model спустя 11 лет: авторы признают ошибки и объясняют, почему стриминг почти исчез из аналитики

The Dataflow Model Revisited

Авторы оригинальной статьи Dataflow Model, получившей премию VLDB Test of Time, оценивают свою работу спустя одиннадцать лет. Они признают, что ядро модели — приоритет event time, бесполезность ожидания полноты данных и сильная согласованность — выдержало проверку временем. Однако аналитический интерфейс был реализован неверно: оконные функции и триггеры оказались перегружены операционными деталями, а триггеры стали излишне сложным ответом на вопрос, который пользователи вообще не должны были задавать. Авторы приходят к выводу, что стриминг и таблицы — это два представления одного и того же объекта, и что механизмы, которые действительно сработали, пришли из мира баз данных: SQL, инкрементальное обновление материализованных представлений и явные контракты на свежесть данных. Они также исследуют, как принцип полноты разделился на водяные знаки и снапшот-согласованное обновление, и почему последний подход охватил больше пользователей, требуя от них меньше усилий.

Мы сосредоточились на механике стриминга вместо того, чтобы завершить то, что сообщество баз данных начало, но так и не закончило: сделать так, чтобы сложность аналитического стриминга почти полностью исчезла.
  1. janpeuker

    Я раньше был очень увлечён Dataflow/Apache Beam и буквально держал статью на столе, а также книгу. Согласен, что они правильно поняли разницу между временем события и временем обработки и принцип «никогда не полагаться на полноту данных», и мне нравится, что они подробнее объясняют, почему это было так трудно принять. У меня до сих пор голова болит от мыслей о триггерах в неограниченных потоках, и я рад, что мы в итоге пришли к таблично-ориентированной модели. Тем не менее, я до сих пор думаю, что было бы здорово позаимствовать некоторые идеи из Spanner, например, использовать базу данных как шину сообщений или хранить информацию о согласованности для каждой строки, по сути, CQRS внутри базы данных. Отличная статья.

  2. scott_s

    Я работал в области стриминга десять лет, занимаясь исследованиями и разработкой (см.: https://scholar.google.com/citations?user=Rdf5OIYAAAAJ&hl=en). После того как я ушёл от конкретно стриминга и переключился на общие проблемы больших хранилищ данных, я тоже пришёл к выводу: просто используйте SQL для всей аналитики, и подход с точки зрения баз данных — лучший способ думать о стриминге для аналитики.

    Я по-прежнему считаю, что модели программирования потоков чрезвычайно интересны и мощны. Но раньше я думал, что они со временем станут более мейнстримными как элегантный способ программирования для высокопроизводительных, малозадержечных массово-параллельных систем. Этого не произошло, и я больше не думаю, что это произойдёт. Люди обходятся существующими языками программирования и моделями, и, похоже, этого достаточно.

Ещё за этот день

2026-09-07