SSIS, как установить строку соединения динамически из файла конфигурации
Я использую службы интеграции SQL Server (SSIS) в SQL Server Business Intelligent Development Studio.
Мне нужно выполнить следующую задачу. Я должен читать из исходной базы данных и помещать ее в плоский файл назначения. Но в то же время исходная база данных должна быть конфигурируемой.
Это означает, что в OLEDB Connection Manager строка подключения должна динамически меняться. Эта строка подключения должна быть взята из файла конфигурации /XML/flat.
Я читал, что могу использовать переменные и выражения для динамического изменения строки подключения. Но как я могу прочитать значение строки соединения из файла config/XML/flat и установить переменную?
Эта часть, которую я не могу сделать. Правильно ли это для этого? Можем ли мы добавить файлы web.config в проект SSIS?
Ответы
Ответ 1
Сначала добавьте переменную в ваш пакет SSIS (область пакета). Я использовал FileName, OleRootFilePath, OleProperties, OleProvider. Тип для каждой переменной - "строка". Затем я создаю файл конфигурации (выберите каждую переменную - значение) - заполняйте значения в файле конфигурации - например: для OleProperties - Microsoft.ACE.OLEDB.12.0; для OleProperties - Excel 8.0; HDR =, OleRootFilePath - путь к файлу Excel, имя_файла - имя_файла
В диспетчере соединений - я затем динамически устанавливаю выражение Строка- > Выражения- > Соединение, например:
"Provider=" + @[User::OleProvider] + "Data Source=" + @[User::OleRootFilePath]
+ @[User::FileName] + ";Extended Properties=\"" + @[User::OleProperties] + "NO \""+";"
Таким образом, как только вы установите значения переменных и измените их в своем файле конфигурации - строка подключения будет динамически изменяться - это особенно помогает перейти от разработки к производственным средам.
Ответ 2
Некоторые параметры:
-
Вы можете использовать Execute Package Utility, чтобы изменить свой источник данных, прежде чем запускать пакет.
-
Вы можете запустить свой пакет с помощью DTEXEC и изменить свое соединение, передав параметр a/CONNECTION. Вероятно, сохраните его как пакет, поэтому в следующий раз вам не нужно вводить все это и просто изменять источник данных по мере необходимости.
-
Вы можете использовать файл конфигурации SSIS XML . Вот пройти.
-
Вы можете сохранить свои конфигурации в таблице базы данных.
Ответ 3
Вот некоторые сведения о механизме, который вы должны использовать, называемые конфигурациями пакетов: Общие сведения о конфигурациях пакетов служб Integration Services.
В статье описаны 5 типов конфигураций:
- Файл конфигурации XML
- Переменная среды
- Запись в реестре
- Переменная родительского пакета
- SQL Server
Здесь вы найдете руководство по настройке диспетчера подключений: Настройка пакета служб SSIS для служб SQL Server - Я понимаю, что это использование переменная среды для строки подключения (не очень хорошая идея), но основы идентичны использованию XML файла. Единственный шаг (ы), который вы должны изменить в этом пошаговом руководстве, - это тип конфигурации, а затем путь.
Ответ 4
Перейти к свойствам пакета- > Конфигурации- > Включить конфигурации пакетов- > Добавить- > файл конфигурации xml- > Определить файл dtsconfig- > click next- > В свойствах OLEDB пометить строку подключения- > значение строки подключения будет отображаться- > затем нажмите далее и завершите пакет.
Вы также можете добавить переменную среды в этот процесс
Ответ 5
Эти ответы правильные, но старые и работают для Depoloyement Package Model
.
Мне действительно нужно изменить имя сервера, имя базы данных диспетчера соединений, и я нашел это очень полезным:
https://www.youtube.com/watch?v=_yLAwTHH_GA
Лучше для людей, использующих SQL Server 2012-2014-2016... с помощью Deployment Project Model