Кронверк Дата · Заметки
Заметки / DWH

Чек-лист миграции хранилища данных

DWH · 7 мин чтения

Миграция хранилища почти никогда не сводится к переносу таблиц. Основные риски лежат в зависимостях, о которых никто не помнит, и в расхождениях данных, которые обнаруживаются уже после переключения отчётности. Ниже — порядок работ, который мы используем как отправную точку.

1. Инвентаризация

Соберите полный список объектов: таблицы, представления, процедуры, регламентные задания, внешние выгрузки. Для каждого объекта зафиксируйте владельца, источник, частоту обновления и потребителей. Лучший источник правды — журнал запросов за последние 2–3 месяца: он показывает, что используется на самом деле.

2. Контракт данных

До начала переноса договоритесь о типах, кодировках, часовых поясах и правилах округления. Различия в работе с NULL, пустыми строками и временными метками — самая частая причина расхождений между старой и новой платформой.

3. Сверки

Сверка строится на трёх уровнях: количество строк, контрольные суммы по ключевым показателям и выборочная сверка записей. Пример контрольного запроса:

SELECT report_date,
       count(*)              AS rows_cnt,
       sum(amount)           AS amount_sum,
       count(DISTINCT client_id) AS clients
FROM mart.sales_daily
WHERE report_date >= current_date - 30
GROUP BY report_date
ORDER BY report_date;

Одинаковый запрос выполняется на обеих платформах, результаты сравниваются автоматически. Допустимые отклонения фиксируются заранее, а не во время приёмки.

4. Параллельный прогон

Минимум один полный отчётный цикл — обычно месяц — старая и новая платформы работают одновременно. Пользователи ключевых отчётов получают доступ к новой версии и подтверждают совпадение цифр.

5. Переключение и откат

План отката пишется до переключения: сколько времени старая платформа остаётся в режиме только чтения, как вернуть потоки загрузки, кто принимает решение. Переключать лучше в начале недели, а не перед закрытием периода.