**Компания:** Яндекс
**Контекст:** Для разных таблиц в DWH используются разные стратегии загрузки. Нужно выбрать оптимальную стратегию для каждого типа данных.
**Таблицы:**
- `dim_city` — справочник городов (500 строк, меняется раз в месяц)
- `fact_rides` — поездки в Такси (100 млн строк, 2 млн/день)
- `dim_driver` — водители (500K строк, меняется ежедневно)
- `fact_payments` — платежи (50 млн строк, могут обновляться задним числом)
**Задание:**
1. Для каждой таблицы выберите стратегию (full / delta / delta+full) и обоснуйте
2. Реализуйте дельта-загрузку для fact_rides
3. Реализуйте полную перезаливку для dim_city с минимальным downtime
Структура для ориентира — реальные значения из эталонного решения.
-- Только новые записи (append-only)
INSERT INTO dwh_fact_rides
SELECT *
FROM src_fact_rides
WHERE created_at > (
SELECT COALESCE(MAX(created_at), '1970-01-01')
FROM dwh_fact_rides
)
ORDER BY created_at;
delta load full load ETL стратегия сравнение
Это задание для уровня medium. Senior-уровень — глубокое понимание темы, опыт решения нестандартных задач, обсуждение trade-off на собеседовании.
Подобные задания в категории «data_engineering» регулярно дают на собеседованиях аналитика данных в Яндекс, Сбер, Ozon, Авито, Тинькофф, Wildberries, T-Bank, X5, ВТБ и других крупных IT-компаниях. Тематика: delta load, full load, ETL, стратегия, сравнение.
На реальном собеседовании на подобную задачу отводится 30-60 минут с обсуждением подходов, оптимизаций и trade-off. Для тренировки рекомендуем сначала решить самостоятельно, потом сверить с эталонным решением и подсказками.
На zasqlpython.ru есть другие задания в категории «data_engineering», продуктовые кейсы, справочник метрик, AI мок-собеседование с разбором ваших ответов.
← Все задания