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