Главная » Microsoft SQL Server, Базы данных » Среда проектирования

0

Лучше всего начать знакомство со службой интеграции с освоения ее среды проектирования. Запустим утилиту Business Intelligence Development Studio (далее BIDS) и создадим новый проект. Шаблон Integration Services находится в папке Business Intelligence. Окно программы показано на рис. 42.1.

Puc. 42.1. Вкладка Control Flow среды проектирования службы интеграции

Кроме общеизвестных панелей Solution Explorer и Properties, при проектировании пакетов используются и другие (полный их список вы можете увидеть в меню View).

?               Connection Managers (Диспетчеры подключений). На этой панели находятся указатели на файлы, базы данных и прочие объекты, существующие в контексте выполнения задач, помещенных в область проектирования. Например, задача Execute SQL Task требует наличия подключения к базе данных.

?               Toolbox (Панель элементов). Эта панель содержит список задач, которые можно перетащить в область проектирования. Список доступных задач зависит от конкретной вкладки.

?               Control Flow (Поток управления). Это основная область проектирования, на которую помещаются задачи и где выполняется их конфигурирование и упорядочение.

?               Data Flow (Поток данных). Одной из задач, которые можно конфигурировать на панели Control Flow, является Data Flow. Она используется для перемещения и преобразования данных. Панель Data Flow используется для конфигурирования одноименного задания.

?               Event Handlers (Обработчики событий). События происходят как с пакетом в целом, так и с отдельными его задачами. На эту панель помещают задачи, которые следует выполнить при возникновении определенных событий, таких как OnError и OnPreEcecute.

?               Package Explorer (Обозреватель пакета). На этой панели перечислены все элементы пакета в древовидной структуре. На ней можно найти те сконфигурированные элементы, которые не очевидны в других представлениях.

Выполнение пакета происходит последовательно, при этом первой задачей считается та, которая не имеет предшественников. Далее выполнение продолжается с учетом установленных приоритетов задач. Тем, кто в предыдущих версиях SQL Server работал с пакетами службы DTS, такой порядок знаком. Так для чего же предназначена вкладка Data Flow?

Любому множеству данных во вкладке Control Flow соответствует одна задача. Для просмотра конфигурации задачи следует дважды щелкнуть на ее ярлыке (рис. 42.2). Обратите внимание на то, что здесь не содержится иных задач, кроме источников и приемников данных, а также преобразований. Стрелки между отдельными блоками представляют не порядок выполнения задач, а входы и выходы данных, определяющие их путь от источника к приемнику. В отличие от пакетов DTS, где преобразования выполнялись как один шаг при извлечении или записи данных, поток данных может формироваться из множества источников, разделяться и сливаться с другими потоками, а затем записываться в пункты назначения. Так как преобразования данных выполняются без операций чтения и записи на каждом шаге, хорошо спроектированный поток данных может быть на удивление быстрым.

Вкладка Connection Managers

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

Новые диспетчеры подключений можно создать, щелкнув правой кнопкой мыши на панели Connection Managers и выбрав в контекстном меню пункт New при конфигурировании задачи, требующей подключения. В списке этого контекстного меню перечислены наиболее популярные типы подключений; все остальные доступны после щелчка на пункте New Connection.

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

Puc. 42.2. Вкладка Data Flow среды проектирования службы интеграции

ным местом, где устанавливается время ожидания подключения, в то время как параметр проверки задержки устанавливается на панели Properties.

Переменные

Как и любая другая среда программирования, служба интеграции поддерживает переменные для управления выполнением процедур, операций с данными и прочих целей. Щелкните правой кнопкой мыши на рабочей области и выберите в контекстном меню пункт Variables. По умолчанию открывшаяся панель содержит только те переменные, в область видимости которых входит выделенный объект, а также его предки. Например, если щелкнуть на пустом месте рабочей области конструктора, объектом будет считаться весь проект и на панели Variables отобразятся только переменные уровня пакета, а при выделении объекта потока управления будут показаны переменные уровня выделенной задачи, а также всего пакета (который является родительским объектом по отношению к выделенному). Если же щелкнуть на кнопке Show User Variables панели инструментов, то отобразится полный список переменных.

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

Для создания переменной нужно вначале выделить объект для обозначения области видимости, а затем щелкнуть на кнопке Add Variable панели инструментов. Следует обратить внимание, что область видимости переменной невозможно изменить после ее создания — для этого ее нужно удалить и создать заново.

В дополнение к области определения любая переменная имеет пространство имен— по умолчанию User или System. Пространство имен пользовательских переменных можно изменить, в то время как системные переменные только в редких случаях поддаются изменению. Пространство имен указывается для полной квалификации ссылок на переменную. Например, ссылка на пользовательскую переменную MyVar будет иметь следующий вид: User: : MyVar.

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

