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


Использование выражений свойств в пакетах

Область применения: среда выполнения интеграции SSIS SQL Server в Фабрика данных Azure

Выражение свойства — это выражение, связанное со свойством для обеспечения динамического обновления во время выполнения. Например, выражение свойства может обновить строку «Кому», в которую задача «Отправка почты» вставляет хранящийся в переменной адрес электронной почты.

Выражение может быть добавлено в пакет, задачу, контейнеры «цикл по каждому элементу», «цикл по элементам» и контейнер последовательности, перечислитель Foreach, обработчик событий, диспетчер соединений уровня пакета либо проекта или регистратор. Любое свойство этих объектов, выполняющее чтение или запись, может реализовать выражение свойства. Службы Integration Services также поддерживают использование выражений свойств в некоторых настраиваемых свойствах компонентов потока данных. Переменные и элементы управления очередностью не поддерживают выражения свойств, однако они включают специальные свойства, в которых можно использовать выражения.

Выражения свойств могут обновляться несколькими способами.

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

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

  • Функции даты и времени вычисляются при выполнении и предоставляют обновленные значения выражениям свойств.

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

Выражения создаются с помощью языка выражений Microsoft Integration Services. Выражения могут использовать системные или пользовательские переменные вместе с операторами, функциями и приведениями типа, которые предоставляет язык выражений.

Примечание.

Имена пользовательских и системных переменных обрабатываются с учетом регистра.

Дополнительные сведения см. в разделе Выражения Integration Services (SSIS).

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

Свойство может использовать только одно выражение свойства, а выражение свойства может применяться только к одному свойству. Однако можно создать несколько одинаковых выражений свойств и присвоить их разным свойствам.

Некоторые свойства устанавливаются с помощью значений из перечислителей. При ссылке на элемент перечислителя в выражении свойств необходимо использовать числовое значение, которое соответствует понятному имени элемента перечислителя. Например, если выражение свойств устанавливает свойство LoggingMode , которое использует значение из перечисления DTSLoggingMode , выражение свойств должно использовать 0, 1 или 2 вместо понятных имен Enabled, Disabledили UseParentSetting. Дополнительные сведения см. в разделе Использование констант-перечислителей в выражениях свойств.

Пользовательский интерфейс выражения свойства

Службы Integration Services предоставляют набор средств для создания выражений свойств и управления ими.

  • Страница Выражения , расположенная в редакторах задач, контейнерах «цикл по элементам» и «цикл по каждому элементу». Страница Выражения позволяет редактировать выражения и просматривать список выражений свойств, используемых задачей или контейнерами «цикл по элементам» и «цикл по каждому элементу».

  • Окно Свойства предназначено для редактирования выражений и просмотра списка выражений свойств, используемых пакетом или объектами пакета.

  • Диалоговое окно Редактор выражений свойств служит для создания, обновления и удаления выражений свойств.

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

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

Пользовательский интерфейс для выражений свойств

В окне Свойства на странице Выражения нажмите кнопку обзора (...) на уровне коллекции Выражения для открытия диалогового окна Редактор выражений свойств. Редактор выражений свойств позволяет сопоставлять свойства с выражением и вводить выражения свойств. Если нужно использовать графические средства построения выражений для создания и проверки выражения, нажмите кнопку обзора (...) на уровне выражения для открытия диалогового окна Построитель выражений, создайте или внесите изменения и при желании проверьте выражение.

Диалоговое окно Построитель выражений можно также открыть из диалогового окна Редактор выражений свойств .

Работа с выражениями свойств

Установка выражений свойств для компонентов потока данных

При создании пакета в SQL Server Data Tools (SSDT) свойства компонентов потока данных, поддерживающих выражения свойств, предоставляются в задаче Поток данных, к которой они относятся. Для добавления, изменения и удаления выражений свойств для компонентов потоков данных щелкните правой кнопкой мыши задачу потока данных для потока данных, которому компоненты потока данных принадлежат, и выберите Свойства. Окно свойств содержит список свойств компонентов потока данных, которые можно будет использовать в выражении свойств. Например, для создания или изменения выражения свойства для свойства SamplingValue преобразования "Выборка строк" в потоке данных с именем SampleCustomer щелкните правой кнопкой мыши задачу потока данных для потока данных, которому принадлежит преобразование "Выборка строк", и выберите Свойства. Свойство SamplingValue отображается в окне свойств и имеет формат [SampleCustomer].[SamplingValue].

