Для больших состояний я бы рекомендовал использовать Flink's RocksDBStateBackend
.Этот бэкэнд состояния использует RocksDB для хранения состояния.Поскольку RocksDB изящно разливается на диск, он ограничен только вашим доступным дисковым пространством.Таким образом, Flink сможет справиться с вашим вариантом использования.
На данный момент вам необходимо зарегистрировать таймеры для очистки состояния.Однако со следующим выпуском Flink сообщество добавит очистка для состояния с TTL .Затем он автоматически очистит ваше состояние по истечении срока его действия.
Поддержание вашего состояния близко к вашим вычислениям с периодическими контрольными точками, которые сохраняются, сохранит ваше приложение быстрым.Если бы каждый доступ к состоянию шел к удаленному кластеру KV, это значительно замедляло бы обработку.