Время и окна всегда были одним из козырей Flink в области потоковой обработки, а также являются теоретическим краеугольным камнем Flink. В Flink время и окно представляют собой две концепции «семантики времени» и «временного окна» соответственно. Ранее мы узнали о различных операциях, таких как сопоставление данных (операция карты), фильтрация (операция фильтра), группировка (операция keyBy), сокращение и агрегирование (операция сокращения) и т. д. На наш взгляд, функции Flink уже очень богаты, поэтому time Почему возникла семантика окна и времени? Какие проблемы это помогло нам решить?
В этой главе мы исследуем тайны временных окон и семантики времени.
Как видно из названия, в первом разделе этой главы основное внимание уделяется тому, чтобы произвести впечатление в сознании каждого: временное окно и семантика времени неразделимы.
Так что же такое временные окна и семантика времени?
Мы знаем, что рождение всех теоретических концепций неотделимо от реальных сценариев применения, поэтому, чтобы ответить на этот вопрос, автор сначала перечисляет 3 распространенных сценария вычислений данных в реальном времени.
Если мы внимательно проанализируем показатели в реальном времени, рассчитанные по этим трем сценариям, то обнаружим, что все они могут быть описаны единой расчетной моделью, то есть: расчетом и выводом статистических результатов за прошедший период времени через равные промежутки времени. Эта унифицированная вычислительная модель представляет собой временное окно, в котором «вычисление и вывод через регулярные промежутки времени», «данные за прошедший период времени» и «статистические результаты» соответственно представляют собой три важных атрибута временного окна.
Далее мы используем случай расчета и вывода совокупных продаж всех продуктов за последнюю минуту каждую 1 минуту, чтобы проиллюстрировать механизм обработки модели расчета временного окна. Как показано на рис. 5-1, каждый кружок во входном потоке данных представляет собой запись о продажах продукта, а число в кружке представляет объем продаж продукта. Затем, анализируя этот спрос в соответствии с тремя атрибутами модели расчета временного окна, мы получаем, что частота расчета временного окна равна 1 минуте, размер временного окна равен 1 минуте, а логика обработки данных внутри временного окна равна суммировать продажи продукции. Далее, согласно расчету модели расчета временного окна, шаги делятся на следующие три шага.
Рисунок 5-1 Механизм обработки модели расчета временного окна
Примечание. Интервал открытия влево и закрытия вправо [9:01:00,9:02:00) используется для описания временного окна, которое больше или равно 9:01:00 и меньше 9:02: 00.
Я полагаю, что прочитав приведенные выше примеры, каждый имеет предварительное представление о модели расчета временного окна. Далее мы используем модель расчета временного окна, чтобы заново описать три сценария расчета данных в реальном времени, упомянутые в начале, и получим Таблицу 5-1.
Таблица 5-1. Использование модели расчета временного окна для описания сценариев расчета данных в реальном времени.
сцена | Частота расчета временного окна | размер временного окна | Логика обработки данных во временном окне |
---|---|---|---|
Сцена электронной коммерции рассчитывает продажи | Рассчитывается каждую минуту | В течение 1 минуты | продажи за единицу |
Количество человек одновременно находящихся онлайн в комнате прямой трансляции | Рассчитывается каждую минуту | В течение 1 минуты | Количество человек |
Совокупные продажи продукта | Рассчитывается каждые 10 секунд | С момента поступления товара на полки до текущего момента | Совокупные продажи |
По таблице 5-1 можно найти,После использования модели расчета временного окна для описания уровня этих показателей,Логика расчета этих трех индикаторов расчета в реальном времени станет понятной и стандартной. Стоит упомянуть, что,Когда мы еще больше расширим рамки сцены,Вы найдете большинство индикаторов в реальном времени,Процесс расчета, включая офлайн-индикаторы, соответствует модели расчета временного окна. Например, рассчитывайте GMV (общий объем товарных транзакций) за прошедший день один раз в день.,Каждый раз рассчитывайте GMV за последние 24 часа,Процесс расчета этих автономных показателей можно описать Моделью расчета временного окна.
После разъяснения процесса расчета модели расчета временного окна мы фактически разработаем приложение временного окна. Когда мы захотели использовать Flink для чего-то большого, мы обнаружили, что для определения и описания калибров индикаторов используются только временные окна. проблема, которая тесно связана с другой темой этой главы — семантикой времени. Давайте сначала подытожим эту проблему: когда мы обрабатываем данные в соответствии с моделью расчета временного окна, должны ли мы использовать для расчета время, когда данные фактически были получены, или мы должны использовать локальное машинное время, когда данные поступают в подзадачу оператора временного окна Flink. ?
Вопрос о том, какое время используется для расчета временного окна, подлежит обсуждению в семантике времени.
Сухим образом разобраться в этом вопросе непросто. Мы используем Количество в приведенной выше сцене2. человек одновременно находящихся онлайн в комнате прямой трансляции Например,Как показано на рисунке 5-2.,Два пользователя А и Б смотрели прямую трансляцию в 9:01:50 и 9:02:00 соответственно.,И сообщили двое данных, которые смотрели прямую трансляцию,Однако из-за задержек передачи данных по сети,Эти две данные поступили в подзадачу Flink в 9:03:00 и 9:03:01 соответственно.
Рисунок 5-2. После передачи данных они попадают в подзадачу для расчета.
В приведенной выше сцене,Данные появлялись два разных раза,Первый — это время, когда происходит событие (когда происходят данные).,Второе — это локальное машинное время, когда данные поступают в подзадачу.,Если вы используете первый раз для расчета временного окна,Затем мы называем временную семантику этого временного окна событием time.,Если для расчета временного окна используется второе время,Затем мы называем временную семантику этого временного окна временем обработки. И если вы хотите выполнить расчеты временных окон,Нам нужно выбрать одну из семантик времени,Основная проблема заключается в том, что результаты, полученные с помощью различных семантических вычислений времени, различны.!нравиться Рисунок Как показано на рисунке 5-3, если мы выбираем обработку семантики времени для расчета временного окна, то временные метки этих двух данных будут 9:03:00 и 9:03:01. Во время расчета эти два данных будут разделены на [. 9:03:00 ,9:04:00) в этом временном окне и запустить расчет окна [9:03:00,9:04:00), когда местное время подзадачи достигнет 9:04:00. Вычисленный результат находится в 9. : с 03:00 до 9:04:00 это течение 1 минуты Прямую трансляцию смотрели два пользователя.
Рисунок 5-3 Различия в моделях расчета временных окон при семантике времени обработки и времени события
Как показано на рисунке 5-3, если мы выбираем семантику времени события для расчета временного окна, то временные метки этих двух фрагментов данных будут 9:01:50 и 9:02:00. При следующем расчете эти два фрагмента данных будут распределены по двум временным окнам [9:01:00,9:02:00) и [9:02:00,9:03:00) для расчета и поступят. на момент данных Данные в окне [9:01:00,9:02:00) рассчитываются один раз в 9:02:00 и рассчитываются один раз, когда время данных достигает 9:03:00 [9:02:00,9: 03:00) данные в окне. Окончательный расчетный результат таков, что один пользователь смотрел прямую трансляцию в этой комнате прямой трансляции с 9:01:00 до 9:02:00, а также был еще один пользователь, который смотрел ее с 9:02:00 до 9:03: 00. прямая трансляция.
Сравнивая две приведенные выше временные семантики, мы можем обнаружить, что,Выполнение расчетов временных окон с различной семантикой времени,Результаты будут совершенно другими,Поэтому необходимо полностью определить логику расчета временного окна. Модель,Временная семантика также важна.,Именно поэтому название этого раздела «Временное». окно и временная семантика — хорошие друзья.”источник。