Вопрос не очень понятен.Я попытаюсь ответить на основании того, что я «думаю» вы спрашиваете, но было бы лучше убедиться, что вопрос кристально ясен для людей, незнакомых с данными, и предоставить образцы данных.
Я думаю, что вы спрашиваете,необходимо загружать записи в таблицу измерений для записей, которые загружаются в таблицу фактов, в то же время загружается таблица фактов.
Обычно элементы измерения загружаются в таблицу измерений перед загрузкойданные в таблицу фактов.Просто так проще сделать, если это вообще возможно.Шаги, которые я бы использовал в следующем порядке:
- загрузить измерение с любыми новыми элементами в его собственной хранимой процедуре.Это гарантирует, что теперь у вас есть суррогатный ключ для любых новых участников.сделайте это для всех измерений.
- Создайте 2-ю хранимую процедуру для загрузки таблицы фактов.соедините промежуточную таблицу с таблицами измерений, чтобы получить суррогатные ключи.В приведенном ниже коде показан пример для одного измерения, но при необходимости можно сделать больше соединений с большим количеством измерений.
Приведенный ниже код заполняет образец измерения и таблицу factStaging искусственными данными, чтобы показать, как затем получить суррогат.ключ и данные для вставки в таблицу фактов.
create table #factstaging
(
dimension1Value nvarchar(20),
factmeasure1 int,
factmeasure2 int
)
create table #dimension1
(
ID int identity(1,1),
dimension1Value nvarchar(20)
)
insert into #dimension1
values
('d1 value 1'),
('d1 value 2'),
('d1 value 3')
insert into #factstaging
values
('d1 value 1',22,44),
('d1 value 1',22,44),
('d1 value 2',22,44),
('d1 value 3',22,44)
--contents of stored procedure to insert fact rows
select d1.ID as Dimension1SurrogateKey, s.factmeasure1,s.factmeasure2
from #factStaging s
join #dimension1 d1 on s.dimension1Value = d1.dimension1Value
Примечание:
- Ваши данные должны быть чистыми.
- , если факты поступают доданные измерений, шаблон будет другим, и нужно использовать что-то вроде шаблона измерения с поздним прибытием, который намного сложнее.