В соответствии с документом amazon , у нас есть RocksDBStateBackend в качестве нашего основного состояния по умолчанию для KDA.
Цитата:
In Kinesis Data Analytics, конфигурация state.backend.rocksdb.ttl.compaction.filter.enabled
включена по умолчанию. Используя этот фильтр, вы можете обновить код своего приложения, чтобы включить стратегию очистки уплотнения.
Я не смог найти ни одного проекта / ссылки на Github, где был настроен StateTtlConfig для RocksDBStateBackend.
Согласно чтобы мигать документы , нам нужно использовать его в main классе, как указано ниже:
public static void main(String[] args) throws Exception {
// Get sEnv context.
final StreamExecutionEnvironment sEnv = StreamExecutionEnvironment.getExecutionEnvironment();
StateTtlConfig ttlConfig = StateTtlConfig
.newBuilder(org.apache.flink.api.common.time.Time.minutes(30))
.cleanupFullSnapshot()
.cleanupInBackground()
.build();
/** Rest of the code. **/
}
Это правильное использование?
Является ли Time.minutes(30)
периодом хранения для наших контрольных точек?
Должен ли я использовать .cleanupIncrementally (100, true)?
В соответствии с aws документами State Backend Memory Threshold = 1048576
(не уверен насчет блока памяти). Должны ли мы рассмотреть это, почему при оценке удержания ie Time.minutes(30)
?
Просьба предоставить четкую ссылку на код его использования. Спасибо.