Обновление базы данных отчетов - PullRequest
1 голос
/ 30 сентября 2010

В настоящее время у нас есть база данных OLTP sql server 2005 для нашего проекта. Мы планируем создать отдельную базу данных отчетов (ненормализованную), чтобы мы могли снять нагрузку с нашей базы данных OLTP. Я не совсем уверен, что является лучшим подходом для синхронизации этих баз данных. Мы не ищем систему реального времени, хотя. Является ли SSIS хорошим вариантом? Я абсолютно новичок в SSIS, поэтому не уверен насчет осуществимости. Пожалуйста, предоставьте ваш вклад.

Ответы [ 2 ]

0 голосов
/ 04 ноября 2010

Мы строим наше хранилище данных, используя SSIS, из которого мы запускаем отчеты.Это большая кривая обучения, и ошибки, которые он выдает, не особенно полезны, и это помогает хорошо разбираться в SQL, а не рассматривать его как «построчную передачу» - я имею в виду, что вы должны создавать запросы на основе множеств вЗадачи команды sql вместо использования большого количества компонентов служб SSIS и задач потока данных.

Поймите, что каждый склад отличается, и вам нужно решить, как это сделать лучше всего. Эта ссылка может дать вам несколько хороших идей.

Как мы реализуем нашу (у нас есть серверная часть postgres и мы используем провайдера PGNP, а использование связанных серверов может облегчить вашу жизнь):

Прежде всего вам нужно иметь столбец метки времени в каждой таблице, чтобы вы могли, когда он был последний раз изменен.

Затем напишите запрос, который выбирает данные, которые изменились с момента вашего последнего запускапакет (с помощью таблицы аудита поможет) и получить эти данные в промежуточную таблицу.Мы запускаем это как задачу потока данных, так как (используя postgres) у нас нет другого выбора, хотя вы можете использовать обычную ссылку на другую базу данных (dbname.schemaname.tablename или что-то в этом роде) или использоватьзапрос связанного сервера.В любом случае идея одинакова.В результате вы получите данные, которые изменились с момента запроса.

Затем мы обновляем (на основе идентификатора) данные, которые уже существуют, затем вставляем новые данные (оставляя соединение с таблицей слева, чтобы узнать, чего еще нет).существует на текущем складе).

Так что теперь у нас есть одна денормализованная таблица, которая показывает в этом случае задания в день.Из этого мы вычисляем другие таблицы на основе агрегированных значений из этой.

Надеюсь, это поможет, вот несколько полезных ссылок, которые я нашел полезными:

Выбор .Net или SSIS

SSIS Talk

Конфигурации пакета

Повышение производительности потока данных

Trnsformations

Пользовательские журналы / Хороший блог

0 голосов
/ 30 сентября 2010

У каждого свое мнение об SSIS.Но я использовал его в течение многих лет для дата-маркетов и моей текущей среды, которая является полной установкой BI.Мне лично очень нравятся его возможности по перемещению данных, и он по-прежнему удерживает мировой рекорд по перемещению 1,13 терабайта менее чем за 30 минут.

Что касается настройки, мы используем доставку журналов из нашей транзакционной БД для заполнения второго поля.Затем используйте SSIS для нормализации и хранения данных.Сообщество служб SSIS также очень большое, и в Интернете есть множество бесплатных обучающих и полезных ресурсов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...