Ключевые интерпретации новых функций Flink1.18 в приложениях производственной среды!
Ключевые интерпретации новых функций Flink1.18 в приложениях производственной среды!

Привет всем, я руководитель вашей группы Ван Чживу.

Недавно был выпущен Flink 1.18. В этой новой версии добавлено множество новых функций и возможностей. Среди этих характеристик,Есть некоторые возможности, которые очень важны в производственной среде.,Во время использования вы можетеСосредоточьтесь на упоминании и понимании принципов.

Настройка времени хранения статуса на уровне оператора TTL

Прежде всего, что касается улучшений потоковой обработки, начиная с версии Flink 1.18, пользователи Table API и SQL могут независимо устанавливать время хранения состояния (TTL) для операторов с отслеживанием состояния.

Эта функция является очень практичной и важной функцией. В предыдущих версиях время сохранения статуса могло быть только равным. pipeline Использование уровня Конфигурация Элемент пройденtable.exec.state.ttlвзять под контроль。После введения сохранения состояния на уровне оператора,Теперь пользователи могут оптимизировать использование ресурсов в соответствии со своими конкретными потребностями.

Теперь для левого и правого потоков можно установить разные значения TTL, что помогает контролировать размер состояния больших объемов данных и эффективно уменьшать размер состояния. В таких сценариях, как восстановление после сбоя, перезапуск и подключение к сети, задачи можно восстанавливать быстрее.

Однако в официальном использовании общедоступной версии Flink1.18 используется модифицированный JSON. FileЭтот видНе прост в использованииспособ:

Язык кода:javascript
копировать
-- left source table
CREATE TABLE Orders (
    `order_id` INT,
    `line_order_id` INT
) WITH (
    'connector'='...'
);

-- right source table
CREATE TABLE LineOrders (
    `line_order_id` INT,
    `ship_mode` STRING
) WITH (
    'connector'='...'
);

-- sink table
CREATE TABLE OrdersShipInfo (
    `order_id` INT,
    `line_order_id` INT,
    `ship_mode` STRING
) WITH (
    'connector' = '...'
);

COMPILE PLAN '/path/to/plan.json' FOR
INSERT INTO OrdersShipInfo
SELECT a.order_id, a.line_order_id, b.ship_mode 
FROM Orders a JOIN LineOrders b 
    ON a.line_order_id = b.line_order_id;

Затем измените данные json в этом ПЛАНЕ, чтобы достичь цели установки TTL отдельно:

ПЛАН на рисунке выше имеет настройки состояния для операторов. При необходимости вы можете изменить статус левого и правого потоков:

В FLIP-292 сообщество также указало причины для этого:

Выравнивание водяных знаков и обнаружение простоя

Раньше эти две функции были доступны только в API DatStream:

Язык кода:javascript
копировать
-- configure in table options
CREATE TABLE user_actions (
  ...
  user_action_time TIMESTAMP(3),
  WATERMARK FOR user_action_time AS user_action_time - INTERVAL '5' SECOND
) WITH (
  'scan.watermark.idle-timeout'='1min',
  ...
);
 
-- use 'OPTIONS' hint
select ... from source_table 
/**
  OPTIONS('scan.watermark.idle-timeout'='1min') 
*/
Язык кода:javascript
копировать
-- configure in table options
CREATE TABLE user_actions (
...
user_action_time TIMESTAMP(3),
  WATERMARK FOR user_action_time AS user_action_time - INTERVAL '5' SECOND
) WITH (
'scan.watermark.alignment.group'='alignment-group-1',
'scan.watermark.alignment.max-drift'='1min',
'scan.watermark.alignment.update-interval'='1s',
...
);
 
-- use 'OPTIONS' hint
select ... from source_table 
/** OPTIONS(
'scan.watermark.alignment.group'='alignment-group-1', 
'scan.watermark.alignment.max-drift'='1min', 
'scan.watermark.alignment.update-interval'='1s') 
*/

Среди них выравнивание водяных знаков выполняется при нескольких степенях параллелизма. Водяной знак будет добавлен в источник каждой степени параллелизма или внутри других операторов, и его необходимо выровнять.