В окно свойств добавляются, изменяются и удаляются выражения свойств для компонентов потока данных так же, как и выражения свойств для других типов объектов Служб Integration Services. Окно свойств также предоставляет доступ к различным диалоговым окнам и построителям, которые используются для добавления, изменения или удаления выражений свойств для компонентов потоков данных. Дополнительные сведения о свойствах компонентов потока данных, которые могут быть обновлены выражениями свойств, см. в разделе Transformation Custom Properties.

Загрузка выражений свойств

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

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

Выражения свойств связаны с объектами различных типов (диспетчерами подключений, регистраторами и перечислителями); они также загружаются при вызове методов, связанных с этим типом объектов. Например, свойства диспетчеров соединений загружаются до создания экземпляра подключения служб Integration Services.

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

Примечание.

Параметр Set программы dtexec не может использоваться для заполнения выражений свойств.

В следующей таблице показано, как вычисляются и загружаются выражения свойств служб Integration Services.

Тип объекта Загрузка и вычисление
Пакеты, контейнеры последовательности, «цикл по элементам» и «цикл по каждому элементу», задачи и компоненты потоков данных После загрузки конфигураций

Перед проверкой

Перед выполнением
Диспетчеры соединений После загрузки конфигураций

Перед проверкой

Перед выполнением

Перед созданием экземпляра соединения
Регистраторы После загрузки конфигураций

Перед проверкой

Перед выполнением

Перед открытием журналов
Перечислители «по каждому элементу» После загрузки конфигураций

Перед проверкой

Перед выполнением

Перед каждым перечислением в цикле

Использование выражений свойств в контейнере «цикл по каждому элементу»

Часто в реализации выражения свойства полезно устанавливать значение свойства ConnectionString диспетчера соединений, которое используется в контейнере «цикл по каждому элементу». После того как перечислитель сопоставляет свое текущее значение с переменной в каждой итерации цикла, выражение свойства может использовать значение этой переменной для динамического обновления значения свойства ConnectionString .

При использовании выражений свойств со свойством ConnectionString для диспетчеров соединений с файлами, несколькими файлами, неструктурированными файлами и несколькими неструктурированными файлами, которые используют контейнер «цикл по каждому элементу», необходимо иметь в виду несколько вещей. Пакет может быть настроен для одновременного запуска нескольких исполняемых объектов установкой свойства MaxConcurrentExecutables в значение больше 1 или в значение –1. Значение –1 определяет максимальное количество одновременно исполняемых объектов как число, равное количеству процессоров плюс два. Чтобы избежать нежелательных последствий параллельного выполнения исполняемых объектов, значение MaxConcurrentExecutables должно быть установлено в 1. Если значение MaxConcurrentExecutables не равно 1, то значение свойства ConnectionString не может быть точно определено, а результаты становятся непредсказуемыми.

Например, перечислители файлов контейнера «цикл по каждому элементу» возвращают имена файлов, а затем используют задачу «Выполнение SQL» для вставки этих имен в таблицу. Если значение MaxConcurrentExecutables не установлено в 1, то будут возникать конфликты записи в таблицу, если два экземпляра задачи «Выполнение SQL» попытаются выполнить запись одновременно.

Образцы выражений свойств

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

Выражения свойств для свойства LoggingMode пакета

Приведенное далее выражение свойства может быть использовано, чтобы установить свойство LoggingMode пакета. Это выражение использует функции DAY и GETDATE, чтобы получить целое значение, представляющее день из даты. Если день равен 1 или 15, журналирование включается, иначе отключается. Значение 1 представляет собой целый эквивалент элемента LoggingMode перечислителя Enabled, а значение 2 — целый эквивалент элемента Disabled. В выражении вместо имени элемента перечислителя необходимо использовать числовое значение.

