Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
“Блиц, блиц, скорость без границ!” - помните этого очень смешного и очень н-е-е-е-с-п-е-ш-н-о-г-о ленивца по имени Блиц из мультфильма Зверополис? Он всплывает в памяти всякий раз, когда мы сталкиваемся с чьей-то медленной работой или реакцией. На самом деле Блицу требовалось всего 10 секунд на каждую фразу или операцию. Согласитесь, 10 секунд - не так уж и много. В реальной жизни нам часто приходится ждать куда дольше и ожидание выглядит совсем не так смешно. Ждать - неприятно и очень дорого.
В этой статье хочется поговорить о том, почему нам вообще приходится ждать, как перестать ждать и какой интересный мир открывается, если жить со скоростью реальности. Точнее, поговорим о технологиях, которые и определяют время ожидания: скорость обработки данных, выдачи предсказаний и принятия решений.
Что подразумевал Тайлер Акидо?
В 2015 году Тайлер Акидо, ведущий разработчик систем обработки данных Google, опубликовал две статьи-манифеста: "Streaming 101: The world beyond batch" и "Streaming 102: The world beyond batch", которые в 2018 году легли в основу книги об эволюции систем и подходов к обработке больших данных: “Streaming Systems: The What, Where, When, and How of Large-Scale Data Processing”.
Из названий статей как бы следовало, что в 2015 году мир вплотную подошел или вот-вот подойдет к некоторому рубежу, за которым на смену batch (пакетная обработка данных) приходит streaming (потоковая обработка данных).
В статьях было дано следующее определение: streaming - это тип систем обработки данных, спроектированных с мыслью о бесконечных данных, которые поступают непрерывно, поэтому их необходимо успевать обрабатывать также непрерывно, даже если они очень интенсивные. В противном случае, данные начнут накапливаться и в какой-то момент достигнут критической массы, когда обработка перестанет успевать за поступлением все новых и новых данных. В batch такой проблемы не возникает, так как данные всегда конечные. Даже если их много (big data) обработку можно выполнить за произвольное время, можно обработку остановить, начать заново, повторить, разбить данные на меньшие порции и т.д. В streaming же обработка должна проводится гарантированно со скоростью поступления данных и один раз.
Обе статьи были посвящены техническим аспектам сравнения batch и streaming, но были также даны предпосылки с точки зрения бизнеса для перехода к streaming:
Современный бизнес нуждается во все более актуальных данных и переход к потоковой обработке является хорошим решением, чтобы снизить отставание.
Интенсивные и непрерывные потоки данных, которые занимают все более важное место в бизнесе, проще обрабатывать системами, которые специально создавались для работы с бесконечными потоками.
Обработка данных по мере их поступления позволяет лучше распределять нагрузку, достигая более предсказуемого потребления ресурсов.
Последний аргумент важен, так как балансировка вычислительного ресурса является сложной задачей. С регулярными расчетами batch прекрасно справляется. Но как только задач становится много, они разные по требуемому ресурсу и конкурируют друг с другом за приоритет, балансировка усложняется. Если какой-то процесс был начат, но прерван, то обработку придется начинать сначала. То есть ресурс будет потрачен несколько раз на одну задачу. В streaming подходы к обработке выстраиваются изначально вокруг идеи, что данные обрабатываются с заданными гарантиями один раз. Это позволяет обходиться меньшим ресурсом, гибче его балансировать между различными задачами и утилизировать ресурс полностью. Но хотя данный аргумент и важен, он не является определяющим.
А вот первый аргумент, действительно, существенен с точки зрения бизнеса. О нем и поговорим подробнее.
Сокращение отставания
В целом по прошествии 6 лет можно сказать, что batch обработка никуда не исчезла и мир не поделился на две эпохи до и после batch. Может быть Тайлер Акидо что-то другое подразумевал во фразе “beyond batch”?
Вернемся еще раз к тезису Тайлера Акидо, что “Современный бизнес нуждается во все более актуальных данных и переход к потоковой обработке является хорошим решением, чтобы снизить отставание.”
Почему бизнес нуждается во все более “актуальных данных” и стремится “сокращать” отставание? Что такое “актуальные данные”? О каком “сокращении” отставания идет речь? В чем кроются “нужда” и “стремление”? Во что выльется “переход”?
Тайлер Акидо фокусировался на технической стороне перехода от batch к streaming, не раскрывая тезис о потребностях бизнеса. Мы же постараемся тезис раскрыть.
Актуальные данные могут быть разными: события могли произойти секунду, минуту, час, день, неделю, месяц или год тому назад.
События, которые произошли только что в пределах последних миллисекунд, секунд или минут принято относить к реальному времени (real-time) или к около реальному времени (near real-time). События, которые произошли час, день и более тому назад относят к историческим данным (historical data).
Когда Тайлер Акидо говорит о “сокращении отставания”, то подразумевает переход к миллисекундному, секундному и минутному отставанию от момента “прямо сейчас”, вместо отставания в часы, дни и недели.
Возможно, в названия статей “Streaming: The world beyond batch” Тайлер Акидо вложил иной смысл: бизнес нуждается в переходе на новый технологический процесс, который лежит за пределами возможностей batch, а значит открывает новые возможности?
Собственно, batch, как технологический процесс, и применяется там, где допустимо отставание от реальности в час и более, то есть хорошо подходит для работы с историческими данными. Streaming же, как технологический процесс, способен обеспечить работу с данными в реальном времени со скоростью их поступления с отставанием в миллисекунды, секунды и минуты.
Streaming: новый технологический процесс
Почему у бизнеса возникает или может возникнуть “нужда” сокращать отставание с часов и дней до миллисекунд, секунд и минут, решаясь на переход beyond batch?
Потому, что мы живем в реальном мире в реальном времени, где события и изменения происходят здесь и сейчас. Мы не живем в мире, который существовал час, день, неделю, месяц или год назад.
Да, есть много задач, где отставание в час, день или неделю вполне допустимо. Например, если ритейлер или банк планируют открыть новый магазин или офис и анализируют данные по трафику, то отставание в день, неделю, месяц кажется приемлемым. Конечно, только если завтра неожиданно не случится локдаун или улица не подвергнется перепланировке или не произойдет что-то еще, что постоянно происходит в нашей жизни.
Но есть не меньше, а возможно и больше, задач, когда прямо сейчас идет диалог с клиентом или прямо сейчас продукция сходит с конвейера или курьер прямо сейчас везет заказ получателю или прямо сейчас в работе оборудования обнаружилась аномалия или прямо сейчас зреет сочное яблоко, а к нему приближается червяк, или прямо сейчас пациент лежит в реанимационной палате, подключенный к куче датчиков и систем жизнеобеспечения. В этих случаях отставание в обработке данных на час, день или неделю будет нежелательным или неприемлемым.
“Нужда” возникает ровно в тот момент, когда бизнес осознает, что отставание от реальности в час, день, неделю - это слишком долго и дорого, надо делать предсказания или принимать решения по мере того, как события происходят.
Раз уж мы сказали ранее, что streaming - это переход на новый технологический процесс, то можно вспомнить, как шли изменения технологических процессов в электронике (с 10 мкм в 1971 до 2 нм в 2023 году). Каждый шаг в совершенствовании технологий вел к росту производительности, сокращению энергопотребления, повышению рабочих частот, снижению стоимости, сокращению размеров микросхем. И в одновременно менял рынок. Прямо сейчас можем наблюдать, как автопроизводители, зависящие от микросхем прежних поколений, столкнулись с их дефицитом из-за переориентации производств на новые технологические процессы и сообщают о приостановках производств.
Аналогично “сокращение отставания” и переход к streaming, как к новому технологическому процессу, ведет к повышению качества клиентского сервиса, лучшему пониманию клиентов, сокращению времени и затрат на обслуживание, повышению качества продукции, предотвращению выхода устройств из строя, сокращению простоя. Бизнесы, которые это понимают, получают преимущество от перехода к новому технологическому процессу.
“Нужда” у бизнеса возникает либо в силу следования тенденциям, либо в силу изменения рынка, регуляции, предпочтений клиентов, развития технологий, наступления кризисов. Во втором случае - приходится догонять.
Ценность данных не одинакова во времени
Что же дают “сокращение отставания” и переход на новый технологический процесс?
Например, “сокращение отставания” в предсказании качества готовой продукции с 1 дня до 10 секунд - это выявление проблем в производственном процессе после 1-ой произведенной некачественной единицы продукции, а не после 1000-ой при объеме производства 1000 изделий в сутки - это означает предотвращение потерь, предотвращение затоваривания склада некондиционной продукцией, сокращение простоя, исполнение сроков перед заказчиками.
“Сокращение отставания” в обслуживании клиентов оператором колл-центра с 5 минут до 3 секунд - это экономия 800 часов (или 100 человеко-дней) на каждые 10 тыс. звонков - это значительная экономия и лучший сервис для клиента.
“Сокращение отставания” в предсказании выхода устройства из строя с 1 дня до 5 секунд - это предотвращение простоя на ремонт, заблаговременная подготовка к ремонту, сохранение ресурса устройства, сокращение затрат на ремонт.
“Сокращение отставания” в предсказании оптимальных условий кредита или предлагаемой стоимости авиабилета с 1 дня до 3 секунд - это повышение конверсии и, соответственно, снижение затрат на привлечение клиента, повышение объемов продаж, повышение качества клиентского портфеля.
Здесь важно обратить внимание на одну особенность данных - их ценность не одинакова во времени. Если продукция сейчас сходит с конвейера, то необходимы данные прямо сейчас с датчиков. Вчерашние данные не нужны. Если клиент сейчас звонит в колл-центр, то значит у него сейчас проблемы. Вчера проблем не было. Если в работе устройства сейчас наблюдается отклонение, то это сигнал, что сейчас надо обратить внимание на его работу. Вчера устройство работало нормально. Если клиент сейчас выбирает кредит или билет на самолет, то он сейчас сравнивает условия на рынке и принимает решения. Вчера были другие клиенты и другая ситуация на рынке. И уже тем более сложно делать предсказания и принимать решения на основе более старых данных за неделю, месяц или год назад - за это время изменились клиенты, рынок, экономика, произошли кризисы,..
То есть “сокращая отставание” от реальности до миллисекунд, секунд и минут бизнес одновременно задействует данные, которые имеют значительно более высокую ценность для предсказаний и принятия решений, чем имевшиеся прежде данные.
Новые данные - новые знания
Еще одним из интересным следствием или даже причиной “сокращения отставания” является появление совершенно новых данных (тех самых infinite data), которых у бизнеса просто раньше никогда не было или данные были, но никак не использовались.
Часто переход на новый технологический процесс происходит одновременно или вследствие перехода бизнеса на более активную работу с клиентами через мобильное приложение, подключение онлайн-касс, установку новых сенсоров на оборудование, анализ диалогов, звонков, аудио- и видео-потоков. Это все примеры потоковых данных, для обработки которых streaming подходит наилучшим образом.
Пример. Сеть ресторанов быстрого обслуживания. Раньше отчетность по продажам собиралась раз в день и использовалась лишь для целей ежемесячной и квартальной аналитики. Запустили новое мобильное приложение и перешли на онлайн-кассы. Стало возможным в реальном времени, то есть с отставанием в миллисекунды, видеть каждый чек в каждом ресторане. Моментально выясняется, что посетители в каждом ресторане разные (что вполне объяснимо - один ресторан в аэропорту, другой в торговом центре, третий на автотрассе), у посетителей разные предпочтения, предпочтения меняются вместе с сезоном, погодой, временем суток, трендами, локальными маркетинговыми активностями в реальном времени. Но даже это все не так существенно, как совершенно новая возможность в реальном времени взаимодействовать с посетителем в процессе покупки и посещения ресторана, учитывая их личные предпочтения и динамично меняющиеся тренды. “Сокращение отставания” и задействование новых бесконечных данных выражаются в существенном росте среднего чека, росте частоты посещений и кардинально иному пониманию бизнесом реальных предпочтений посетителей.
Еще пример. В сельском хозяйстве всегда вели наблюдения за урожаем, но наблюдения делали раз в день или реже. Сейчас можно “сократить отставание” и собирать данные в теплицах или на полях в режиме реального времени, отслеживания появление вредителей, болезней, недостаток влаги, освещенности, удобрений, сорняков. Вредители, как и любые живые организмы, распространяются с экспоненциальной скоростью. Это значит, что чем раньше проблема обнаружена, тем в разы меньше ущерб и стоимость его предотвращения. Данных в таком объеме раньше никогда не было, поэтому “сокращение отставания” с часов и дней до секунд и минут, означает не только быструю реакцию, но и получение новых знаний.
Ну и конечно же нельзя не упомянуть об авиации, где инженеры мечтают о том, чтобы непрерывно снимать показания работы двигателей прямо во время полета.
Появление данных, поступающих и обрабатываемых со скоростью реальности - это кардинальное новшество, способное менять сам взгляд на то, как устроены многие процессы.
Жизнь - это боль. И аномалии...
Мы уже говорили, что ценность данных не одинакова во времени. Вернемся к этому интересному факту в связи с появлением новых источников данных при “сокращении отставания”.
Иногда мы точно знаем, что именно самые последние события, происходящие сейчас, представляют особую ценность. Эти примеры приводили. Но часто, мы вообще не знаем, в какой момент ценность данных проявится. В такой ситуации возникает дилемма: вообще не обрабатывать данные или обрабатывать данные постоянно.
Например, как часто надо измерять температуру, давление, пульс, сахар у человека? У человека в реанимации - желательно, постоянно. У человека с легкой болезнью - хотя бы раз в день или даже реже. У здорового человека - можно совсем редко, хотя и ему врачи будут рекомендовать следить за параметрами регулярно. Где провести грань между необходимостью измерять постоянно или рекомендацией измерять регулярно? Возможно, правильным решением будет измерять регулярно у всех (у тяжелых, у легких и у здоровых людей) постоянно? Развитие “умных” устройств движется именно в этом направлении. Почему так происходит? Да потому, что никто заранее не знает, когда здоровый человек столкнется с недугом и лучше максимально рано узнать об отклонениях в параметрах и иметь запас времени на реагирование, чем потерять время и получить более серьезные последствия.
Предпочтительность непрерывной обработки данных будет работать и в других случаях: когда нужно выявлять аномалию в работе устройств (мы не знаем, в какой момент может произойти деградация - может быть она вообще никогда не произойдет или произойдет в произвольный момент времени), когда нужно контролировать качество продукции (мы не знаем, в какой момент случится сбой и возникнет дефект и будет ли этот тип дефекта нам уже известен или это будет совершенно новый тип дефекта), когда нужно выдать клиенту рекомендацию на основе его платежных транзакций (мы не знаем заранее, когда клиент совершит рискованную операцию или операцию, которая позволит нам предложить ему услугу).
Мы вообще можем не знать, как будет выглядеть будущая аномалия, но можем предположить, что она будет отличаться от всех ранее нам известных. Но только обрабатывая данные непрерывно и постоянно мы можем аномалию заметить и в реальном времени на нее отреагировать.
Мир за пределами batch
Попробуем подвести итог:
Streaming - это новый технологический процесс, который лежит за пределами возможностей batch и является качественным переходом к “сокращению отставания” от реальности. Именно в таком смысле кажется правильнее интерпретировать названия статей: “Streaming: The world beyond batch”.
“Сокращение отставания” от реальности с часов, дней, недель и месяцев до миллисекунд, секунд и минут - это объективная потребность бизнеса, который живет в реальном мире и со скоростью реального мира.
Ценность данных не одинакова во времени и во многих задачах самые последние события имеют существенно большую ценность, чем исторические.
Переход на новый технологический процесс тесно связан с возникновением новых источников бесконечных данных, которые способны создавать совершенно новое знание о мире, клиентах, процессах.
Мы не всегда знаем или всегда не знаем, когда ценность данных проявится, поэтому обрабатывать данные непрерывно выгодно, чтобы не пропустить тот самый момент, когда аномалия в данных проявится.
Сергей Кедров
со-основатель fabrique.ai