Инкрементальная загрузка по дате

easy data_engineering Общие

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

**Компания:** Тинькофф

**Контекст:** Таблица транзакций в источнике растёт на 5 млн строк в день. Полная перезаливка каждый раз — слишком дорого. Нужно реализовать инкрементальную загрузку.

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

**Задание:**
1. Напишите SQL для инкрементальной загрузки новых и обновлённых записей
2. Обновите watermark после успешной загрузки
3. Объясните, почему нужен updated_at, а не только created_at

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

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

-- Получить watermark
WITH wm AS (
    SELECT COALESCE(last_loaded_at, '1970-01-01') AS wm_ts
    FROM etl_watermarks
    WHERE table_name = 'dwh_transactions'
)
INSERT INTO dwh_transactions (txn_id, account_id, amount, txn_type, created_at, updated_at, loaded_at)
SELECT txn_id, account_id, amount, txn_type, created_at, updated_at, NOW()
FROM src_transactions, wm
WHERE updated_at > wm.wm_ts
ON CONFLICT (txn_id) DO UPDATE SET
    account_id = EXCLUDED.account_id,
    amount = EXCLUDED.amount,
    txn_type = EXCLUDED.txn_type,
    updated_at = EXCLUDED.updated_at,
    loaded_at = NOW();

Темы

incremental load ETL watermark инкремент

Подсказки

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

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

Какой уровень знаний нужен для задачи "Инкрементальная загрузка по дате"?

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

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

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

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

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

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

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

← Все задания