Прочитав эти 3000+ слов за 8 минут, вы обязательно поймете временное окно и семантику времени Флинка, этих двух хороших друзей!
Прочитав эти 3000+ слов за 8 минут, вы обязательно поймете временное окно и семантику времени Флинка, этих двух хороших друзей!

Мигание времени и окна

Время и окна всегда были одним из козырей Flink в области потоковой обработки, а также являются теоретическим краеугольным камнем Flink. В Flink время и окно представляют собой две концепции «семантики времени» и «временного окна» соответственно. Ранее мы узнали о различных операциях, таких как сопоставление данных (операция карты), фильтрация (операция фильтра), группировка (операция keyBy), сокращение и агрегирование (операция сокращения) и т. д. На наш взгляд, функции Flink уже очень богаты, поэтому time Почему возникла семантика окна и времени? Какие проблемы это помогло нам решить?

В этой главе мы исследуем тайны временных окон и семантики времени.

Временное окно и временная семантика — хорошие друзья.

Как видно из названия, в первом разделе этой главы основное внимание уделяется тому, чтобы произвести впечатление в сознании каждого: временное окно и семантика времени неразделимы.

Так что же такое временные окна и семантика времени?

Мы знаем, что рождение всех теоретических концепций неотделимо от реальных сценариев применения, поэтому, чтобы ответить на этот вопрос, автор сначала перечисляет 3 распространенных сценария вычислений данных в реальном времени.

  • сцена 1: подсчитайте совокупные продажи каждого продукта каждую минуту в сцене электронной коммерции.
  • сцена2: Когда мы смотрели прямой эфир,В правом верхнем углу комнаты прямой трансляции будет отображаться последняя минута онлайн-трансляции.,И он будет обновляться каждую 1 минуту.
  • сцена3: Когда нам рекомендуют товар,Отображает совокупные продажи этого продукта.,И объем продаж будет постоянно обновляться (при условии, что он обновляется каждые 10 секунд).

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

  • Частота расчета временного окна
  • размер временного окна
  • Логика обработки данных во временном окне

Далее мы используем случай расчета и вывода совокупных продаж всех продуктов за последнюю минуту каждую 1 минуту, чтобы проиллюстрировать механизм обработки модели расчета временного окна. Как показано на рис. 5-1, каждый кружок во входном потоке данных представляет собой запись о продажах продукта, а число в кружке представляет объем продаж продукта. Затем, анализируя этот спрос в соответствии с тремя атрибутами модели расчета временного окна, мы получаем, что частота расчета временного окна равна 1 минуте, размер временного окна равен 1 минуте, а логика обработки данных внутри временного окна равна суммировать продажи продукции. Далее, согласно расчету модели расчета временного окна, шаги делятся на следующие три шага.

  1. первый шаг,Разделите окно в соответствии с размером временного окна в 1 минуту.,войдетданныетечь согласно1minЗернистость делится на один за другим с размером1minокно。нравиться Рисунок Как показано в заштрихованной области 5-1, если предположить, что времена данных с продажами 3 и 4 равны 9:01:03 и 9:02:56 соответственно, тогда эти две данные будут разделены на [9:01: 00 , 9:02:00) и [9:02:00, 9:03:00) в обоих окнах.
  2. Шаг 2,Рассчитайте частоту в соответствии с временным окном в 1 минуту, чтобы инициировать расчет данных в пределах этого окна.,Каждую 1 минуту,Вычислит данные в пределах окна за последнюю минуту. Например,Когда время достигнет 9:02:00,сработает [9:01:00, 9:02:00) Расчет данных внутри окна.
  3. Шаг 3,Когда окно запускает расчет,Суммируйте продажи всех данных в окне. Например,когда[9:02:00, Когда расчет запускается в окне 9:03:00), сумма всех продаж данных получит 9, и, наконец, результат выводится. Каждая информация в выходном потоке данных является текущим значением B. течение 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. прямая трансляция.

Сравнивая две приведенные выше временные семантики, мы можем обнаружить, что,Выполнение расчетов временных окон с различной семантикой времени,Результаты будут совершенно другими,Поэтому необходимо полностью определить логику расчета временного окна. Модель,Временная семантика также важна.,Именно поэтому название этого раздела «Временное». окно и временная семантика — хорошие друзья.”источник。

