Streaming non window left outer join
- это новая функция в flink1.6.Когда я делаю это между двумя динамическими таблицами.результат соединения не в порядке.Как правильно использовать эту функцию?Две динамические таблицы упорядочены по data_update_time
.NonWindowJoin - состояние левой и правой таблиц, оба используют управляемое состояние flink MapState
.Когда я смотрю non window join
код Flink.Я запутался, что: (1) код NonWindowJoin.scala ключ MapState
является Row
объектом.Функция hashCode
и equal
для Row
определяется всеми полями Row
.Таким образом, если потоковые события поступают из binlog
базы данных mysql, MapState[Row, JTuple2[Long, Long]]
всегда будет добавляться (не обновляться).Это MapState
будет записывать список изменений той же записи, что и в базе данных mysql.Я сомневаюсь, что порядок определения результата не определен?(2) Когда его повторять, следует ли проходить в том порядке, в котором расположены состояния?(3) Как найти причину результата объединения не по порядку.