Обнаружение простоя еще более полезно,Во многих бизнес-сценариях у нас часто есть источники, появление которых задерживается.,В результате некоторые последующие кислоты не могут инициировать расчеты.,Раньше мы могли установитьtable.exec.source.idle-timeoutГлобально эффективен,Теперь мы можем устанавливать разные таймауты для разных источников.

Динамическое мелкомасштабное расширение и сжатие

Начиная с Flink 1.18, когда задание выполняется, мы можем изменить параллелизм любой задачи задания через веб-интерфейс Flink и REST API.

В прошлом это могло быть ограничено возможностями платформы. Эта ситуация беспокоила многих студентов, и они не могли изменить параллелизм задания. Теперь, когда у нас есть эта возможность, мы можем легко увеличивать и уменьшать масштаб задач. Эта возможность в сочетании с мониторингом противодавления упрощает настройку ресурсов задач и обеспечивает работоспособную и стабильную работу задач кластера. Кроме того, мы можем легко выполнять задачи в режиме онлайн. задачи. Управление задачами.

Возможности Flink все еще обновляются, а поддержка Paimon, например, также значительно улучшена. Есть и другие изменения, вы можете проверить официальные документы в соответствии с реальной ситуацией.

boy illustration
Учебное пособие по Jetpack Compose для начинающих, базовые элементы управления и макет
boy illustration
Код js веб-страницы, фон частицы, код спецэффектов
boy illustration
【новый! Суперподробное】Полное руководство по свойствам компонентов Figma.
boy illustration
🎉Обязательно к прочтению новичкам: полное руководство по написанию мини-программ WeChat с использованием программного обеспечения Cursor.
boy illustration
[Забавный проект Docker] VoceChat — еще одно приложение для мгновенного чата (IM)! Может быть встроен в любую веб-страницу!
boy illustration
Как реализовать переход по странице в HTML (html переходит на указанную страницу)
boy illustration
Как решить проблему зависания и низкой скорости при установке зависимостей с помощью npm. Существуют ли доступные источники npm, которые могут решить эту проблему?
boy illustration
Серия From Zero to Fun: Uni-App WeChat Payment Practice WeChat авторизует вход в систему и украшает страницу заказа, создает интерфейс заказа и инициирует запрос заказа
boy illustration
Серия uni-app: uni.navigateЧтобы передать скачок значения
boy illustration
Апплет WeChat настраивает верхнюю панель навигации и адаптируется к различным моделям.
boy illustration
JS-время конвертации
boy illustration
Обеспечьте бесперебойную работу ChromeDriver 125: советы по решению проблемы chromedriver.exe не найдены
boy illustration
Поле комментария, щелчок мышью, специальные эффекты, js-код
boy illustration
Объект массива перемещения объекта JS
boy illustration
Как открыть разрешение на позиционирование апплета WeChat_Как использовать WeChat для определения местонахождения друзей
boy illustration
Я даю вам два набора из 18 простых в использовании фонов холста Power BI, так что вам больше не придется возиться с цветами!
boy illustration
Получить текущее время в js_Как динамически отображать дату и время в js
boy illustration
Вам необходимо изучить сочетания клавиш vsCode для форматирования и организации кода, чтобы вам больше не приходилось настраивать формат вручную.
boy illustration
У ChatGPT большое обновление. Всего за 45 минут пресс-конференция показывает, что OpenAI сделал еще один шаг вперед.
boy illustration
Copilot облачной разработки — упрощение разработки
boy illustration
Микросборка xChatGPT с низким кодом, создание апплета чат-бота с искусственным интеллектом за пять шагов
boy illustration
CUDA Out of Memory: идеальное решение проблемы нехватки памяти CUDA
boy illustration
Анализ кластеризации отдельных ячеек, который должен освоить каждый&MarkerгенетическийВизуализация
boy illustration
vLLM: мощный инструмент для ускорения вывода ИИ
boy illustration
CodeGeeX: мощный инструмент генерации кода искусственного интеллекта, который можно использовать бесплатно в дополнение к второму пилоту.
boy illustration
Машинное обучение Реальный бой LightGBM + настройка параметров случайного поиска: точность 96,67%
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция без кодирования и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
LM Studio для создания локальных больших моделей
boy illustration
Как определить количество слоев и нейронов скрытых слоев нейронной сети?
boy illustration
[Отслеживание целей] Подробное объяснение ByteTrack и детали кода