docs(design): добавлено описание активной проверки SCD2 для dim_routes
- Зачем: - необходимо гарантировать проверку логики SCD2 в учебном проекте, так как исходные данные статичны и не вызывают срабатывание SCD2 естественным образом. - Что: - добавлен раздел "Активная проверка SCD2" в дизайн задания (assignment_design.md). - описан алгоритм с использованием временных таблиц для тестирования закрытия старых и открытия новых версий записей. - Проверка: - визуальный осмотр обновленного раздела в docs/design/assignment_design.md.
This commit is contained in:
@@ -119,6 +119,29 @@ bookings_validate
|
||||
- Кросс-слойная консистентность (row count ODS vs STG)
|
||||
- DM-витрины содержат данные за загруженные дни
|
||||
|
||||
### Активная проверка SCD2 (`check_dim_routes_scd2`)
|
||||
|
||||
Справочник `bookings.routes` в демо-базе статичен — маршруты не меняются
|
||||
между запусками генератора. Поэтому при обычном прогоне пайплайна студент
|
||||
никогда не увидит, как SCD2 закрывает старую версию и создаёт новую.
|
||||
|
||||
Чтобы проверить корректность реализации, таск `check_dim_routes_scd2`
|
||||
должен быть **активным** (не только читать, но и тестировать загрузку):
|
||||
|
||||
1. Сохранить текущее состояние `ods.routes` и `dds.dim_routes` (temp-таблицы).
|
||||
2. Вставить в `ods.routes` тестовый маршрут с изменённым атрибутом
|
||||
(например, `scheduled_time` → `departure_time` сдвинут на 1 час).
|
||||
3. Вызвать студенческий SQL загрузки `dim_routes` (`sql/dds/dim_routes_load.sql`).
|
||||
4. Проверить результат:
|
||||
- Старая версия маршрута закрыта (`valid_to IS NOT NULL`).
|
||||
- Новая версия открыта (`valid_to IS NULL`, `hashdiff` отличается).
|
||||
- Нет «дыр» между `valid_to` старой и `valid_from` новой версии.
|
||||
5. Откатить изменения: восстановить `ods.routes` и `dds.dim_routes`
|
||||
из сохранённых temp-таблиц.
|
||||
|
||||
Это единственный способ гарантировать, что SCD2 работает, без мутации
|
||||
источника (что сломало бы генератор `continue()`).
|
||||
|
||||
---
|
||||
|
||||
## 5. Формат ТЗ от аналитика
|
||||
|
||||
Reference in New Issue
Block a user