Значения переменным можно присваивать вручную на панели Variables, но существуют и другие возможности.

?               В процессе выполнения значения переменным можно присвоить с помощью переключателя /SET утилиты dtexec.

?               Переменным можно присваивать значения в выражениях. Такие выражения могут содержать операции сравнения, другие переменные и вычисленные значения, основанные на текущей дате.

?               Контейнеры For и Foreach могут присваивать переменным последовательные числовые значения, имена файлов в папке, названия узлов документа XML, а также элементы других списков и коллекций.

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

?               Значения переменным могут присваивать сценарии, но только в конце выполнения (в ходе выполнения значения фиксированы).

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

Выражения

Выражения в службе интеграции используются для вычисления значений в циклах, разбиения потоков данных, присвоения значений переменным и назначения параметров заданий. Язык, используемый для определения выражений, имеет полностью новый синтаксис— нечто вроде комбинации Т-SQL и С#. К счастью, вам на помощь придет инструмент Expression Builder, который можно запустить во множестве мест. Следует отметить ряд ключевых моментов.

?               Переменные начинаются с символа коммерческого “эт” (@) и могут содержать пространство имен. Таким образом, ссылка @ [User: : f оо] указывает на пользовательскую переменную foo. Ссылки на столбцы идентифицируются источником данных. Например, ссылка [RowFileSource] . [CustomerName] указывает на столбец CustomerName, который можно прочитать в файле RowFileSource. Квадратные скобки являются необязательными для имен, не содержащих пробелы и другие специальные символы.

?               Операторы сходны с языком С, например, символы == указывают на операцию сравнения, символы ScSc заменяют логическое AND, а восклицательный знак заменяет операцию на противоположную (например, ! < или ! =). Символ вопросительного знака заменяет функцию iif. Например, результатом выражения @ [User: : foo] ==17&&CustonerID<100 будет значение true, если переменная foo имеет значение 17, а столбец CustomerlD — значение меньше 10 0.

?               Строковые константы заключаются в двойные кавычки, а специальные символы предваряет обратная косая черта (например, \п или \t).

?               Оператор cast представляет собой заключенную в скобки целевую переменную, после чего следует преобразуемое значение. Например, выражение (DT_I4) "193" преобразует строку в целое 4-байговое число, а выражение (DT_STR, 10, 152)@[User::foo] преобразует значение переменной foo в 10-символьную строку, использующую кодовую страницу 1252. Для кодовой страницы нет значений по умолчанию, так что вам придется самому заучить номер кодовой страницы своего языка.

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

www.il8nguy.com/unicode/codepages.html www.micrrosoft.com/typography/unicode/cscp/htm

?               Функции наследованы из мира T-SQL, включая хорошо знакомые функции работы с датами (GETDATE, DATEADD, YEAR), строками (SUBSTRING, REPLACE, LEN), а также математические функции (CEILING, SIGN).

Элементы конфигурирования

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

Поток управления

Конфигурирование потока управления во вкладках Control Flow и Event Handler осуществляется путем перетаскивания элементов (задач и контейнеров) в рабочую область конструктора, конфигурирования каждого из элементов и последующего связывания их в цепочку выполнения. Отдельные элементы конфигурируются с помощью частично пересекающихся окон Properties и Editor. Щелкните правой кнопкой мыши на элементе и выберите в контекстном меню пункт Edit. Откроется диалоговое окно редактора, состоящее из нескольких страниц (наполнение этих страниц зависит от типа выделенной задачи).

?               до n-го по счету выполнения компонента;

?               начиная с n-го по счету выполнения компонента;

?               во всех случаях, кроме перечисленных выполнений компонента.

Puc. 42.5. Диалоговое окно установки контрольных точек

Когда выполнение приостанавливается в контрольной точке, в окне Locals вы можете увидеть текущие значения переменных, в окне Output — полезные сообщения и предупреждения, а в окне Execution Results — детали хода выполнения всех заданий.

Аналогом контрольных точек является окно Data Viewer. Дважды щелкните на интересующем вас пути. Далее в ходе выполнения пакета окно Data Vie we г будет заполняться данными; при этом выполнение пакета будет приостанавливаться. Для его продолжения нужно щелкнуть в этом окне на кнопке Go (продолжить выполнение) или Detach (отключить просмотр данных в этой точке).

Контрольные точки можно также поместить и в любой точке компонента сценария. Откройте сценарий и в интересующей вас строке установите такую точку. В этом случае служба интеграции остановит процесс именно в требуемом месте.

Источник: Нильсен, Пол. Microsoft SQL Server 2005. Библия пользователя. : Пер. с англ. — М. : ООО “И.Д. Вильямс”, 2008. — 1232 с. : ил. — Парал. тит. англ.

По теме:

  • Комментарии