Пишите результат запуска в отдельный staging-префикс, проверяйте полноту и только затем публикуйте новую версию. Не очищайте рабочие файлы до успешной записи.
Как вы работали с файлами при повторном запуске DAG после его падения, чтобы не перезаписать данные в S3 неполными данными?
Пишите результат запуска в отдельный staging-префикс, проверяйте полноту и только затем публикуйте новую версию. Не очищайте рабочие файлы до успешной записи.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Пишите результат запуска в отдельный staging-префикс, проверяйте полноту и только затем публикуйте новую версию. Не очищайте рабочие файлы до успешной записи.
Используйте стабильный идентификатор периода и отдельный идентификатор попытки. После проверки числа файлов, схемы и контрольных метрик переключайте указатель или каталог на готовый набор.
В S3 нет атомарного переименования целой «папки». Поэтому потребители должны читать опубликованный manifest или транзакционную таблицу, а не произвольные файлы незавершённого запуска. Повторная попытка не должна смешивать старые и новые данные.