Full-загрузка пересоздаёт полный набор данных, инкрементальная обрабатывает изменения. Дубликаты предотвращают устойчивым ключом, идемпотентной записью и согласованной точкой продолжения.
Работал ли ты с инкрементальной и full-загрузкой? Как боролись с дубликатами?
Full-загрузка пересоздаёт полный набор данных, инкрементальная обрабатывает изменения. Дубликаты предотвращают устойчивым ключом, идемпотентной записью и согласованной точкой продолжения.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Full-загрузка пересоздаёт полный набор данных, инкрементальная обрабатывает изменения. Дубликаты предотвращают устойчивым ключом, идемпотентной записью и согласованной точкой продолжения.
Для инкремента используют CDC или watermark по времени/версии. Последнюю позицию фиксируют только после успешной записи. При поздних событиях перечитывают перекрывающийся диапазон и выбирают последнюю версию по ключу; удаление также должно иметь отдельное представление.
Full-загрузку удобно собирать в staging с проверкой количества и качества, затем атомарно переключать потребителя. DISTINCT удаляет лишь одинаковые строки и не решает конфликт разных версий одной сущности. В рассказе о проекте уточняйте реальный ключ, стратегию повторного запуска и способ сверки.