У меня часто обновляется таблица MySql.Я хочу сделать снимок для каждого идентификатора, который обновляется за последние 20 секунд, и записать значение в redis.Я использую binlog в качестве потокового ввода и преобразую поток данных в таблицу Flink.Я запускаю следующий sql.
SELECT id, ts, val
FROM my_tbl
WHERE (id, ts) IN
(
SELECT id, MAX(ts)
FROM my_tbl
GROUP BY TUMBLE(proctime, INTERVAL '20' SECOND), id
)
Поскольку я знаю, что объединение таблиц приведет к чрезмерному размеру состояния, я устанавливаю StreamQueryConfig следующим образом:
qConfig.withIdleStateRetentionTime(Time.seconds(600), Time.seconds(1200));
Я запускаю задачу в течение одного дня и получаюОшибка нехватки памяти.Как я могу решить эту проблему?