Прочитав эти 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
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose