Выбор ответа Middle CDC и инкрементальная загрузка обновлено
Порядок применения событий CDC
Вопрос
Как определять порядок применения событий CDC к таблице в хранилище?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: По позиции в журнале транзакций (LSN) в пределах ключа, а не по времени получения. Время получения зависит от ретраев и задержек и может переставить события.
Варианты ответа
- По позиции в журнале транзакций (LSN) в пределах ключа, а не по времени полученияправильный ответ
- По времени получения сообщения консьюмером, ведь Kafka доставляет события по порядку
- По возрастанию первичного ключа, чтобы применять пачки детерминированно и без блокировок
- Порядок не важен: события CDC идемпотентны, достаточно применить их все в любом порядке
Разбор
Время получения зависит от ретраев и задержек и может переставить события. Позиция в журнале отражает реальный порядок коммитов. Debezium отправляет события строки в одну партицию по первичному ключу, так что порядок внутри ключа сохраняется, а при загрузке пачками надо брать последнее событие по позиции. Алфавит ключа к порядку изменений отношения не имеет. Порядок важен: «обновление после удаления» и «удаление после обновления» дают разный результат.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Ещё по теме «CDC и инкрементальная загрузка»
- Удаления в аналитике
- Событие Debezium
- Transactional outbox
- Инкремент по водяному знаку
- Применить события Debezium к состоянию
- Поле op в событии Debezium
- Удаления при инкременте по updated_at
- Спроектируйте репликацию данных сервисов в хранилище через CDC