Подтвердить что ты не робот

Переменные SSIS и параметры (SSIS Denali)

  • В чем разница между переменными и параметрами в SSIS Denali?
  • Если есть какая-либо разница, то что из того, что переменные не могут сделать, могут выполнять параметры? или наоборот.
  • Когда нужно идти с параметрами и переменными SSIS?

Я попытался выполнить поиск в Google, но мне не удалось получить некоторую информацию.

Спасибо в ожидании!

4b9b3361

Ответ 1

Я думаю, что немного фона будет полезно понять концепцию Parameter. Здесь я объясню это в контексте сравнения с переменными. Чтобы полностью понять концепцию Parameter, вам может потребоваться найти новую модель развертывания проекта, среду, конфигурацию сборки.

Использование переменной

С SSIS до 2012 года, если нам нужно передать любые внешние значения в пакет перед выполнением (как и все мы делаем все время), я обычно использую файл конфигурации (или пару других способов). Скажем, у нас есть файловый сервер, который будет использоваться для доступа к общему файлу, я буду использовать переменную для хранения имени сервера и выставить эту переменную в файл конфигурации. Если фактический файловый сервер изменен (dev env для проверки env и т.д.), Нам просто нужно изменить значение этой переменной в файле конфигурации, а пакет SSIS останется нетронутым.

Все выглядело хорошо, но есть пара вещей, которые я всегда задаю себе, почему и не мог понять, почему:

  • В 100% случаев, когда я подвергаю переменные конфигурационному файлу, я просто раскрываю свойства "Значение". Почему SSIS позволяет выставлять все другие свойства переменной?

  • Почему SSIS не имеет переменной "private"? Под "private" я имею в виду, когда я выбрал переменные для настройки, "private" только не отображались в списке выбора. У пакета SSIS могут быть десятки переменных, для внутренних держателей стоимости, какой смысл их раскрывать? Почему мне приходится прокручивать весь путь, чтобы найти единственный, который мне нужно выставить?

Новая модель развертывания проекта

В SSIS 2012 представлена ​​новая модель развертывания, модель развертывания проекта. Короче говоря, эта модель развертывает проект SSIS как единое целое для каталога SSIS SQL Server, а конфигурация пакета НЕ доступна в этой модели (она доступна в старой модели, на которую ссылается модель развертывания пакета, с SSIS 2012 вы можете выбрать, какой из них использовать, 2012 по умолчанию для новой модели).

Если мы хотим передать некоторые значения в пакеты SSIS, мы должны передать их через Параметры и использовать SSIS-каталог в SSMS для настройки значения параметров (только значение, ничего другого, что мы можем настроить). Параметры и диспетчеры подключений автоматически отображаются в каталоге SSIS, который может быть настроен, ничто ранее недоступное через конфигурационные файлы не может быть настроено в модели развертывания проекта (мир намного чище). Внутри пакета SSIS параметры могут использоваться так же, как переменные с точки зрения создания выражений. Однако параметры не могут быть изменены в пакете SSIS, что имеет смысл. (Почему нам нужно изменить значение, которое передается из внешнего? Если нужно, передайте значение переменной и сделайте там изменения..)

Сумма вверх

Параметр доступен только в модели развертывания проекта, и он обеспечивает единственный механизм передачи значений из внешних пакетов SSIS в этой модели. Если мы считаем, что SSIS pacakge как класс OO, параметры можно рассматривать как общедоступные свойства, которые внешние могут получать и присваивать ему значение (сам класс может/будет использовать его, но не может его изменить). Если переменные можно рассматривать как частные переменные, которые используются внутри страны, внешний мир не должен знать об этом.

Для старой модели развертывания пакетов нет параметра, и мир остается тем же.

Ответ 2

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

Ответ 3

Переменные и параметры аналогичны тем, которые есть в java, мы передаем/через некоторые значения определенному методу/задаче в виде параметров и используем их в этой конкретной задаче, мы не можем изменить эти значения, так как они являются внешними для этого метода аналогично в службах SSIS параметры проекта используются для динамической установки определенных переменных или соединений в пакете. где переменные ограничены внутренним уровнем пакета.

Ответ 4

Это работает так: скажем, у вас есть параметр проекта с именем ServerName:

Допустим, вы развертываете пакет служб SSIS в двух средах каталога интеграции, одна из которых настроена для prod-сервера, а другая - для тестового сервера:

Тогда ваш параметр "ServerName" будет установлен в prod с адресом сервера prod и в тестовой среде, чтобы содержать адрес тестового сервера. Если какая-либо переменная в вашем пакете ssis требует значения времени выполнения (скажем, переменная используется для установки соединения во время выполнения для серверов prod или test соответственно), тогда переменная будет использовать параметр сверху, чтобы найти нужный сервер для подключения.

Поэтому параметры обычно необходимы в конкретных сценариях окружающей среды.

Существует два типа параметров в зависимости от того, как вы настроили свое решение в Visual Studio: параметры проекта или параметры пакета. Параметры проекта доступны для всех пакетов в проекте.

Ответ 5

Параметры используют данные для отправки извне пакета, такие как имена пользователей, пароли или строки подключения и т.д. Переменные используются внутри пакета. Это означает, что вы можете определить переменную в одном из ваших пакетов служб SSIS и использовать ее на уровне пакета.