boy illustration
Углубленный анализ переполнения памяти CUDA: OutOfMemoryError: CUDA не хватает памяти. Попыталась выделить 3,21 Ги Б (GPU 0; всего 8,00 Ги Б).
boy illustration
[Решено] ошибка установки conda. Среда решения: не удалось выполнить первоначальное зависание. Повторная попытка с помощью файла (графическое руководство).
boy illustration
Прочитайте нейросетевую модель Трансформера в одной статье
boy illustration
.ART Теплые зимние предложения уже открыты
boy illustration
Сравнительная таблица описания кодов ошибок Amap
boy illustration
Уведомление о последних правилах Points Mall в декабре 2022 года.
boy illustration
Даже новички могут быстро приступить к работе с легким сервером приложений.
boy illustration
Взгляд на RSAC 2024|Защита конфиденциальности в эпоху больших моделей
boy illustration
Вы используете ИИ каждый день и до сих пор не знаете, как ИИ дает обратную связь? Одна статья для понимания реализации в коде Python общих функций потерь генеративных моделей + анализ принципов расчета.
boy illustration
Используйте (внутренний) почтовый ящик для образовательных учреждений, чтобы использовать Microsoft Family Bucket (1T дискового пространства на одном диске и версию Office 365 для образовательных учреждений)
boy illustration
Руководство по началу работы с оперативным проектом (7) Практическое сочетание оперативного письма — оперативного письма на основе интеллектуальной системы вопросов и ответов службы поддержки клиентов
boy illustration
[docker] Версия сервера «Чтение 3» — создайте свою собственную программу чтения веб-текста
boy illustration
Обзор Cloud-init и этапы создания в рамках PVE
boy illustration
Корпоративные пользователи используют пакет регистрационных ресурсов для регистрации ICP для веб-сайта и активации оплаты WeChat H5 (с кодом платежного узла версии API V3)
boy illustration
Подробное объяснение таких показателей производительности с высоким уровнем параллелизма, как QPS, TPS, RT и пропускная способность.
boy illustration
Удачи в конкурсе Python Essay Challenge, станьте первым, кто испытает новую функцию сообщества [Запускать блоки кода онлайн] и выиграйте множество изысканных подарков!
boy illustration
[Техническая посадка травы] Кровавая рвота и отделка позволяют вам необычным образом ощипывать гусиные перья! Не распространяйте информацию! ! !
boy illustration
[Официальное ограниченное по времени мероприятие] Сейчас ноябрь, напишите и получите приз
boy illustration
Прочтите это в одной статье: Учебник для няни по созданию сервера Huanshou Parlu на базе CVM-сервера.
boy illustration
Cloud Native | Что такое CRD (настраиваемые определения ресурсов) в K8s?
boy illustration
Как использовать Cloudflare CDN для настройки узла (CF самостоятельно выбирает IP) Гонконг, Китай/Азия узел/сводка и рекомендации внутреннего высокоскоростного IP-сегмента
boy illustration
Дополнительные правила вознаграждения амбассадоров акции в марте 2023 г.
boy illustration
Можно ли открыть частный сервер Phantom Beast Palu одним щелчком мыши? Супер простой урок для начинающих! (Прилагается метод обновления сервера)
boy illustration
[Играйте с Phantom Beast Palu] Обновите игровой сервер Phantom Beast Pallu одним щелчком мыши
boy illustration
Maotouhu делится: последний доступный внутри страны адрес склада исходного образа Docker 2024 года (обновлено 1 декабря)
boy illustration
Кодирование Base64 в MultipartFile
boy illustration
5 точек расширения SpringBoot, супер практично!
boy illustration
Глубокое понимание сопоставления индексов Elasticsearch.
boy illustration
15 рекомендуемых платформ разработки с нулевым кодом корпоративного уровня. Всегда найдется та, которая вам понравится.
boy illustration
Аннотация EasyExcel позволяет экспортировать с сохранением двух десятичных знаков.