2013-02-27 7 views
1

Фон:Server1 имеет источник db с 4 таблицами. Server2 - это пункт назначения с этими 4-5 таблицами (и некоторыми дополнительными полями). Перед перемещением данных с Server1 на Server2 у нас есть сопоставление полей и некоторая дополнительная обработка (т. Е. Усечение, concate, ...). У нас есть 4 независимых пакета dtsx - по одному для каждого, и есть SQL-задание, которое вызывает каждый пакет dtsx в последовательности один за другим.Поделитесь общим удаленным подключением db через несколько независимых пакетов dtsx

Платформа: SQL 2005 & SSIS 2005

Теперь, как вы могли догадаться, каждый dtsx пакет будет реплицировать "источник" и " назначения" DB соединение в менеджере соединений. Когда мы меняем любую настройку в удаленном пункте назначения db, мы должны изменить соединение в . Каждый dtsx - каковы варианты сохранения удаленного соединения db информации в одном месте?

Here're некоторые я знаю -

  1. Создать родительский dtsx, который будет вызывать каждый из 4 dtsx в последовательности (так же, как это было сделано в работе) и передать переменную соединения, определенные в этом (родительский) пакет (Example). Но это означало бы один шаг пакета dtsx в задании, который не позволяет легко отлаживать его в будущем (в настоящее время мы можем легко определить, какой шаг завершился неудачно - так, в какой таблице/dtsx есть проблемы)

  2. Немного традиционный но работает - используя синонимы базы данных. Мы уже используем синонимы для некоторых удаленных таблиц в SP сравнения данных. Если я создам 4 новых синонима - по одному для каждой удаленной таблицы. Я могу ссылаться на эти таблицы непосредственно в dtsx по их синониму. Позже, в случае каких-либо изменений - мне нужно изменить и повторно запустить скрипт, который будет падение и повторно создать синонимы (я могу сделать это удаленно, как хорошо!)

я просто dtsx проектирование и программирование так простите мои знания и дайте мне знать наилучший подход.

ответ

1

То, что вы ищете, это Package Configurations.

В основном, значение конфигурации просто сохраняется пара ключ/значение некоторого свойства в SSIS (например, строка подключения вашего менеджера Соединения.)

Вы можете хранить его в различных форматах (см ссылку) - Я лично использую файлы XML, так как у меня есть команда поддержки, которая обрабатывает развертывание, и они «получают» файлы.

Затем каждый пакет просто ссылается на этот XML-файл в его собственных конфигурациях. При запуске пакета он будет использовать значение строки соединения для этой связи, так что каждый пакет будет использовать то, что в файле XML

Основные шаги (или любой другой конфигурации формата, который вы выбираете.):

  1. Создайте соединение в пакете.
  2. В разделе SSIS -> Конфигурации пакетов выберите «Включить конфигурацию пакета», выберите «Добавить ..», выберите нужный формат, выберите свойство строки подключения, сохраните конфигурацию.
  3. В остальных 3 пакетах перейдите в ту же область, выберите« Добавить .. »и на этот раз перейдите к созданной вами конфигурации, он будет просить вас, чтобы перезаписать значения в той конфигурации, с тем, что в пакете или повторное использование существующего (то есть держать вас уже созданную стоимость) - выберите Повторное использование существующего имя, сохраните его

Проверьте ссылку из.. выше для получения дополнительной информации, это то, что вы хотите.

+0

Спасибо за быстрый ответ. Выглядит хорошо, но работает ли он также для SSIS 2005? Я нашел - http://www.sqlservercentral.com/Forums/Topic664110-148- 1.aspx (6-й комментарий говорит, что h как проблемы). Есть идеи? –

+1

Я использовал его в SSIS 2005 без проблем, но, конечно, я настоятельно рекомендую вам экспериментировать и видеть сам. –

+0

Дайте мне немного времени, чтобы проверить это, и я могу сообщить вам. Но вы уверены, что этот подход будет лучше, чем подход синонимов. Я смогу иметь общий файл конфигурации, в котором хранится удаленная строка привязки db, которую я могу получить в переменной, назначающей соединение в каждом пакете dtsx. Верный? –