Data lineage: отследить влияние изменения в источнике

medium data_engineering Общие

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

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

**Контекст:** Источник данных (операционная система) планирует переименовать поле `client_id` в `customer_id`. Нужно оценить влияние этого изменения на все downstream-объекты в DWH.

**Структура DWH:**

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

**Задание:**
1. Напишите SQL-запрос для поиска всех объектов, зависящих от поля `client_id`
2. Составьте план миграции с минимальным downtime
3. Предложите структуру таблицы метаданных для отслеживания data lineage

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

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

CREATE TABLE data_lineage (
    lineage_id SERIAL PRIMARY KEY,
    source_schema VARCHAR(100),
    source_table VARCHAR(200),
    source_column VARCHAR(200),
    target_schema VARCHAR(100),
    target_table VARCHAR(200),
    target_column VARCHAR(200),
    transformation VARCHAR(500),     -- например, 'CAST AS INT', 'UPPER()'
    etl_job VARCHAR(200),            -- имя DAG/скрипта
    updated_at TIMESTAMP DEFAULT NOW()
);

-- Пример записей
INSERT INTO data_lineage VALUES
(DEFAULT, 'src', 'src_clients', 'client_id', 'stg', 'stg_clients', 'client_id', 'direct copy', 'dag_stg_clients', NOW()),
(DEFAULT, 'stg', 'stg_clients', 'client_id', 'dwh', 'dim_customer', 'customer_id', 'rename', 'dag_dim_customer', NOW()),
(DEFAULT, 'dwh', 'dim_customer', 'customer_sk', 'mart', 'mart_orders', 'customer_sk', 'FK join', 'dag_mart_orders', NOW());

Темы

data lineage зависимости impact analysis документация

Подсказки

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

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

Какой уровень знаний нужен для задачи "Data lineage: отследить влияние изменения в источнике"?

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

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

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

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

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

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

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

← Все задания