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)
|
- Кросс-слойная консистентность (row count ODS vs STG)
|
||||||
- DM-витрины содержат данные за загруженные дни
|
- 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. Формат ТЗ от аналитика
|
## 5. Формат ТЗ от аналитика
|
||||||
|
|||||||
Reference in New Issue
Block a user