**Компания:** Озон
**Контекст:** Product-команда постоянно просит DE-команду сделать выгрузки. Нужно создать self-service витрину (wide table), которую product-аналитики смогут использовать самостоятельно для 80% своих задач.
**Задание:**
1. Спроектируйте wide table с данными о пользователях: демография, активность, покупки, сегмент
2. Напишите ETL для наполнения витрины
3. Составьте документацию: описание полей, примеры запросов, ограничения
4. Реализуйте разграничение доступа (маскировка PII)
Структура для ориентира — реальные значения из эталонного решения.
CREATE TABLE mart_user_360 (
-- Идентификация
user_id BIGINT PRIMARY KEY,
-- Демография
registration_date DATE,
registration_source VARCHAR(50),
city VARCHAR(100),
region VARCHAR(100),
platform VARCHAR(20), -- ios, android, web
-- Активность (last 30 days)
last_active_date DATE,
days_since_last_activity INT,
active_days_30d INT,
sessions_30d INT,
pageviews_30d INT,
-- Покупки (all time)
first_order_date DATE,
last_order_date DATE,
lifetime_orders INT,
lifetime_revenue NUMERIC(14,2),
lifetime_aov NUMERIC(10,2),
-- Покупки (last 30 days)
orders_30d INT,
revenue_30d NUMERIC(14,2),
-- Категории
top_category VARCHAR(100),
top_category_orders INT,
distinct_categories INT,
-- RFM
recency_days INT,
frequency_30d INT,
monetary_30d NUMERIC(14,2),
rfm_segment VARCHAR(30), -- champions, loyal, at_risk, lost
-- Сегменты
user_segment VARCHAR(30), -- new, active, dormant, churned
is_premium BOOLEAN,
has_subscription BOOLEAN,
-- Метаданные
updated_at TIMESTAMP DEFAULT NOW()
);
CREATE INDEX idx_user360_segment ON mart_user_360 (user_segment);
CREATE INDEX idx_user360_rfm ON mart_user_360 (rfm_segment);
CREATE INDEX idx_user360_city ON mart_user_360 (city);
self-service витрина документация проектирование wide table
Это задание для уровня hard. Senior-уровень — глубокое понимание темы, опыт решения нестандартных задач, обсуждение trade-off на собеседовании.
Подобные задания в категории «data_engineering» регулярно дают на собеседованиях аналитика данных в Яндекс, Сбер, Ozon, Авито, Тинькофф, Wildberries, T-Bank, X5, ВТБ и других крупных IT-компаниях. Тематика: self-service, витрина, документация, проектирование, wide table.
На реальном собеседовании на подобную задачу отводится 30-60 минут с обсуждением подходов, оптимизаций и trade-off. Для тренировки рекомендуем сначала решить самостоятельно, потом сверить с эталонным решением и подсказками.
На zasqlpython.ru есть другие задания в категории «data_engineering», продуктовые кейсы, справочник метрик, AI мок-собеседование с разбором ваших ответов.
← Все задания