Поделиться через


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

Службы SQL Server Integration Services предоставляют конфигурации пакетов, которые можно использовать для обновления значений свойств во время выполнения.

Замечание

Конфигурации доступны для модели развертывания пакетов. Параметры используются вместо конфигураций для модели развертывания проекта. Модель развертывания проекта позволяет развертывать проекты Integration Services на сервере Integration Services. Дополнительные сведения о моделях развертывания см. в разделе "Развертывание проектов и пакетов".

Конфигурация — это пара свойств и значений, добавляемая в завершенный пакет. Как правило, вы создаете свойства набора пакетов для объектов пакета во время разработки пакета, а затем добавляете конфигурацию в пакет. При запуске пакета он получает новые значения свойства из конфигурации. Например, с помощью конфигурации можно изменить строку подключения диспетчера соединений или обновить значение переменной.

Конфигурации пакетов предоставляют следующие преимущества:

  • Конфигурации упрощают перемещение пакетов из среды разработки в рабочую среду. Например, конфигурация может обновить путь исходного файла или изменить имя базы данных или сервера.

  • Конфигурации полезны при развертывании пакетов на многих разных серверах. Например, переменная в конфигурации для каждого развернутого пакета может содержать другое значение места на диске, а если доступное место на диске не соответствует этому значению, пакет не запускается.

  • Конфигурации делают пакеты более гибкими. Например, конфигурация может обновить значение переменной, которая используется в выражении свойства.

Службы Integration Services поддерживают несколько различных методов хранения конфигураций пакетов, таких как XML-файлы, таблицы в базе данных SQL Server, а также переменные среды и пакета.

Каждая конфигурация — это пара свойств и значений. XML-файл конфигурации и типы конфигураций SQL Server могут включать несколько конфигураций.

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

Общие сведения о применении конфигураций пакетов во время выполнения

При использовании служебной программы командной строки dtexec (dtexec.exe) для запуска развернутого пакета программа применяет конфигурации пакетов дважды. Программа применяет конфигурации как до, так и после применения параметров, указанных в командной строке.

По мере загрузки и запуска пакета в служебной программе события происходят в следующем порядке:

  1. Программа dtexec загружает пакет.

  2. Программа применяет конфигурации, которые были указаны в пакете во время разработки и в порядке, указанном в пакете. (Одним из исключений является конфигурация родительских переменных пакетов. Эта программа применяет эти конфигурации только один раз и позже в процессе.)

  3. Затем программа применяет все параметры, указанные в командной строке.

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

  5. Программа применяет конфигурации переменных родительского пакета.

  6. Программа запускает пакет.

Способ применения служебной программы 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, используйте раздел реестра форматирования <\rтега egistry\...> для идентификации ключа. Например, чтобы использовать ключ 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-файл конфигурации.

Косвенные конфигурации используют переменные среды. Вместо прямого указания параметра конфигурации конфигурация указывает на переменную среды, которая, в свою очередь, содержит значение конфигурации. Использование непрямых конфигураций является лучшим выбором, если расположение конфигурации может измениться для каждого развертывания пакета.

Создание конфигураций пакетов