Поймите значение UPDATE_BEFORE для RowKind

#apache-flink

Вопрос:

Я читаю javadoc RowKind#UPDATE_BEFORE , в нем говорится:

     /**
     * Update operation with the previous content of the updated row.
     *
     * <p>This kind SHOULD occur together with {@link #UPDATE_AFTER} for modelling an update that
     * needs to retract the previous row first. It is useful in cases of a non-idempotent update,
     * i.e., an update of a row that is not uniquely identifiable by a key.
     */
    UPDATE_BEFORE("-U", (byte) 1),
 

Я бы спросил

  1. если строка is not uniquely identifiable by a key , то как флинк знает, какую строку убрать, я думаю, что должен быть уникальный ключ для определения строки?
  2. Он говорит , что это полезно для non-idempotent update того, что здесь non-idempotent update означает?

Не могли бы вы, пожалуйста, помочь объяснить этот вопрос? Спасибо!

Комментарии:

1. Не мог бы кто-нибудь помочь объяснить мои вопросы? Спасибо!