Привет всем, я руководитель вашей группы Ван Чживу.
Недавно был выпущен Flink 1.18. В этой новой версии добавлено множество новых функций и возможностей. Среди этих характеристик,Есть некоторые возможности, которые очень важны в производственной среде.,Во время использования вы можетеСосредоточьтесь на упоминании и понимании принципов.。
Прежде всего, что касается улучшений потоковой обработки, начиная с версии Flink 1.18, пользователи Table API и SQL могут независимо устанавливать время хранения состояния (TTL) для операторов с отслеживанием состояния.
Эта функция является очень практичной и важной функцией. В предыдущих версиях время сохранения статуса могло быть только равным. pipeline Использование уровня Конфигурация Элемент пройденtable.exec.state.ttl
взять под контроль。После введения сохранения состояния на уровне оператора,Теперь пользователи могут оптимизировать использование ресурсов в соответствии со своими конкретными потребностями.
Теперь для левого и правого потоков можно установить разные значения TTL, что помогает контролировать размер состояния больших объемов данных и эффективно уменьшать размер состояния. В таких сценариях, как восстановление после сбоя, перезапуск и подключение к сети, задачи можно восстанавливать быстрее.
Однако в официальном использовании общедоступной версии Flink1.18 используется модифицированный JSON. FileЭтот видНе прост в использовании
способ:
-- 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:
-- 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')
*/
-- 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, например, также значительно улучшена. Есть и другие изменения, вы можете проверить официальные документы в соответствии с реальной ситуацией.