DAY((DT_DBTIMESTAMP)GETDATE())==1||DAY((DT_DBTIMESTAMP)GETDATE())==15?1:2

Выражение свойства для темы сообщения электронной почты

Следующее выражение свойства может применяться, чтобы установить свойство Subject задачи "Отправка почты" и предоставить необходимую тему сообщения электронной почты. Выражение использует сочетание строковых литералов, системных переменных, операторов объединения (+) и приведения, функций DATEDIFF и GETDATE. Системными переменными являются переменные PackageName и StartTime .

"PExpression-->Package: (" + @[System::PackageName] + ") Started:"+ (DT_WSTR, 30) @[System::StartTime] + " Duration:" + (DT_WSTR,10) (DATEDIFF( "ss", @[System::StartTime] , GETDATE() )) + " seconds"

Если имя пакета — EmailRowCountPP и он был выполнен 4.03.2005, а время выполнения равно 9 секундам, то выражение вернет приведенную ниже строку.

PExpression-->Package: (EmailRowCountPP) Started:3/4/2005 11:06:18 AM Duration:9 seconds.

Выражения свойства для содержимого сообщения электронной почты

Приведенное далее выражение свойства может быть использовано, чтобы установить свойство MessageSource задачи "Отправка почты". Выражение использует сочетание строковых литералов, пользовательских переменных и оператора объединения (+). Переменные, определенные пользователем, имеют имена nasdaqrawrows, nyserawrowsи amexrawrows. Строка «\n» обозначает возврат каретки.

"Rows Processed: " + "\n" +" NASDAQ: " + (dt_wstr,9)@[nasdaqrawrows] + "\n" + " NYSE: " + (dt_wstr,9)@[nyserawrows] + "\n" + " Amex: " + (dt_wstr,9)@[amexrawrows]

Если значение nasdaqrawrows равно 7058, значение nyserawrows равно 3528, а значение amexrawrows равно 1102, выражение вычисляется со следующим результатом.

Обработано строк:

NASDAQ: 7058

NYSE: 3528

AMEX: 1102

Выражение свойства для исполняемого свойства задачи выполнения процесса

Приведенное далее выражение свойства может быть использовано для установки свойства Executable задачи выполнения процесса. Выражение использует сочетание строковых литералов, операторов и функций. Выражение использует функции DATEPART, GETDATE и условный оператор.

DATEPART("weekday", GETDATE()) ==2?"notepad.exe":"mspaint.exe"

Во второй день недели задача выполнения процесса запустит приложение notepad.exe, в другие дни — приложение mspaint.exe.

Выражение свойства для свойства ConnectionString диспетчера соединений с неструктурированными файлами

Приведенное ниже выражение свойства может быть использовано для установки свойства ConnectionString диспетчера соединений с неструктурированными файлами. Выражение использует одну пользовательскую переменную myfilenamefull, которая содержит путь к текстовому файлу.

@[User::myfilenamefull]

Примечание.

К выражениям свойства диспетчеров соединений доступ возможен только посредством окна «Свойства». Чтобы просмотреть свойства диспетчера соединений, необходимо выбрать диспетчер соединений в области конструктора служб SSIS в области диспетчер подключений конструктора служб SSIS при открытии окно свойств или щелкните правой кнопкой мыши диспетчер соединений и выберите пункт "Свойства".

Выражение свойства для свойства ConfigString регистратора текстового файла

Приведенное ниже выражение свойства может быть использовано для установки свойства ConfigString регистратора текстового файла. Выражение использует одну пользовательскую переменную varConfigString, которая содержит имя файла для использования диспетчером подключения файлов. Диспетчер подключения файлов задает путь к текстовому файлу, в который регистрируются записи журнала.

@[User::varConfigString]

Примечание.

К выражениям свойства регистратора доступ возможен только посредством окна «Свойства». Чтобы просмотреть свойства поставщика журналов, необходимо выбрать поставщика журналов на вкладке обозревателя пакетов конструктора служб SSIS при открытии окно свойств или щелкнуть правой кнопкой мыши поставщика журналов в обозревателе пакетов и выбрать пункт "Свойства".

Внешние ресурсы

См. также

Использование переменных в пакетах