Мы строим наше хранилище данных, используя SSIS, из которого мы запускаем отчеты.Это большая кривая обучения, и ошибки, которые он выдает, не особенно полезны, и это помогает хорошо разбираться в SQL, а не рассматривать его как «построчную передачу» - я имею в виду, что вы должны создавать запросы на основе множеств вЗадачи команды sql вместо использования большого количества компонентов служб SSIS и задач потока данных.
Поймите, что каждый склад отличается, и вам нужно решить, как это сделать лучше всего. Эта ссылка может дать вам несколько хороших идей.
Как мы реализуем нашу (у нас есть серверная часть postgres и мы используем провайдера PGNP, а использование связанных серверов может облегчить вашу жизнь):
Прежде всего вам нужно иметь столбец метки времени в каждой таблице, чтобы вы могли, когда он был последний раз изменен.
Затем напишите запрос, который выбирает данные, которые изменились с момента вашего последнего запускапакет (с помощью таблицы аудита поможет) и получить эти данные в промежуточную таблицу.Мы запускаем это как задачу потока данных, так как (используя postgres) у нас нет другого выбора, хотя вы можете использовать обычную ссылку на другую базу данных (dbname.schemaname.tablename или что-то в этом роде) или использоватьзапрос связанного сервера.В любом случае идея одинакова.В результате вы получите данные, которые изменились с момента запроса.
Затем мы обновляем (на основе идентификатора) данные, которые уже существуют, затем вставляем новые данные (оставляя соединение с таблицей слева, чтобы узнать, чего еще нет).существует на текущем складе).
Так что теперь у нас есть одна денормализованная таблица, которая показывает в этом случае задания в день.Из этого мы вычисляем другие таблицы на основе агрегированных значений из этой.
Надеюсь, это поможет, вот несколько полезных ссылок, которые я нашел полезными:
Выбор .Net или SSIS
SSIS Talk
Конфигурации пакета
Повышение производительности потока данных
Trnsformations
Пользовательские журналы / Хороший блог