Продолжение. Логика версионной загрузки.

Загрузка данных во временной ряд (ВР) ХД. По сути это загрузка в одну таблицу в бд.   Одна строка временного ряда состоит из фактов и измерений. Есть ключевые измерения, есть измерения которые не входят в ключ, это атрибут. Все это поля одной таблицы. Каждая строка в таблице имеет поле для уникальности записи - это поле состоит из ключевых измерений, версии записи, признак утвержденной записи, признак последней утвержденной записи, айди загрузки.  Загрузка:   Загружаем запись0 из csv Доверенный источник 1.  В ВР уже есть утвержденная версия записи с другим фактом – запись1 (последняя) Для записи1 нужно сделать update – признакПоследнейУтвержденнойЗаписи=0 Запись0 добавляем в ВР, при этом признакПоследнейУтвержденнойЗаписи=1 Version=version из записи1 + 1 признакУтвержденнойЗаписи=’1.1.0……..’ айдиЗагрузки=новый айдиЗагрузки 2.  В ВР уже есть утвержденная версия записи с таким же фактом – запись1 (последняя), но с другим атрибутом (измерение не входящее в ключ). В записи1: айдиЗагрузки=новый айдиЗагрузки Atribute = attribute из записи 0 3.  В ВР уже есть утвержденная версия записи с таким же фактом – запись1 (последняя) В записи1: айдиЗагрузки=новый айдиЗагрузки 4.   В ВР есть неутвержденная версия записи запись1 (последняя) Для записи1 нужно сделать update – признакПоследнейУтвержденнойЗаписи=1 признакУтвержденнойЗаписи=’1.1.0……..’ Fact=fact из записи0 айдиЗагрузки=новый айдиЗагрузки 5.  В ВР нет предыдущих версий записи Запись0 добавляем в ВР, при этом признакПоследнейУтвержденнойЗаписи=1 Version=1 признакУтвержденнойЗаписи=’1.1.0……..’ айдиЗагрузки=новый айдиЗагрузки

Загружаем запись0 из csv недоверенный источник

1.  В ВР уже есть утвержденная версия записи с другим фактом – запись1 (последняя) Запись0 добавляем в ВР, при этом признакПоследнейУтвержденнойЗаписи=0 Version=version из записи1 + 1 признакУтвержденнойЗаписи=’1.0.0……..’ айдиЗагрузки=новый айдиЗагрузки

2.  В ВР уже есть утвержденная версия записи с таким же фактом – запись1 (последняя), но с другим атрибутом (измерение не входящее в ключ). В записи1: айдиЗагрузки=новый айдиЗагрузки Atribute = attribute из записи 0 3.  В ВР уже есть утвержденная версия записи с таким же фактом – запись1 (последняя) В записи1: айдиЗагрузки=новый айдиЗагрузки 4.  В ВР есть неутвержденная версия записи запись1 (последняя) Для записи1 нужно сделать update – признакПоследнейУтвержденнойЗаписи=0 признакУтвержденнойЗаписи=’1.0.0……..’ Fact=fact из записи0 айдиЗагрузки=новый айдиЗагрузки 5.  В ВР нет предыдущих версий записи Запись0 добавляем в ВР, при этом признакПоследнейУтвержденнойЗаписи=0 Version=1 признакУтвержденнойЗаписи=’1.0.0……..’ айдиЗагрузки=новый айдиЗагрузки