Конфигурации пакетов
Службы SQL Server Integration Services содержат конфигурацию пакетов, которую можно использовать для обновления значений свойств во время выполнения.
Примечание
Доступны конфигурации для модели развертывания пакетов. Для моделей развертывания проектов вместо конфигураций используются параметры. Модель развертывания проектов позволяет развертывать проекты Integration Services на сервере Integration Services. Дополнительные сведения о моделях развертывания см. в разделе Deployment of Projects and Packages.
Конфигурация представляет собой пару вида «свойство-значение», которая добавляется к завершенному пакету. Обычно свойства пакета устанавливаются в объектах пакета во время его разработки, а затем к пакету добавляется конфигурация. При выполнении пакета он получает новые значения свойств из конфигурации. Например, с помощью конфигурации можно изменить строку соединения в диспетчере соединений или обновить значение переменной.
Конфигурации пакета дают следующие преимущества.
Конфигурации облегчают перенос пакетов из среды разработки в рабочую среду. Например, конфигурация может обновить путь к исходному файлу или изменить имя базы данных или сервера.
Конфигурации полезны при развертывании пакетов на множестве разных серверов. Например, переменная в конфигурации каждого развернутого пакета может иметь различное значение места на диске; если доступное место на диске не соответствует этому значению, данный пакет не запускается.
Конфигурации делают пакеты более гибкими. Например, конфигурация может обновить значение переменной, используемой в выражении свойства.
Службы Integration Services поддерживают несколько разных методов хранения конфигураций пакетов, таких как XML-файлы, таблицы в базе данных SQL Server, переменные среды и пакета.
Каждая конфигурация является парой вида «свойство-значение». XML-файл конфигурации и типы конфигурации SQL Server могут включать несколько конфигураций.
Конфигурации включаются при создании программы развертывания для установки пакетов. При установке пакета обновление конфигураций может быть одним из этапов установки.
Основные сведения о применении параметров конфигурации пакетов во время выполнения
Если для выполнения развернутого пакета используется программа командной строки dtexec (dtexec.exe), эта программа применяет параметры конфигурации пакета дважды. до и после применения настроек, указанных в командной строке.
Когда программа загружает и выполняет пакет, события происходят в следующем порядке.
Программа dtexec загружает пакет.
Программа применяет параметры конфигурации, заданные в пакете во время разработки, в порядке, который указан в пакете. (Единственным исключением являются конфигурации переменных родительского пакета. Служебная программа применяет эти конфигурации только один раз и позже в процессе.)
Затем программа применяет параметры, указанные в командной строке.
Затем программа повторно загружает параметры конфигурации, заданные в пакете во время разработки, в порядке, который указан в пакете. (Исключением из этого правила вновь являются параметры конфигурации переменных родительского пакета.) Программа применяет указанные параметры командной строки для повторной загрузки параметров конфигурации. Поэтому возможна повторная загрузка различных значений из различных расположений.
Программа применяет параметры конфигурации переменных родительского пакета.
Программа выполняет пакет.
Способ, которым программа dtexec применяет параметры конфигурации, влияет на следующие параметры командной строки:
Во время выполнения можно использовать параметр /Connection или /Set , чтобы загрузить параметры конфигурации пакета из расположения, отличного от указанного во время разработки.
С помощью параметра /ConfigFile можно загрузить дополнительные конфигурации, не указанные во время разработки.
Однако к этим параметрам командной строки применяются некоторые ограничения.
Нельзя использовать параметр /Set или /Connection для переопределения единичных значений, которые также задаются конфигурацией.
Нельзя использовать параметр /ConfigFile для загрузки конфигураций, которые заменяют параметры, указанные во время разработки.
Дополнительные сведения об этих параметрах и о том, как их поведение отличается в SQL Server 2014 Integration Services (SSIS) и более ранних версиях, см. в статье Изменения поведения в функциях служб Integration Services в SQL Server 2014.
Типы конфигураций пакета
Следующая таблица описывает типы конфигураций пакета.
Тип | Описание |
---|---|
XML-файл конфигурации | XML-файл содержит конфигурации. XML-файл может включать несколько конфигураций. |
Переменная среды | Переменная среды содержит конфигурацию. |
Параметр реестра | Параметр реестра содержит конфигурацию. |
Переменная родительского пакета | Переменная пакета содержит конфигурацию. Этот тип конфигурации обычно используется для обновления свойств вызываемых пакетов. |
Таблица SQL Server | Таблица в базе данных SQL Server содержит конфигурацию. Таблица может включать несколько конфигураций. |
XML-файлы конфигурации
Выбрав тип конфигурации XML-файл конфигурации , можно создать новый файл конфигурации, использовать существующий и добавить новые конфигурации или использовать существующий и перезаписать его содержимое.
XML-файл конфигурации содержит следующие два раздела.
Заголовок, содержащий сведения о файле конфигурации. Этот элемент включает атрибуты, такие как дата создания файла и имя создателя файла.
Элементы конфигурации, содержащие сведения о каждой конфигурации. Этот элемент включает атрибуты, такие как путь свойства и заданное значение свойства.
Следующий программный код на языке XML показывает синтаксис XML-файла конфигурации. В этом примере показана конфигурация свойства Value для целочисленной переменной с именем MyVar
.
<?xml version="1.0"?>
<DTSConfiguration>
<DTSConfigurationHeading>
<DTSConfigurationFileInfo
GeneratedBy="DomainName\UserName"
GeneratedFromPackageName="Package"
GeneratedFromPackageID="{2AF06766-817A-4E28-9878-0DE37A150648}"
GeneratedDate="2/01/2005 5:58:09 PM"/>
</DTSConfigurationHeading>
<Configuration ConfiguredType="Property" Path="\Package.Variables[User::MyVar].Value" ValueType="Int32">
<ConfiguredValue>0</ConfiguredValue>
</Configuration>
</DTSConfiguration>
Параметр реестра
Если для хранения конфигурации нужно использовать параметр реестра, то можно либо использовать существующий раздел, либо создать новый подраздел в разделе HKEY_CURRENT_USER. Используемый раздел реестра должен иметь значение с именем Value
. Значение может иметь строковый тип или тип DWORD.
Если выбран тип конфигурации Запись реестра , необходимо ввести имя раздела реестра в соответствующее поле. Формат — <раздел реестра>. Если вам нужно использовать раздел реестра, корневым разделом которого является не HKEY_CURRENT_USER, для его определения используйте формат <Раздел реестра\раздел реестра\...> Например, чтобы использовать раздел MyPackage, расположенный в разделе SSISPackages, введите SSISPackages\MyPackage
.
SQL Server
При выборе типа конфигурации SQL Server устанавливается подключение к базе данных SQL Server, в которой необходимо хранить конфигурации. Можно сохранить конфигурации в существующей таблице или создать новую в указанной базе данных.
Следующая инструкция SQL показывает применяемую по умолчанию инструкцию CREATE TABLE, которую предоставляет мастер настройки пакета.
CREATE TABLE [dbo].[SSIS Configurations]
(
ConfigurationFilter NVARCHAR(255) NOT NULL,
ConfiguredValue NVARCHAR(255) NULL,
PackagePath NVARCHAR(255) NOT NULL,
ConfiguredValueType NVARCHAR(20) NOT NULL
)
Имя, задаваемое для конфигурации, является значением, которое хранится в столбце ConfigurationFilter .
Прямые и косвенные конфигурации
Службы Integration Services предоставляют прямые и косвенные конфигурации. Если задать конфигурации напрямую, службы Integration Services создадут прямую связь между элементом конфигурации и свойством объекта пакета. Прямые конфигурации используются в том случае, когда местоположение источника не меняется. Например, если пользователь уверен, что все развертываемые элементы пакета используют один и тот же путь к файлу, можно задать XML-файл конфигурации.
Косвенные конфигурации используют переменные среды. Конфигурация указывает на переменную среды, содержащую значение конфигурации, вместо задания значения конфигурации напрямую. Использовать косвенные конфигурации лучше в случае, когда местоположение конфигурации меняется для каждого развертываемого пакета.
Связанные задачи
См. также
Техническая статья Understanding Integration Services Package Configurations(Основные сведения о конфигурации пакетов служб Integration Services) на сайте msdn.microsoft.com.
Запись блога Создание пакетов в коде — конфигурации пакетов на www.sqlis.com.
Запись в блоге Пример API. Программное добавление файла конфигурации в пакет на blogs.msdn.com.