Эффективно итерация над упорядоченными клавишами в Flink MapstateJAVA

Программисты JAVA общаются здесь
Anonymous
Эффективно итерация над упорядоченными клавишами в Flink Mapstate

Сообщение Anonymous »

Я строю приложение Flink, примерно моделируемое после приложения Flink по обнаружению мошенничества, где события попадают в мою систему вне порядка, подводятся по некоторым критериям, а затем хранятся в Mapstate . Процесс -функция итерации над ключами MapState, ищет любые события, которые попадают в окно, и объединяя их в функцию агрегации: < /p>

Код: Выделить всё

int windowCount = 0;
for (Long stateEventTime : windowState.keys()) {
if (isStateValueInWindow(stateEventTime, windowStartForEvent, currentEventTime)) {
windowCount++;
}
}
Однако, поскольку мои события приходят плохо вне порядка, я ожидаю, что Windowstate будет содержать до 150 000 записей, и я обеспокоен стоимостью итерации по всем им каждый раз, когда появляется новое событие. Я бы сохранил карту в TreeMap. Если бы я хранил состояние в базе данных, подобной SQL, я также мог бы сохранить индекс временных метров и сделать выбор из Windowstate, где TimeStamp> = Windowbegin и Timestamp

Подробнее здесь: https://stackoverflow.com/questions/797 ... k-mapstate

Вернуться в «JAVA»