В источнике таблица `users` хранит только **текущее** значение тарифа. Аналитикам нужно отвечать на вопрос «какой тариф был у пользователя на дату X».
**Задание:** опишите модель SCD Type 2 для `dim_users`: какие столбцы добавить, как обрабатывать изменение, как сделать запрос «на дату».
Структура для ориентира — реальные значения из эталонного решения.
CREATE TABLE dim_users (
user_sk BIGINT, -- суррогатный ключ версии
user_id BIGINT, -- бизнес-ключ
plan TEXT,
valid_from TIMESTAMP NOT NULL,
valid_to TIMESTAMP, -- NULL = текущая версия
is_current BOOLEAN NOT NULL
);
SCD2 dimension история моделирование
Это задание для уровня Senior. Senior-уровень — глубокое понимание темы, опыт решения нестандартных задач, обсуждение trade-off на собеседовании.
Подобные задания в категории «data_engineering» регулярно дают на собеседованиях аналитика данных в Яндекс, Сбер, Ozon, Авито, Тинькофф, Wildberries, T-Bank, X5, ВТБ и других крупных IT-компаниях. Тематика: SCD2, dimension, история, моделирование.
На реальном собеседовании на подобную задачу отводится 30-60 минут с обсуждением подходов, оптимизаций и trade-off. Для тренировки рекомендуем сначала решить самостоятельно, потом сверить с эталонным решением и подсказками.
На zasqlpython.ru есть другие задания в категории «data_engineering», продуктовые кейсы, справочник метрик, AI мок-собеседование с разбором ваших ответов.
← Все задания