Выбор ответа Middle CDC и инкрементальная загрузка обновлено

Порядок применения событий CDC

Вопрос

Как определять порядок применения событий CDC к таблице в хранилище?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: По позиции в журнале транзакций (LSN) в пределах ключа, а не по времени получения. Время получения зависит от ретраев и задержек и может переставить события.

Варианты ответа

  1. По позиции в журнале транзакций (LSN) в пределах ключа, а не по времени полученияправильный ответ
  2. По времени получения сообщения консьюмером, ведь Kafka доставляет события по порядку
  3. По возрастанию первичного ключа, чтобы применять пачки детерминированно и без блокировок
  4. Порядок не важен: события CDC идемпотентны, достаточно применить их все в любом порядке

Разбор

Время получения зависит от ретраев и задержек и может переставить события. Позиция в журнале отражает реальный порядок коммитов. Debezium отправляет события строки в одну партицию по первичному ключу, так что порядок внутри ключа сохраняется, а при загрузке пачками надо брать последнее событие по позиции. Алфавит ключа к порядку изменений отношения не имеет. Порядок важен: «обновление после удаления» и «удаление после обновления» дают разный результат.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.