Существуют ли ограничения в использовании состояния в Apache Flink?

Какой цикл вы пытаетесь выйти? Простой break; выйдет из внутреннего цикла. Для внешнего цикла вы можете использовать переменную с ограниченным окружением (например, boolean exit = false;), которая установлена ​​в true только перед тем, как вы нарушите внутренний цикл. После того, как внутренний цикл цикла проверяет значение выхода и если true, снова используйте break;.

0
задан christianonline 16 January 2019 в 15:26
поделиться

1 ответ

Для больших состояний я бы рекомендовал использовать Флинка RocksDBStateBackend. Этот бэкэнд состояния использует RocksDB для хранения состояния. Поскольку RocksDB изящно разливается на диск, он ограничен только вашим доступным дисковым пространством. Таким образом, Flink сможет справиться с вашим вариантом использования.

На данный момент вам необходимо зарегистрировать таймеры для очистки состояния. Однако со следующим выпуском Flink сообщество добавит очистку для состояния с TTL . После этого он автоматически очистит ваше состояние по истечении срока действия.

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

0
ответ дан Till Rohrmann 16 January 2019 в 15:26
поделиться