Мы перераспределяли наши данные несколько раз, когда мы переходили с SCD2 / SCD1 на SCD6 или обнаружили ошибки в одном из потоков данных, как вы упомянули.
Нетрудно переназначить ваши данные, вам просто нужно сделать их перед тем, как обрезать свои данные на шаге INIT, чтобы клонировать их (или клонировать в окне перемещения во времени), а затем присоединить таблицу фактов к старому измерению на старый ключ измерения, а затем присоедините к вам новое измерение через внешний ключ и время старого измерения, теперь вы знаете старый ключ для сопоставления нового ключа. Теперь это становится источником вашего обновления, и если вы сделаете это, одна из операций со всеми другими ETL-операциями будет приостановлена, вы сохраните целостность данных.
Если вы не можете приостановить активные процессы ETL, вы сделаете многоэтапное обновление, в котором у вас есть новая таблица деления и старая живая, и вы выполните обычное сопоставление с обоими, и исправите свои чтения, чтобы объединить результаты, а затем один раз ваши новые факты корректно отображаются в новом измерении, разверните и заполните все старые факты ключами ND, и тогда у вас не будет пробелов ND, затем вы можете остановить объединение OD / ND, а затем остановить отображение и сброс OD колонка OD ...