Восстановление консистентности после partial failure

hard data_engineering Общие

Условие задания

**Компания:** Сбер

**Контекст:** ETL-пайплайн обновляет 5 связанных витрин последовательно. После обновления 3-й витрины произошёл сбой. Три витрины содержат данные за новый день, две — за предыдущий. Аналитики получают неконсистентные отчёты.

**Витрины и зависимости:**
[см. код в задании]

**Задание:**
1. Напишите SQL для диагностики: какие витрины неконсистентны
2. Реализуйте два сценария восстановления: rollback vs forward
3. Спроектируйте механизм, предотвращающий неконсистентность в будущем

Пример данных

Структура для ориентира — реальные значения из эталонного решения.

BEGIN;

-- Откатить 3 обновлённые витрины к предыдущему дню
DELETE FROM mart_clients WHERE dt = '2024-03-16';
DELETE FROM mart_accounts WHERE dt = '2024-03-16';
DELETE FROM mart_transactions WHERE dt = '2024-03-16';

-- Восстановить из backup (если есть)
INSERT INTO mart_clients SELECT * FROM mart_clients_backup WHERE dt = '2024-03-16';
-- ... аналогично для остальных (если backup содержит данные до обновления)

COMMIT;

Темы

консистентность partial failure восстановление транзакции

Подсказки

Все тестовые задания →

Частые вопросы

Какой уровень знаний нужен для задачи "Восстановление консистентности после partial failure"?

Это задание для уровня hard. Senior-уровень — глубокое понимание темы, опыт решения нестандартных задач, обсуждение trade-off на собеседовании.

На каких собеседованиях встречается такая задача?

Подобные задания в категории «data_engineering» регулярно дают на собеседованиях аналитика данных в Яндекс, Сбер, Ozon, Авито, Тинькофф, Wildberries, T-Bank, X5, ВТБ и других крупных IT-компаниях. Тематика: консистентность, partial failure, восстановление, транзакции.

Сколько времени даётся на решение?

На реальном собеседовании на подобную задачу отводится 30-60 минут с обсуждением подходов, оптимизаций и trade-off. Для тренировки рекомендуем сначала решить самостоятельно, потом сверить с эталонным решением и подсказками.

Где ещё потренироваться по теме «data_engineering»?

На zasqlpython.ru есть другие задания в категории «data_engineering», продуктовые кейсы, справочник метрик, AI мок-собеседование с разбором ваших ответов.

← Все задания