A/B тест на данных из DWH: от события до витрины

hard data_engineering Общие

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

**Компания:** ВК

**Контекст:** Продуктовая команда запускает A/B тест новой ленты новостей. Данные об экспериментах хранятся в отдельной таблице. Нужно построить витрину для анализа результатов.

[см. код в задании]

**Задание:**
1. Спроектируйте витрину для анализа A/B теста (метрики по группам)
2. Напишите ETL для расчёта ключевых метрик: DAU, sessions, time_spent, CR
3. Добавьте проверки валидности эксперимента: SRM, минимальный размер выборки
4. Реализуйте инкрементальное обновление

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

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

CREATE TABLE mart_experiment_daily (
    experiment_id VARCHAR(50),
    variant VARCHAR(20),
    dt DATE,
    -- Размер выборки
    users_total INT,
    users_active INT,
    -- Метрики активности
    sessions INT,
    events_total BIGINT,
    avg_session_duration_sec NUMERIC(10,1),
    -- Метрики конверсии
    users_with_purchase INT,
    conversion_rate NUMERIC(6,4),
    revenue NUMERIC(14,2),
    arpu NUMERIC(10,2),
    -- Метаданные
    updated_at TIMESTAMP DEFAULT NOW(),
    PRIMARY KEY (experiment_id, variant, dt)
);

-- Cumulative-витрина для итогов
CREATE TABLE mart_experiment_cumulative (
    experiment_id VARCHAR(50),
    variant VARCHAR(20),
    -- Cumulative метрики
    total_users INT,
    total_active_users INT,
    total_revenue NUMERIC(14,2),
    cumulative_cr NUMERIC(6,4),
    cumulative_arpu NUMERIC(10,2),
    -- SRM check
    expected_ratio NUMERIC(5,3),
    actual_ratio NUMERIC(5,3),
    srm_pvalue NUMERIC(8,6),
    srm_ok BOOLEAN,
    updated_at TIMESTAMP DEFAULT NOW(),
    PRIMARY KEY (experiment_id, variant)
);

Темы

A/B тест DWH витрина эксперимент ETL

Подсказки

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

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

Какой уровень знаний нужен для задачи "A/B тест на данных из DWH: от события до витрины"?

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

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

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

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

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

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

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

← Все задания