TGViewer
data будни data будни @data_days · 1.47K subscribers
Post #308 1.31K
🤓 data-архитектуры: Lamda vs Kappa

по рабочей необходимости въезжаю в тему стриминга данных, пытаюсь вникнуть в тамошние концепции, основные проблемы и методы их решения. Первая тема на пути — базовые отличия обработки данных батчами и на непрерывном потоке.

батчинг — это просто и надёжно: тащишь все данные за какой-то период (для надёжности — с нахлёстом) и пересчитываешь спокойно произвольный период в прошлое по мере доезда всех данных. Получается консистентно, но вчера.

стриминг — это быстро, но сложно: данные льются потоком, их надо успевать читать и записывать. Если воркер упал, что происходит с данными? если для трансформации нужен стейт или джойн, то сколько держать событие в памяти? поначалу решения были неконсистентными by design

но всем хотелось сейчас и сразу, поэтому придумали как совместить эти два подхода

🔵 Lambda-архитектура

идея простая: когда хочется стриминг, но он ещё ненадёжный, делаем два потока данных:
1. текущий инкремент бежит через стриминг
2. а потом по старинке сверху накатываем батч

получается и быстро (но не надёжно), и eventually надёжно — после того как накатился следующий батч.

проблема в том, что код трансформаций теперь лежит в двух разных местах — и стриминг, и батчинг считают по-своему; приходится поддерживать две кодовые базы и следить за консистентностью.

http://nathanmarz.com/blog/how-to-beat-the-cap-theorem.html

🟡 Kappa-архитектура

тогда другие умные люди подумали и предложили альтернативный подход: давайте держать единую версию трансформаций и пускай главным будет стриминг-реализация.

А если (когда!) надо будет пересчитать историю, то мы просто будем держать в памяти данные за нужный период и запускать новые версию джобов поверх них. Автор приводит пример что они в Линкедине таким образом держат в памяти 30 дней и для отдельных сущностей это может быть «терабайты».

http://radar.oreilly.com/2014/07/questioning-the-lambda-architecture.html

Звучит интересно, но пока не понял, как при каппа-архитектуре работают бекфилы? что делать, если надо пересчитать не 30 дней, а все данные за всю историю?
Nathanmarz How to beat the CAP theorem - thoughts from the red planet - thoughts from the red planet The CAP theorem states a database cannot guarantee consistency, availability, and partition-tolera...
  • 🔥 7
  • ❤ 4
  • 👍 2
More from @data_days
  1. Sep 28, 2026🤩 delirious dhh итак, прослушал ~5ч одного небезызвестного программиста с сильными взгляд…
  2. Apr 21, 2026мне кажется последние два интервью отлично смотрятся вместе и дополняют друг друга >_> и о…
  3. Apr 21, 2026🥷 DHH об agent-first подходе DHH — известный ии-скептик и сторонник написания кода вручну…
  4. Apr 19, 2026🦄 руководитель Claude Code об AI в разработке послушал интервью Бориса Чёрного в подкасте…
  5. Feb 5, 2026📁 про культуру ведения тикетов продолжаю рассказывать про внутрянку нашей команды, привле…
  6. Feb 4, 2026🦀 Clawdbot / Moltbot / OpenClaw там похоже намечается очередной качественный скачок аи-ст…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →