авторефераты диссертаций БЕСПЛАТНАЯ БИБЛИОТЕКА РОССИИ

КОНФЕРЕНЦИИ, КНИГИ, ПОСОБИЯ, НАУЧНЫЕ ИЗДАНИЯ

<< ГЛАВНАЯ
АГРОИНЖЕНЕРИЯ
АСТРОНОМИЯ
БЕЗОПАСНОСТЬ
БИОЛОГИЯ
ЗЕМЛЯ
ИНФОРМАТИКА
ИСКУССТВОВЕДЕНИЕ
ИСТОРИЯ
КУЛЬТУРОЛОГИЯ
МАШИНОСТРОЕНИЕ
МЕДИЦИНА
МЕТАЛЛУРГИЯ
МЕХАНИКА
ПЕДАГОГИКА
ПОЛИТИКА
ПРИБОРОСТРОЕНИЕ
ПРОДОВОЛЬСТВИЕ
ПСИХОЛОГИЯ
РАДИОТЕХНИКА
СЕЛЬСКОЕ ХОЗЯЙСТВО
СОЦИОЛОГИЯ
СТРОИТЕЛЬСТВО
ТЕХНИЧЕСКИЕ НАУКИ
ТРАНСПОРТ
ФАРМАЦЕВТИКА
ФИЗИКА
ФИЗИОЛОГИЯ
ФИЛОЛОГИЯ
ФИЛОСОФИЯ
ХИМИЯ
ЭКОНОМИКА
ЭЛЕКТРОТЕХНИКА
ЭНЕРГЕТИКА
ЮРИСПРУДЕНЦИЯ
ЯЗЫКОЗНАНИЕ
РАЗНОЕ
КОНТАКТЫ


Pages:     | 1 |   ...   | 10 | 11 || 13 | 14 |   ...   | 33 |

«Е.Мамаев MS SQL SERVER 2000 Книга посвящена одной из самых мощных и популярных современных систем управления базами данных - Microsoft SQL Server 2000. ...»

-- [ Страница 12 ] --

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

Создание нового преобразования выполняется с помощью кнопки New. Предва рительно в списках Source и Destination можно выбрать имена столбцов, кото рые будут включены в преобразование, хотя это можно сделать и позже. После нажатия кнопки New будет открыто окно Create New Transformation (рис. 11.44), в котором необходимо выбрать тип создаваемого преобразования. По умолча нию в этом окне выведен список всех типов преобразований, поддерживаемых DTS. Однако задача Transfer Data Task может работать только с двумя из них — ActiveX Script и Copy Column. Установка флажка Only show valid transformations Глава 11. Доступ к гетерогенным источникам данных предписывает отображать в окне только до пустимые типы преобразований. Таким об разом, после выбора этого флажка в окне останутся только два указанных типа преоб разования.

После указания нужного типа преобразова ния будет открыто окно Transformation Options, с помощью которого и выполняет ся конфигурирование создаваемого преоб разования. Как видно, окно имеет три вкладки. Первая из них назвается General (рис. 11.45) и содержит общие сведения о создаваемом преобразовании.

Рис. 11.44. Окно Create New Transformation Рис. 11.45. Окно Transformation Options, вкладка General В поле Name пользователь может ввести имя, которое будет присвоено созда ваемому преобразованию. По умолчанию предлагается имя в формате DTSTransformationN. Тем не менее, пользователь может ввести любое другое 404 Часть III. Администрирование имя, соблюдая при этом уникальность имен преобразований в пределах задачи.

В поле Туре отображается тип преобразования, который был выбран в окне Create New Transformation. Значение в этом поле доступно только в режиме чте ния и не может быть изменено. Если тип преобразования был выбран неверно, то необходимо будет начать операцию создания преобразования заново.

В поле Sequence указывается шаг, на котором будет выполнено создаваемое пре образование. Можно сказать, что значение в данном поле определяет, каким по счету будет выполнено создаваемое отображение. Значение в поле Sequence также доступно только для чтения и не может изменяться пользователем. Таким обра зом, каждое новое создаваемое преобразование будет выполняться после заверше ния всех созданных ранее преобразований. Если необходимо выполнить копиро вание данных на одном из более ранних этапов, то можно внести соответствующие изменения в преобразования с нужным значением в поле Sequence.

На этом рассмотрение вкладки General пока закончим и обратимся к рассмот рению двух других вкладок окна. Вкладка Source Columns (рис. 11.46) предна значена для формирования списка исходных столбцов, которые будут обрабаты ваться в создаваемом преобразовании.

Рис. 11.46. Окно Transformation Options, вкладка Source Columns 40S Глава 11. Доступ к гетерогенным источникам данных Вкладка Source Columns содержит два списка:

• Available columns. Отображается перечень всех столбцов, имеющихся в исход ном наборе данных, который был сконфигурирован с помощью вкладки Source окна Transform Data Task Properties (см. рис. 11.34).

• Selected columns. В этот список пользователь должен скопировать из преды дущего списка имена всех столбцов, которые предполагается использовать в конфигурируемом преобразовании. В данный список по умолчанию включа ются имена всех столбцов, которые были выбраны в списке Source вкладки Transformations (см. рис. 11.43) при нажатии кнопки New.

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

Последняя вкладка окна Transformation Options имеет имя Destination Columns (рис. 11.47) и служит для управления столбцами, в которые будут вставляться копируемые данные.

Рис. 11.47. Окно Transformation Options, вкладка Destination Columns Часть III. Администрирование Нетрудно заметить, что вкладка Destination Columns очень напоминает вкладку Source Columns. Действительно, как и вкладка Source Columns, вкладка Destination Columns включает два списка — Available columns и Selected columns.

Первый из этих списков содержит перечень всех столбцов таблицы, выбранной для закачки данных на вкладке Destination окна свойств задачи Transform Data Task Properties (см. рис. 11.41). В списке Selected columns пользователь перечис ляет все столбцы, в которые будет выполняться закачка данных в ходе выполне ния преобразования. Если при создании преобразования был выбран тип Сору Column, то количество выбранных столбцов в списках Selected columns на вкладках Source Columns и Destination Columns окна Transformation Options должно быть одинаковым, хотя имена и типы данных столбцов могут и не сов падать. При использовании типа преобразования ActiveX Script количество столбцов может быть различным.

После того, как список исходных столбцов и столбцов получателей будет сформи рован, можно переходить к собственно указанию путей перетекания и определе нию преобразования данных. Вы полнение этой операции заметно отличается при использовании раз личных типов преобразования. Для открытия окна конфигурирования собственно преобразования предна значена кнопка Properties вкладки General окна Transformation Options (см. рис. 11.45). На рис. 11.48 при ведено окно Column Order, которое служит для конфигурирования пре образований типа Copy Column.

Окно Column Order содержит лишь таблицу Columns, с помощью кото рой пользователь должен указать соответствие столбцов исходного Рис. 11.48. Окно Column Order набора данных и столбцов таблицы получателя при копировании. В колонке Source по умолчанию перечислены имена всех столбцов, указанных в списке Selected columns на вкладке Source Columns. Элемент колонки Source представляет собой раскрывающийся список, который содержит имена всех столбцов, указанных в списке Selected columns на вкладке Source Columns. Каждый столбец приводится один раз. Тем не менее, пользователь может выбрать любой из исходных столбцов несколько раз. Кроме того, в раскрывающемся списке можно выбрать значение ignore. Если указан этот пункт, то в соответствующем столбце таблицы получателя (имя которого указано в колонке Destination) будет сохранено либо значение NULL, либо (если определено) значение по умолчанию. Причем приоритет отдается значению по умолчанию. Если значение по умолчанию не определено и столбец таблицы по лучателя не разрешает хранение значений NULL, TO при установленном в колон ке Source значении ignore попытка выполнения пакета завершится неудачно.

Глава 11. Доступ к гетерогенным источникам данных В колонке Destination отображается имя столбца таблицы получателя, в которую будут копироваться данные из соответствующего столбца исходного набора дан ных. Элемент колонки Destination представляет собой раскрывающийся список, который содержит имена всех столбцов, указанных в списке Selected columns на вкладке Destination Columns. Как и в списке колонки Source, в списке колонки Destination существует значение ignore. Так же, как и при установке подоб ного пункта в списке Source, это приведет к тому, что данные из соответствую щего столбца таблицы источника не будут скопированы.

После определения всех сопоставлений создание преобразования можно считать оконченным. Как видно, конфигурирование преобразований типа Copy Column выполняется довольно просто. Гораздо сложнее осуществляется конфигуриро вание преобразований типа ActiveX Script. После нажатия кнопки Properties на вкладке General окна Transformation Options (см. рис. 11.45) откроется окно ActiveX Script Transformation Properties (рис. 11.49), где пользователь должен будет ввести сценарий на одном из установленных скриптовых языков ActiveX, который и будет выполнять преобразование данных.

Рис. 11.49. Окно ActiveX Script Transformation Properties Часть III. Администрирование Как видно, это окно весьма напоминает окно свойств задачи ActiveX Script Task (см. рис. 11.31), хотя их размеры несколько и отличаются. Мы не будем подроб но рассматривать работу с окном ActiveX Script Transformation Properties, т. к.

все элементы управления и принципы работы с этим окном были описаны при рассмотрении задачи ActiveX Script Task. Однако заметим, что на вкладке Browser (рис. 11.50) добавлены дополнительные элементы (Source Columns, Destination Columns и Lookups), с помощью которых можно легко обратиться как к исходным данным, так и к столбцам таблицы получателя, а также к результа ту, возвращаемому после выполнения внешних запросов (lookups). Внешние запросы конфигурируются с помощью вкладки Lookups окна свойств задачи Transform Data Task, которая будет рассмотрена в одном из следующих разделов этой главы.

Рис. 11.50. Окно ActiveX Script Transformation Properties, вкладка Browser Между окнами свойств задачи ActiveX Script Task и ActiveX Script Transformation имеется еще одно различие — последнее содержит кнопку Test, предназначен ную для проверки работы конфигурируемого преобразования. После нажатия этой кнопки открывается окно Testing Transformation (рис. 11.51), в котором Глава 11. Доступ к гетерогенным источникам данных отображается ход выполнения преобразования. Если преобразование удается выполнить успешно, то пользователь получает соответствующее сообщение. В противном случае будет выдано сообщение об ошибке.

Рис. 11.51. Окно Testing Transformation Помимо получения информации об успешном или неудачном выполнении пре образования, пользователь также может просмотреть сведения о данных, зака чиваемых в выбранные столбцы таблицы получателя. Для этого достаточно на жать кнопку View Results в окне Testing Transformation. В ответ откроется окно View Data (рис. 11.52), в котором будет приведено состояние данных после вы полнения преобразования.

Рис. 11.52. Окно VieW Data Часть III. Администрирование В данном окне пользователь может посмотреть, действительно ли данные пре образованы к тому виду, что он хотел. Если в сценарии были допущены логиче ские ошибки, то хотя преобразование и будет выполнено успешно, результат окажется логически неверным.

Протестировать ход выполнения преобразования можно и непосредственно со вкладки Transformations (см. рис. 11.43), нажав кнопку Test. Указанным спосо бом осуществляется проверка выполнения не только преобразований типа ActiveX Script, но и преобразований типа Copy Column.

На этом рассмотрение определения преобразований данных при копировании можно считать оконченным. В принципе, можно также закончить и конфигури рование всей задачи Transform Data Task, не обращаясь к двум оставшимся не рассмотренными вкладкам — Lookups* и Options. Значения, установленные на данных вкладках по умолчанию, вполне устраивают множество пользователей.

Именно так и рекомендуется поступать в большинстве случаев. Тем не менее, в некоторых ситуациях все же требуется обращение к указанным вкладкам для использования дополнительных возможностей. Представленные далее разделы будут посвящены рассмотрению работы со вкладками Lookups и Options.

Внешние запросы Предыдущие разделы были посвящены рассмотрению трех первых вкладок окна свойств задачи Transform Data Task. Как уже было сказано, в большинстве слу чае для конфигурирования задачи достаточно использовать только эти три вкладки. Однако, при выполнении преобразований типа ActiveX Script для реа лизации некоторых действий может понадобиться обращение к данным источ ника и получателя помимо тех, что выбраны на вкладках Source и Destination.

Это можно выполнить с помощью механизма внешних запросов, также называе мых запросами поиска (lookup queries). Данные запросы могут быть использова ны для выполнения хранимых процедур, команд SELECT, UPDATE, INSERT И DELETE. Таким образом, пользователь может создавать задачи, которые будут не просто выполнять копирование данных (пусть даже с выполнением преобразо ваний), но и попутно корректировать информацию в других таблицах, вставляя, удаляя или изменяя в них данные. Внешние запросы также могут быть исполь зованы для получения дополнительных данных, которые должны быть вставле ны в столбцы получателя. При этом в качестве исходной информации может использоваться один столбец, а с помощью внешнего запроса можно получить данные еще для нескольких столбцов, которые и будут закачаны в таблицу по лучателя. Кроме того, полученные в результате выполнения внешнего запроса данные могут быть использованы для контроля хода выполнения сценария ActiveX.

Выполнение внешних запросов осуществляется с установления отдельного со единения к источнику данных. Запуск внешних запросов и доступ к возвращае мым ими данным осуществляется из сценария ActiveX. При конфигурировании внешнего запроса пользователь должен указать код запроса, его имя, выбрать имя соединения, сконфигурированного в пакете, а также указать количество строк, которое будет кэшировано. Управление всеми перечисленными парамет Глава 11. Доступ к гетерогенным источникам данных рами выполняется с помощью вкладки Lookups (рис. 11.53) окна свойств задачи Transform Data Task.

Рис. 11.53. Окно Transform Data Task Properties, вкладка Lookups На вкладке имеется всего одна таблица Lookups, с помощью которой и конфи гурируются внешние запросы. По умолчанию не определено ни одного запроса.

Для создания нового запроса достаточно нажать кнопку Add или просто внести изменения в пустую строку таблицы. В колонке Name необходимо указать имя, присваиваемое создаваемому внешнему запросу. В колонке Connection необхо димо выбрать имя одного из источников данных, определенных в пакете. В контексте этого источника данных и будет выполняться указанный запрос. От дельно обратим внимание на то, что внешний запрос может обращаться не только к источникам данных, указанных при создании задачи Transform Data Task, но и к любым другим.

•с Замечание В принципе, используя внешние запросы и соответствующим образом написав сце нарий ActiveX, можно обработать данные вовсе не из источника, указанного на вкладке Source. Более того, данные можно закачивать в иной источник данных, чем который указан на вкладке Destination.

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

412 Часть ///. Администрирование Собственно код запроса формируется с помощью построителя, который вызы вается кнопкой jgj, расположенной в колонке Query в строке соответствующего внешнего запросаТПосле нажатия указанной кнопки откроется окно построите ля запроса, подобного приведенному на рис. 11.36. В разд. "Построитель запро сов Query Builder" была подробно рассмотрена работа с построителем запросов, поэтому здесь мы не будем лишний раз останавливаться на этом. Отменим од нако, что опытные пользователи могут указать код запроса непосредственно в области SQL Pane, не прибегая к помощи областей Diagram Pane и Grid Pane.

При создании внешних запросов следует учитывать, что они также могут быть и параметризированными. Синтаксис параметризированных запросов и их приме нение были рассмотрены в разд. "Параметризированные запросы' ранее в этой главе. Здесь же напомним, что параметр определяется символом ?.

После того, как код внешнего запроса будет указан или построен, к нему можно будет обращаться из сценария ActiveX при конфигурировании преобразования типа ActiveX Script. На вкладке Browser окна ActiveX Script Transformation Properties (см. рис. 11.50) в папку Lookups будут добавлены имена всех внешних запросов, определенных на вкладке Lookups окна свойств задачи Transform Data Task (см. рис. 11.53).

Для примера приведем код ActiveX, позволяющий поместить в столбец аи f name таблицы получателя данных результат выполнения внешнего параметризирован ного запроса GenNewName, в качестве параметра которого используется глобаль ная переменная NumAuth:

DTSDestination("au_fname ") = DTSLookups("GenNewName ").Execute(NumAuth) Указанный код должен быть набран в поле для ввода сценария окна ActiveX Script Transformation Properties. В приведенном примере использовался единст венный параметр, значение которого подставлялось из глобальной переменной.

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

На этом рассмотрение конфигурирования внешних запросов можно считать за конченным. К сожалению, из-за ограничений объема в данной книге нет воз можности рассмотреть все объекты DTS, а также их свойства и методы. Тем не менее, для профессионального программирования преобразований типа ActiveX так же, как и для профессиональной работы с задачей ActiveX Script Task и программирования механизмов DTS в целом необходимо знание объектов, их свойств и методов. Для получения подробной информации следует обратиться к дополнительным источникам информации, например, Books Online или MSDN.

Управление свойствами задачи Данный раздел будет посвящен рассмотрению последней, пятой вкладки окна Transform Data Task Properties, имеющей название Options (рис. 11.54). Она со Глава 11. Доступ к гетерогенным источникам данных держит набор элементов, которые позволяют управлять самыми различными параметрами выполнения задачи.

Рис. 11.54. Окно Transform Data Task Properties, вкладка Options Группа параметров Exception file предназначена для настройки свойств файла исключения, в котором будет отображаться информация об ошибках, встречен ных в ходе выполнения задачи. В распоряжении пользователя имеются следую щие элементы управления:

О Name. В этом поле указывается имя файла исключения, а также его положе ние на диске. Имя может быть указано вручную или интерактивно с помо щью окна Browse, открыть которое можно с помощью кнопки j, располо женной справа от поля Name. Файл исключения может быть расположен только на локальном или на подключенном сетевом диске.

П File type. С помощью данной группы параметров пользователь может опреде лить тип файла исключения. Группа содержит перечисленные ниже флажки:

7.0 format — установка флажка предписывает генерировать файл исклю • чения в формате SQL Server 7.0. Это позволяет использовать анализаторы (parsers) ошибок, написанные для предыдущей версии. При установке рассматриваемого флажка три других флажка группы File type становятся недоступными.

Error text — когда этот флажок установлен, то в файле исключения будет • сохраняться информация обо всех ошибках, встреченных в ходе выполне ния задачи. Эта информация включает имя пакета, имя задачи, время на 414 Часть III. Администрирование чала и завершения этапов и другие сведения. Таким образом, файл ис ключений может быть использован в качестве журнала, позволяющего восстановить ход выполнения задачи.

• Source error rows — если необходимо сохранить данные о всех строках ис ходного набора данных, которые не удалось скопировать в таблицу полу чателя, то можно сохранить эти строки в отдельный файл. Для этого не обходимо отметить рассматриваемый флажок. При выполнении задачи будет создан отдельный файл, в который и станут помещаться строки ис ходного набора данных, во время копирования которых произошел сбой.

Имя создаваемого файла соответствует имени файла, указанного в поле Name, однако он будет иметь расширение Source.

• Dest error rows — этот флажок устанавливается, если необходимо сохра нить строки, которые не удалось поместить в таблицу получателя. Так же, как и при выборе предыдущего флажка, в рассматриваемом случае будет создан отдельный файл с расширением Dest, где и будут сохранены стро ки, которые не удалось вставить. При использовании преобразований ти па Copy Column строки в файлах Source и Dest будут совпадать. Однако, если применяется преобразование типа ActiveX Script, то различия между строками этих файлов могут быть весьма значительными.

(~ Замечание ^ Файлы Source и Dest могут быть впоследствии использованы для ручной вставки не скопированных данных или для других целей.

П File format. Данная группа содержит элементы управления, с помощью кото рых контролируется внутренний формат файлов исключения. Эти параметры действуют не только на сам файл исключения, но и на файлы Source и Dest.

Рассмотрим элементы управления.

Row delimiter — раскрывающийся список предназначен для выбора сим • вола (или символов), которые будут вставляться в конце каждой строки файлов исключения. По умолчанию в списке выбраны символы возврата строки и перевода каретки — значение {CR}{LF}. Эти символы могут ис пользоваться и по отдельности. Помимо указанных символов можно ис пользовать точку с запятой (Semicolon), запятую (Comma), символ табуля ции (Tab), вертикальную полосу (Vertical Bar) или любой другой произвольный символ. Разрешается также не использовать никакого сим вола (попе).

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

По умолчанию для разделения столбцов предлагается использовать верти кальную полосу (Vertical Bar).

• Text qualifier — с помощью данного раскрывающегося списка можно вы брать символ, который будет применяться для ограничения текстовых Глава 11. Доступ к гетерогенным источникам данных 415_ строк при записи их в файл исключения. По умолчанию в списке выбра но значение попе, и текст в ограничители не заключается. Помимо этого значения в списке содержатся также варианты Double Quote {"} и Single Quote {'}, что, соответственно, означает двойные и одинарные ка вычки. Помимо значений, указанных в списке, можно задать любой про извольный символ.

Мы рассмотрели элементы управления, имеющиеся в группе Exception file и пред назначенные для управления сохранением информации об ошибках, произошед ших во время выполнения задачи. Следующая группа элементов управления назы вается Data movement и предназначена для управления общим ходом копирования строк. В распоряжении пользователя имеются элементы управления:

• Max error count. В этом поле указывается максимальное количество ошибок, которое считается допустимым при выполнении задачи. Копирование строк осуществляется не отдельно, а пакетами, которые в принципе могут содер жать и по одной строке. Если при копировании строк пакета при вставке хоть одной строки встречается ошибка, то вставка всего пакета отменяется, а счетчик ошибок увеличивается на единицу. В файлы исключения добавляют ся соответствующие записи. В момент запуска задачи счетчик ошибок равен 0. Когда счетчик ошибок превышает значение, указанное в поле Max error count, выполнение задачи прерывается и считается законченным неудачно (Failed). По умолчанию в поле установлено Значение 0, что приводит в пре рыванию работы задачи при встрече первой же ошибки.

П Fetch buffer size. В данном поле указывается, какое количество строк будет входить в пакет и обрабатываться за одну операцию. По умолчанию установ лено значение 1, и в большинстве случаев изменять его не нужно.

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

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

Группа параметров SQL Server предназначена для управления параметрами, специфичными для источников данных SQL Server. При использовании источ ников данных, отличных от SQL Server, элементы управления данной группы будут недоступны. Рассмотрим назначение параметров, имеющихся в группе:

• Use fast load. Установка этого флажка предписывает применять при выполне нии задачи высокоскоростные механизмы массивной закачки данных. Однако использование этих механизмов доступно только при выборе поставщика OLE DB Provider for SQL Server. Если рассматриваемый флажок сброшен, то все пе речисленные ниже элементы управления будут недоступны.

О Keep NULL values. Если в столбце таблицы получателя определено значение по умолчанию, то при попытке вставки в нее значения NULL В нем будет со 416 Часть III. Администрирование хранено значение по умолчанию, даже если в данном столбце и разрешено хранение значений NULL. Однако, в некоторых случаях необходимо обеспе чить копирование и значений NULL. В этом случае необходимо установить рассматриваемый флажок. По умолчанию значения NULL будут заменяться значениями по умолчанию. Если значение по умолчанию не определено и разрешено хранение NULL, ТО В столбце будет сохранено значение NULL. ЕСЛИ же и хранение значений NULL запрещено, то при попытке вставки в столбец пустого значения (NULL) будет выдано сообщение об ошибке.

• Check constraints. Если в таблице получателя определены ограничения цело стности, то по умолчанию все вставляемые данные проверяются на соответ ствие этим ограничениям целостности. Если добавляемая строка не удовле творяет установленным ограничениям целостности, то ее вставка отменяется и генерируется ошибка. Проверку на соответствие ограничениям целостно сти можно отменить, если сбросить флажок Check constraints. Это поможет увеличить скорость вставки данных в таблицу получателя, но может привести к тому, что в ней будут содержаться данные, не соответствующие определен ным для таблицы ограничениям целостности. Тем не менее, проверка дан ных на соответствие ограничениям целостности может быть выполнена поз же с помощью команд проверки целостности базы данных DBCC (DataBase Console Commands или DataBase Consistency Check).

• Table lock. Выбор этого флажка требует установки на время выполнения за дачи, точнее на время вставки данных в таблицу получателя, блокировки на уровне таблицы. По умолчанию используются блокировки на уровне строк, что требует заметно большего объема ресурсов. Для повышения производи тельности копирования данных можно применять блокировки на уровне таб лицы. Однако, в этом случае таблица получателя окажется недоступной для выполнения других операций. То есть пользователи, желающие получить доступ к таблице, должны будут ожидать завершения выполнения задачи, даже если они хотят обратиться всего к одной строке, с которой задача мо жет вовсе не работать.

П Enable identity insert. При вставке строк в таблицу с определенным столбцом счетчиком (свойством IDENTITY) значения для столбца-счетчика будут гене рироваться сервером автоматически, а исходные данные будут игнорировать ся. Таким образом, значения в столбцах-счетчиках источника и получателя данных, скорее всего, будут различаться. Однако, в некоторых случаях необ ходимо обеспечить точное совпадение значений на источнике и получателе.

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

• Always commit final batch. Если флажок установлен, то механизмы DTS будут выполнять фиксирование всех строк пакета, которые были обработаны до встречи ошибки. В противном случае будет выполнен откат всех строк, вставленных в ходе выполнения пакета, в котором произошла ошибка. Фик сирование строк полезно, когда выполняются пакеты большого размера, и Глава 11. Доступ к гетерогенным источникам данных повторное копирование строк является накладным. По умолчанию флажок Always commit final batch сброшен.

-• Insert batch size. С помощью этого поля указывается количество строк, кото рое будет обрабатываться при выполнении одного пакета. Если введено зна чение 0, которое также установлено по умолчанию, то все строки будут вставлены за одну операцию. Если вставка одной из строк заканчивается не удачно, то добавление всех строк пакета откатывается. Дело в том, что встав ка строк осуществляется в виде транзакции. Каждый из пакетов выполняется как отдельная транзакция. Если вставка одной из строк не удается, то вся транзакция откатывается. Пользователь может установить размер пакета рав ным 1. В этом случае не будут вставлены только те строки, добавление кото рых не удается по тем или иным причинам. Все остальные строки будут раз мещены. Вставка всех строк за одну транзакцию (в поле Insert batch size установлено значение 0) выполняется быстрее, однако установка размера па кета равным 1 гарантирует добавление всех корректных строк.

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

На этом также заканчивается рассмотрение конфигурирования задачи Transform Data Task.

Задача Execute Process Task С помощью рассматриваемой задачи в ходе выполнения пакета можно запустить любое приложение Windows, такое, например, как MS Word или MS Access. Од нако чаще всего задача Execute Process Task используется для запуска приложе ний, выполняющих дополнительную обработку данных. Нередко эти приложе ния разрабатываются программистами компаний. Кроме того, задача может служить для запуска архиваторов, сжимающих текстовые файлы, в которые с помощью механизмов массивного копирования была закачана информация из баз данных. Закачка данных может быть выполнена также в ходе работы пакета.

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

Конфигурирование задачи Execute Process Task выполняется несравненно легче, чем управление задачей Transform Data Task. Окно свойств рассматриваемой задачи (рис. 11.55) содержит всего несколько полей:

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

П Win32 process. В данном поле пользователь должен указать командную стро ку, которая будет выполняться каждый раз при запуске задачи. Фактически Часть III. Администрирование необходимо задать имя исполняемого файла (com, exe, bat), а также полный путь к нему. Эту информацию можно ввести либо вручную, либо выбрать нужный файл в окне Select File, открыть которое можно с помощью кнопки расположенной справа от рассматриваемого поля.

Рис. 11.55. Окно Execute Process Task Properties • Parameters. Если приложение должно быть запущено со специфическими параметрами, то их можно указать в этом поле.

• Return code. Каждое приложение при завершении своей работы возвращает специальный код, по которому можно судить об успешности выполнения приложения. В зависимости от того, удачно ли было завершено приложение, будет зависеть, успешно ли завершится конфигурируемая задача Execute Process Task. Обычно код 0 свидетельствует о нормальном завершении при ложения. Тем не менее, в некоторых приложениях этому может соответство вать совсем другой код. В рассматриваемом поле указывается значение, при возвращении которого приложением будет считаться, что оно выполнилось успешно. При возврате иного кода считается, что приложение завершилось с ошибкой и, как следствие, задача Execute Process Task считается выполнен ной неудачно.

П Timeout. С помощью этого поля можно указать количество секунд, в течение которого будет ожидаться завершение работы запущенного приложения. Ес ли в указанный срок приложение не завершит работу, то будет считаться, что задача Execute Process Task выполнена неудачно. При указании значения О (по умолчанию) время ожидания завершения приложения не ограничивается.

В этом случае выполнение пакета останавливается до завершения соответст вующего приложения.

О Terminate process after timeout. Флажок становится доступным при указании в поле Timeout ненулевого значения. Если флажок установлен, то по истече нии указанного периода ожидания система будет принудительно закрывать Глава 11. Доступ к гетерогенным источникам данных соответствующее приложение. Это необходимо, если пакет выполняется ав томатически и требуется обеспечить продолжительную работу сервера. Если флажок не установлен и приложение не закрывается самостоятельно, то по прошествии некоторого времени может оказаться, что на сервере будет за пущено множество копий приложения. Это может привести к нехватке опе ративной памяти и высокой загрузке центрального процессора, что отрица тельно отразится на работе SQL Server 2000.

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

На этом рассмотрение конфигурирования задачи Execute Process Task можно считать оконченным.

Задача Execute SQL Task Задача Execute SQL Task служит для выполнения пакетов команд Transact-SQL, которые могут включать команды выборки, вставки, изменения или удаления данных, выполнения хранимых процедур, команды создания, удаления или мо дификации таблиц база данных и т. д. Помимо этого, с помощью рассматривае мой задачи можно присвоить значения глобальным переменным выполняемого пакета. При этом в качестве присваивомого значения может выступать набор данных, возвращаемый в результате выполнения запроса SELECT.

При конфигурировании задачи Execute SQL Task пользователь должен в окне свойств задачи (рис. 11.56) сконфигурировать следующие элементы управления:

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

О Existing connection. В данном раскрывающемся списке пользователь обязан выбрать имя одного из источников данных, сконфигурированных в пакете. В контексте выбранного источника данных и будут выполняться указанные команды.

• Command time-out. Если время выполнения запроса необходимо ограничить.

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

• SQL statement. В поле указывается собственно код запроса, который необхо димо выполнить. Код может быть введен в поле непосредственно, подгружен из файла или создан с помощью Query Builder. Если вы хотите использовать готовый код, то необходимо нажать кнопку Browse и указать файл, содержа Часть III. Администрирование щий запрос. При этом файл может находиться как на локальном, так и на сетевом диске. Для запуска Query Builder, предназначенного для визуального построения запросов, требуется нажать кнопку Build Query. В ответ откроет ся окно, подобное приведенному на рис. 11.36. Подробно использование по строителя запросов было рассмотрено в разд. "Построитель запросов Query Builder" ранее в этой главе. В процессе конфигурирования задачи можно вы полнить проверку правильности синтаксиса кода, указанного в поле SQL statement. Для этого достаточно нажать кнопку Parse Query.

Рис. 11.56. Окно Execute SQL Task Properties Задача Execute SQL Task допускает использование параметризированных запро сов, ссылающихся на глобальные переменные пакета. Назначение и применение параметризированных запросов было рассмотрено в разд. "Параметризированные запросы" ранее в этой главе. Параметры могут применяться не только при вы полнении запросов, но также и в качестве аргументов хранимых процедур:

EXEC GetListAuthors ?

Напомним, что связывание параметров запроса и глобальных переменных вы полняется с помощью окна Parameter Mapping (рис. 11.57), открыть которое можно с помощью кнопки Parameters в окне свойств задачи. Видно, что окно имеет две вкладки — Input Parameters и Output Parameters. Как следует из на звания, первая из вкладок предназначена для связывания глобальных перемен ных со входными параметрами запроса, тогда как вторая — для присвоения ре зультатов, возвращаемых запросом, глобальным переменным пакета.

Глава 11. Доступ к гетерогенным источникам данных Рис. 11.57. Окно Parameter Mapping Работа со вкладкой Input Parameters (см. рис. 11.57) была приведена в разд. "Параметризированные запросы" ранее в этой главе. В данном же разделе рассмотрим работу со вкладкой Output Parameters (рис. 11.58).

Рис. 11.58. Окно Parameter Mapping, вкладка Output Parameters 422 Часть III. Администрирование Первое, что должен сделать пользователь на вкладке Output Parameters, это вы брать тип связывания возвращаемых запросом значений и глобальных перемен ных пакета. Для этого предназначена группа переключателей Output Parameter Туре, в которой может быть установлен один из перечисленных переключателей:

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

• Row Value. При установке переключателя в указанное положение каждый столбец данных, возвращаемый в результате выполнения запроса, будет со хранен в отдельной глобальной переменной. При установке переключателя в положение Row Value становится доступной таблица Parameter Mapping, рас положенная в нижней части вкладки. Она служит для определения связей между столбцами возвращаемого результата и глобальными переменными. В колонке Parameters, значения которой не изменяются, перечислены имена всех столбцов результата. Имя глобальной переменной, в которую будет по мещен столбец, указывается в колонке Output Global Variables. Элемент этой колонки представляет собой раскрывающийся список, содержащий имена всех глобальных переменных, определенных в пакете. Выбрав имя той или иной переменной, вы тем самым предписываете поместить в нее соответст вующий столбец. В списке также может быть выбрано значение попе. В этом случае данные соответствующего столбца будут потеряны. Для создания новой переменной достаточно нажать кнопку Create Global Variables, после чего появится окно Global Variables, подобное приведенному на рис. 11.40.

Ранее мы уже обсуждали работу с данным окном и поэтому не будем лиш ний раз останавливаться на этом.

• Rowset. Когда переключатель установлен в это положение, то весь результат выборки будет помещен в единственную глобальную переменную. Имя пе ременной, в которую будет помещен результат, отображается в раскрываю щемся списке слева от переключателя. Сохраненный подобным образом ре зультат может впоследствии использоваться как отсоединенный набор строк ADO (disconnected ADO recordset).

Для работы с данными, сохраненными в глобальных переменных в виде столб цов или даже наборов строк, применяются стандартные механизмы ADO. На пример, в пакете может быть определена задача ActiveX Script, которая выводит пользователю диалоговое окно с полученными данными. Сохраненные в гло бальных переменных данные также могут быть использованы при выполнении преобразований с помощью задачи Transform Data Task.

Само по себе конфигурирование задачи Execute SQL Task не представляется трудным. Гораздо более сложной задачей является последующее использование данных, сохраненных в глобальных переменных. Подробное описание подобной работы потребовало бы детального рассмотрения функций DTS, доступных при работе со скриптовыми языками ActiveX. Однако вследствие ограничений на объем книги это не представляется возможным.

Глава 11. Доступ к гетерогенным источникам данных Задача Data Driven Query Task В одном из предыдущих разделов была рассмотрена работа с задачей Transform Data Task, предоставляющей довольно широкие возможности по копированию и преобразованию данных. Однако возможности этой задачи были несколько ог раничены. В частности, в распоряжении пользователей имеется всего два типа преобразований — Copy Column и ActiveX Script. Хотя последний тип преобра зования и предоставляет практически неограниченные возможности при работе с данными, все же иногда более удобным является работа с шаблонными типа ми преобразований, реализующих те или иные операции.

При создании пакета DTS в распоряжении пользователей имеется задача Data Driven Query Task, которая предоставляет самые широкие возможности по ко пированию и преобразованию данных. Эта задача имеет более широкие воз можности, чем Transform Data Task. В частности, помимо копирования данных, дополнительно можно выполнять вставку, изменение или удаление данных в некоторых связанных таблицах.

( Замечание ^ Использование задачи Data Driven Query Task требует довольно высокого уровня профессионализма. Используйте эту задачу только для выполнения сложных опе раций, недоступных другим типам задач. В большинстве случаев вполне достаточно возможностей, предоставляемых задачей Transform Data Task.

Окно свойств задачи Data Driven Query Task имеет шесть вкладок. Напомним, что конфигурирование задачи Transform Data Task выполняется с помощью пяти вкладок. В большинстве вкладки задачи Data Driven Query Task повторяют вкладки задачи Transform Data Task. Дополнительная вкладка имеет название Queries и ее назначение будет рассмотрено ниже.

Первая вкладка окна свойств задачи Data Driven Query Task имеет имя Source (рис. 11.59). Она полностью соответствует вкладке Source окна свойств задачи Transfer Data Task (см. рис. 11.34). Более того, назначение и использование эле ментов управления обеих вкладок полностью идентично. Для получения инфор мации о работе со вкладкой Source окна Data Driven Query Task Properties следует обратиться к описанию работы с задачей Transfer Data Task в разд. "Задача Transfer Data Task" ранее в этой главе. Более того, вкладки Bindings, Transformations, Lookups и Options окна свойств задачи Data Driven Query Task практически полно стью совпадают, соответственно, с вкладками Destination, Transformations, Lookups и Options окна свойств задачи Transfer Data Task. Работа с этими вкладками была рассмотрена в разд. "Задача Transfer Data Task".

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

О ActiveX Script позволяет выполнять преобразование данных с использованием языков VBScript или JavaScript, а также с помощью дополнительных компиля Часть III. Администрирование торов, например PerlScript. Этот тип преобразований поддерживается задачей Transform Data Task и был подробно рассмотрен при ее описании.

Рис. 11.59. Окно свойств задачи Data Driven Query Task G Copy Column используется для простого копирования данных столбца источ ника в столбец получателя. Также был рассмотрен при описании задачи Transform Data Task.

О Date Time String преобразует данные о времени и дате в символьную строку указанного формата. При этом можно выделить любую из составляющих ис ходных данных: год, месяц, день, час, минуту, секунду или миллисекунду.

• Lowercase String выполняет преобразование всех символов текстовых данных в нижний регистр.

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

CJ Read File позволяет использовать файл в качестве исходного столбца.

П Trim String удаляет из строки лидирующие, конечные и внутренние пробелы, символы табуляции, символы конца строки, перевода строки, вертикальной линии, прогона строки (т. е. имеющие коды 0x09—OxOd, 0x20). При работе со строками Unicode будут удаляться аналоги указанных символов.

• Uppercase String — выполняет преобразование всех символов текстовых дан ных в верхний регистр.

Глава 11. Доступ к гетерогенным источникам данных Мы не будем подробно останавливаться на конфигурировании перечисленных выше типов преобразований, т. к. работа с ними не представляет особого труда.

Помимо рассмотренного отличия между вкладками Transformations задач Data Driven Query Task и Transform Data Task, как уже было сказано ранее, существу ет и различие между вкладками Options этих задач. На рис. 11.60 приведен вид вкладки Options задачи Data Driven Query Task. Как видно, отсутствует группа элементов SQL Server, предназначенная для оптимизации обмена данными ме жду серверами SQL Server. В остальном же состав и назначение имеющихся элементов на вкладке элементов управления соответствуют назначению элемен тов на вкладке Options задачи Transform Data Task.

Рис. 11.60. Окно Data Driven Query Task Properties, вкладка Options Таким образом, к данному моменту читатель должен уметь работать с пятью вкладками окна свойств задачи Data Driven Query Task. Нерассмотренной оста лась только вкладка Queries (рис. 11.61), которой и будет посвящена оставшаяся часть данного раздела.

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

426 Часть III. Администрирование Рис. 1 1. 6 1. Окно Data Driven Query Task Properties, вкладка Queries Самым первым элементом вкладки является раскрывающийся список Query type, предназначенный для выбора типа операции, для которой необходимо оп ределить запрос. Список содержит значения:

О Insert — используется для вставки данных;

• Update — предназначен для выполнения обновления;

• Delete — позволяет выполнять удаление;

П Select — служит для выполнения выборки данных.

В поле, расположенном непосредственно ниже списка Query type, отображается код запроса. Для каждого из типов операции пользователь может указать от дельный запрос, который и будет реализовывать выполнение соответствующей операции. Текст запроса может быть введен в поле вручную или сгенерирован с помощью построителя запросов Query Builder. В последнем случае для вызова построителя запросов достаточно нажать кнопку Build. Работа с построителем запросов была подробно рассмотрена в разд. "Построитель запросов Query Builder" ранее в этой главе. Отметим, что в запросе могут использоваться пара метры. Подробно назначение и применение параметров было рассмотрено в разд. "Параметризированные запросы"ранее в этой главе. Указанный запрос каж дого типа будет отдельно запускаться в ходе выполнения задачи для каждой вставляемой в таблицу получателя строки.

В нижней части вкладки расположена таблица Destination to parameter mapping, с помощью которой указывается отображение столбцов получателя в параметры запроса. Когда в коде запроса используются параметры, для каждого из них в Глава 11. Доступ к гетерогенным источникам данных таблице Destination to parameter mapping создается отдельная строка. В колонке Parameters указывается имя параметра (точнее его номер). В колонке Destination пользователь должен выбрать имя столбца таблицы получателя, значение кото рой будет подставлять вместо параметра. Обратим внимание, что для задания значений параметров используют только те строки, которые копируются в таб лицу получателя в ходе выполнения задачи. Данные, уже существующие в таб лице, не используются.

Нерассмотренной осталась только кнопка Parse/Show Parameters, с помошыо которой можно выполнить проверку синтаксиса введенного запроса и обновить список параметров, отображаемых в таблице Destination to parameter mapping.

На этом рассмотрение конфигурирования задачи Data Driven Query Task можно считать оконченным.

Задача Copy SQL Server Objects Task С помощью уже описанных задач можно выполнять копирование данных между самыми различными источниками данных, попутно осуществляя довольно слож ные преобразования копируемых данных. Однако рассмотренные задачи выпол няют дублирование данных в готовые таблицы. Копирование же собственно структуры таблицы при этом не выполняется. Более того, нередко с таблицами ассоциированы индексы, ограничения целостности, умолчания и т. д. При орга низации данной операции все эти объекты остаются "за бортом". Тем не менее, нередко бывает необходимо скопировать не только собственно данные, но и таб лицы, в которых хранятся соответствующие данные, а также вспомогательные объекты, связанные с этими таблицами. Кроме того, иногда требуется скопиро вать хранимые процедуры, триггеры, пользователей баз данных, функции и т. д.


Дублирование объектов баз данных, а также содержащейся в них информации, можно выполнить с помощью задачи Copy SQL Server Objects Task, специально разработанной для этих целей. Однако эта задача имеет одно существенное ог раничение — она работает только с источниками данных SQL Server 2000 и SQL Server 7.0. Таким образом, обмен объектами и данными с использованием зада чи Copy SQL Server Objects Task возможен только между серверами SQL Server версий 7.0 и 2000. Для копирования объектов с более ранних версий SQL Server (6.5 и 6.0) необходимо использовать мастер обновления Upgrade Wizard. Работа с более ранними версиями SQL Server не реализована. Тем не менее, можно выполнить обновление более ранних версий (например, SQL Server 4.1) до SQL Server 6.x, и тогда применить Upgrade Wizard для копирования объектов и дан ных. Более подробно выполнение обновления было рассмотрено в главе 6.

Окно свойств задачи Copy SQL Server Objects Task представлено на рис. 11.62.

Как видно, окно содержит три вкладки. Первая вкладка имеет имя Source и предназначено для указания источника данных, с которого будут копироваться объекты и данные. База данных получателя, а также имя сервера, выбирается на вкладке Destination. Ранее уже были рассмотрены задачи, имеющие похожие вкладки Source и Destination, поэтому мы не будем лишний раз останавливаться на рассмотрении элементов управления, имеющихся на них, и перейдем к рас смотрению вкладки Сору.

Часть III. Администрирование Рис. 11.62. Окно Copy SQL Server Objects Task Properties Рис. 11.63. Окно Copy SQL Server Objects task Properties, вкладка Copy Глава 11. Доступ к гетерогенным источникам данных Вкладка Сору (рис. 11.63) является ничем иным, как окном Select Object to Copy мастера DTS Import/Export Wizard (см. рис. 11.20). Соответственно, работа с указанным окном мастера была рассмотрена в разд. "Выбор объектов для копиро вания" ранее в этой главе. Более того, при конфигурировании копирования объ ектов с помощью мастера DTS Import/Export Wizard в результате будет получен пакет DTS, содержащий единственную задачу Copy SQL Server Objects Task.

Таким образом, конфигурирование задачи Copy SQL Server Objects Task можно считать рассмотренным.

Задача Send Mail Task Задача Send Mail Task позволяет отправлять сообщения по электронной почте.

Однако, прежде чем станет возможным работа с этой задачей, необходимо для службы SQLServerAgent сконфигурировать почтовый профиль, который будет использоваться для отправления сообщений. Конфигурирование почтового профиля для службы SQLServerAgent было рассмотрено в подразд. "Вкладка Gen eral" разд. "Конфигурирование службы SQLServerAgent" главы 8. Окно свойств зада чи Send Mail Task приведено на рис. 11.64.

Рис. 11.64. Окно Send Mail Task Properties Конфигурирование задачи Send Mail Task практически ничем не отличается от отправки обычного сообщения по электронной почте с помощью почтовых программ. Тем не менее, рассмотрим элементы управления, использующиеся для конфигурирования задачи:

430 Часть III. Администрирование ^ П Description. В этом поле, как и при конфигурировании всех других задач, указывается имя, по которому будет выполняться идентификация создавае мой задачи Send Mail Task в пределах пакета.

• Profile name. Раскрывающийся список содержит перечень почтовых профи лей, сконфигурированных для службы MSSQLServer. Выбирая тот или иной профиль, вы тем самым определяете адрес, на который будет осуществляться отправка сообщения.

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

П То. В этом поле указывается адрес, на который будет отправлено сообщение (например, оператору). Адрес может быть либо введен вручную, либо выбран из адресной книги, открыть которую можно с помощью кнопки i, распо ложенной в правой части окна в той же строке, что и поле То.

П СС. В данном поле можно указать адрес, по которому следует отправить ко пию сообщения (например, оператору последней надежды или администра тору). Однако, если копию отправлять не требуется, то поле можно оставить пустым.

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

• Message. В этом текстовом поле задается собственно текст сообщения. О Attachments. В данном поле можно определить имя и путь к файлу, который должен быть отправлен вместе с сообщением. Это дает возможность посы лать по электронной почте файлы, подготовленные другими задачами пакета.

Таким файлом может являться как список встретившихся ошибок, так и файл с данными, скачанными задачей Bulk Insert Task.

Пример конфигурирования задачи Send Mail Task приведен непосредственно на рис. 11.64.

Задача Bulk Insert Task Рассмотренные ранее задачи позволяют выполнять копирование информации между самыми различными источниками данных с выполнением сложных пре образований и дополнительных изменений данных в различных таблицах. Эти задачи требуют значительных усилий для конфигурирования и не оптимизиро ваны для выполнения простого копирования. Тем не менее, часто бывает необ ходимо закачать информацию из форматированного текстового файла. И вы полнить это нужно довольно быстро. При этом не нужно выполнять никаких прямых или косвенных преобразований данных, а достаточно просто поместить в таблицу всю информацию, содержащуюся в файле.

Для решения подобных проблем была разработана задача Bulk Insert Task, по зволяющая выполнять массивную закачку данных в таблицу из текстового фай Глава 11. Доступ к гетерогенным источникам данных ла, обеспечивая при этом максимальную по сравнению с другими задачами ско рость копирования данных. При этом обеспечивается поддержка стандарта Unicode. На рис. 11.65 приведено окно свойств задачи Bulk Insert Task.

Рис. 11.65. Окно Bulk Insert Task Properties Как видно, окно имеет две вкладки. Первая из них, General, содержит элементы управления, с помощью которых задаются основные свойства задачи. Рассмот рим эти элементы управления.

О Description. В этом поле указывается имя, по которому будет выполняться идентификация задачи в пакете. Имя задачи должно быть уникально в пре делах пакета.

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

П Destination table. Имя таблицы, в которую будут закачиваться данные, выбира ется в рассматриваемом раскрывающемся списке. Если нужная таблица была только недавно создана и еще не отображена в списке, то, нажав кнопку Refresh, можно обновить список таблиц. Отметим, что возможностями рас сматриваемой задачи создать новую таблицу нельзя. Если же нужной таблицы в базе данных еще нет, то она должна быть создана другими средствами.

П Source data file. В этом поле указывается имя и путь к текстовому файлу, в котором содержатся данные для копирования. Имя и путь могут быть указа ны либо непосредственно, либо выбраны с помощью окна Browse For Existing File, открыть которое можно с помощью кнопки Щ, расположенной 15 ЗОЕ.

432 Часть III. Администрирование справа от поля. Отметим, что задача Bulk Insert Task работает только с фай лами, размещенными на локальных дисках.

О Use format file. В текстовом файле не содержится никакой информации о названии столбцов, их размере, типе данных и т. д. При выполнении закачки данных из текстового файла в таблицу могут возникнуть проблемы с интер претацией формата данных. Задача Bulk Insert Task должна иметь необходи мую информацию о каждом столбце текстового файла. Эта информация хра нится отдельно от самих данных в специальном файле форматирования (format file). Установка переключателя в положение Use format file предписы вает при выполнении задачи использовать конкретный файл форматирова ния, имя и путь к которому указываются в списке правее переключателя. Ес ли готового файла нет, то его можно создать интерактивно, нажав кнопку Generate. В ответ откроется окно мастера, с помощью которого можно будет сконфигурировать все необходимые свойства и сразу же просмотреть резуль тат форматирования.

• Specify format. В большинстве случаев структура закачиваемых текстовых фай лов довольно проста и нет нужды применять сложные файлы форматирования.

Установка переключателя в рассматриваемое положение позволяет не исполь зовать конкретный файл форматирования, а задать данные о формате тексто вого файла непосредственно в окне свойств конфигурируемой задачи. В этом случае становятся доступными следующие элементы управления:

Row delimiter — этот раскрывающийся список служит для выбора символа • (или символов), которые будут вставляться в конце каждой строки файлов исключения. По умолчанию в списке выбран символ перевода каретки — {LF}, но допускается использование символа возврата строки — {CR}. Эти символы могут применяться и вместе — {CR}{LF}. Помимо указанных символов можно использовать точку с запятой (Semicolon), запятую (Comma), символ табуляции (Tab), вертикальную полосу (Vertical Bar) или любой другой произвольный символ. Разрешается также не использовать никакого символа (попе).


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

По умолчанию для разделения столбцов предлагается применять символ табуляции (Tab).

) ( Замечание В настоящей главе мы не будем подробно рассматривать механизмы массивного копирования и использование файлов форматирования в частности. Эта тема будет раскрыта в полной мере в главе 28.

На этом работа со вкладкой General заканчивается. В принципе, на этом можно закончить и конфигурирование всей задачи, т. к. значения, установленные на вкладке Options по умолчанию, вполне подходят для большинства пользовате лей. Тем не менее, некоторые проблемы массивного копирования данных нель Глава 11. Доступ к гетерогенным источникам данных зя разрешить, не воспользовавшись вкладкой Options (рис. 11.66). Кроме того, с помощью указанной вкладки можно выполнить тонкую настройку процесса за качки данных.

Рис. 11.66. Окно Bulk Insert Task Properties, вкладка Options Вкладка Options имеет следующий набор элементов управления:

• Check constraints. Если в таблице получателя определены ограничения цело стности, то по умолчанию все вставляемые данные проверяются на соответ ствие этим ограничениям целостности. Если вставляемая строка не удовле творяет установленным ограничениям целостности, то ее вставка отменяется и генерируется ошибка. Проверку на соответствие ограничениям целостно сти можно отменить, если сбросить флажок Check constraints. Это поможет увеличить скорость вставки данных в таблицу получателя, но может привести к тому, что в таблице будут содержаться данные, не соответствующие опре деленным для таблицы ограничениям целостности. Тем не менее, проверка данных на соответствие ограничениям целостности может быть выполнена позже с помощью команд проверки целостности базы данных DBCC.

• Keep Nulls. Если в столбце таблицы получателя определено значение по умолчанию, то при попытке вставки в нее значения NULL В нем будет сохра нено значение по умолчанию, даже если в этом столбце и разрешено хране ние значений NULL. Однако, в некоторых случаях следует обеспечить копиро вание и значений NULL. В этом случае необходимо установить рассматриваемый флажок. По умолчанию значения NULL будут заменяться значениями по умолчанию. Если значение по умолчанию не определено и разрешено хранение NULL, ТО В столбце будет сохранено значение NULL. ЕСЛИ 15* 434 Часть III. Администрирование же размещение значений NULL запрещено, то при попытке вставки в столбце пустого значения (NULL) будет выдано сообщение об ошибке.

• Enable identity insert. При вставке строк в таблицу с определенным столбцом счетчиком (свойством IDENTITY) значения для столбца-счетчика станут гене рироваться сервером автоматически, а исходные значения будут игнориро ваться. Таким образом, значения в столбцах-счетчиках источника и получа теля данных, скорее всего, будут различаться. Однако, в некоторых случаях нужно обеспечить точное совпадение данных на источнике и получателе. Для разрешения вставки явных значений в столбец-счетчик на получателе необ ходимо установить флажок Enable identity insert. По умолчанию этот флажок сброшен.

О Table Lock. Выбор флажка требует установки на время выполнения задачи, точнее на время вставки данных в таблицу получателя, блокировки на уровне таблицы. По умолчанию применяются блокировки на уровне строк, что тре бует заметно большего объема ресурсов. Для повышения производительности копирования данных можно использовать блокировки на уровне таблицы.

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

• Sorted data. Если столбец, по которому отсортированы данные в файле, вхо дит в кластерный индекс таблицы, то это может помочь увеличить произво дительность операций массивного копирования. Для этого необходимо уста новить рассматриваемый флажок и в поле справа от него ввести имя столбца таблицы получателя, по которому отсортированы данные в текстовом файле.

По умолчанию считается, что данные в текстовом файле не отсортированы.

• Code page. С помощью данного раскрывающегося списка указывается, для какой кодовой страницы был создан текстовый файл. При переносе данных, не поддерживаемых Unicode (столбцы типа t e x t, varchar и char), требуется явно указать, к какой кодовой странице они принадлежат. Однако этого можно не делать, если не используются символы с кодом ниже 32 или выше 127. При необходимости сервер выполняет автоматическое преобразование данных. Значение кодовой страницы применяется для типов данных char, varchar и t e x t и влияет только на символы с кодом меньше 32 или больше 127. Список содержит элементы:

OEM — кодовая страница, установленная на локальном компьютере;

• АСР — кодовая страница 1252 (ANSI/Microsoft Windows — ISO 1252);

• RAW — при указании данного параметра данные записываются в "сыром" • (raw) виде. Никакое преобразование не выполняется. Это позволяет дос тичь максимальной производительности. Часто используется при перено се данных между однотипными серверами.

Глава 11. Доступ к гетерогенным источникам данных О Data file type. Задача Bulk Insert Task может работать с текстовыми файлами нескольких форматов. С помощью раскрывающегося списка Data file type пользователь может выбрать один из четырех поддерживаемых форматов:

char — исходный текстовый файл имеет символьный формат. Это самый • простой формат текстовых файлов, который может быть сгенерирован практически любым приложением или введен вручную с помощью самого простого текстового редактора;

native — специальный формат файлов, называющийся исконным (native). В • этом формате данные представляются именно в том виде, в каком они хранятся в таблице SQL Server 2000. Пользователь не должен указывать никакой информации о формате текстового файла. Полученный файл ис конного формата не может быть просмотрен напрямую в текстовом ре дакторе. Данный формат обеспечивает наиболее высокую производитель ность операций массивного копирования. К недостаткам можно отнести несовместимость с другими приложениями. Исконные файлы поддержи ваются только серверами SQL Server;

widechar — в этом случае предполагается, что данные в файле хранятся в • символьном формате с поддержкой Unicode. Для разделения колонок применяется символ табуляции \ t, для разделения строк — символ новой строки \п. Файлы widechar в принципе можно прочитать с помощью тек стового редактора, но это связано с определенными трудностями. Кроме того, рассматриваемый формат нельзя использовать при работе с файла ми, сгенерированными SQL Server 6.x, т. к. эти системы не поддерживают стандарта Unicode;

• widenative — формат является комбинацией форматов native и widechar.

При выборе рассматриваемого формата предполагается, что для всех тек стовых данных используется формат Unicode, а остальные типы данных представляются в исконном, внутреннем формате SQL Server 2000. Такой подход обеспечивает высокую производительность наряду с возможно стью хранения данных на любом национальном языке. Поэтому такие файлы часто применяются для переноса данных между серверами SQL Server 2000 и SQL Server 7.0.

П Insert commit size. Для каждой базы данных можно установить, будут ли опе рации вставки данных при выполнении массивного копирования выполнять ся с помощью транзакций или напрямую. Вставка данных с помощью тран закций позволяет добавить либо все данные, либо никакие. По умолчанию задача Bulk Insert Task вставляет все данные одним блоком. Если данная опе рация осуществляется с использованием транзакций, и происходит ошибка при вставке всего лишь одной строки, то выполняется откат всей операции вставки. Если производится вставка нескольких сотен тысяч строк, то такой вариант неудовлетворителен. Для решения указанной проблемы механизмы массивного копирования позволяют выполнять вставку данных блоками или пакетами (batch). Пакет состоит из ограниченного количества строк. Вставка каждого пакета выполняется как отдельная транзакция. Неудачная вставка 436 Часть III. Администрирование одного пакета не приведет к полной отмене массивного копирования. Весь процесс добавления разбивается на множество более мелких операций. Уста новка флажка Insert commit size предписывает выполнять копирование всех данных в виде серии отдельных пакетов. Размер пакета задается в поле спра ва от флажка. По умолчанию установлено значение 0, что означает копиро вание всех строк за одну транзакцию.

• Only copy selected rows. Предположим, что вы выполняли копирование мил лиона строк, и где-то на половине переноса произошел сбой. Часть данных была скопирована, а другая — нет. Если процесс копирования первой полови ны строк занял несколько часов, то вряд ли вы захотите начинать все с начала.

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

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

Last row — в этом поле указывается номер строки, которая должна быть • скопирована последней. По умолчанию указывается значение 0 и будут скопированы все строки, начиная с указанной в поле First row и заканчи вая последней.

На этом рассмотрение задачи Bulk Insert Task можно считать оконченным. Зада ча является своего рода графическим интерфейсом для утилиты командной строки bcp.exe (bulk copy program). Однако возможности этой утилиты гораздо шире, чем у рассмотренной задачи. В частности, утилита bcp.exe позволяет вы полнять не только закачку данных из текстового файла в таблицу, но и копиро вание данных из таблицы в файл. Скорее, задачу Bulk Insert Task можно срав нить с командой Transact-SQL BULK INSERT, которая так же позволяет выполнять только закачку данных из текстового файла в таблицу. Как работа с утилитой bcp.exe, так и использование команды BULK INSERT будут рассмотрены в разд. "Механизмы массивного копирования " главы 28.

Задача Execute Package Task Когда необходимо реализовать сложный процесс копирования и трансформации данных, может понадобиться создать пакет, содержащий десятки задач. Работа с таким пакетом как с одним целым может быть достаточно сложной. Гораздо проще разбить один пакет на множество более мелких и выполнять их по от дельности. При работе с SQL Server 7.0 это было невозможно, т. к. нельзя за пускать один пакет из другого. В SQL Server 2000 добавилась задача Execute Package Task, которая позволяет запускать один пакет из другого.

Глава 11. Доступ к гетерогенным источникам данных Использование задачи Execute Package Task позволяет распределить работу по реализации процесса копирования и преобразования данных между нескольки ми пользователями, каждый из которых будет ответственен за часть работы. Ка ждый пользователь создает отдельный пакет, являющийся законченным и рабо тающим самостоятельно. Затем администратор создает главный пакет, из которого производится вызов остальных пакетов.

Окно свойств задачи Execute Package Task имеет две вкладки. Первая вкладка имеет название General (рис. 11.67) и содержит перечисленные далее элементы управления:

О Description. В этом поле указывается имя, под которым задача будет иденти фицироваться в пакете. Имя должно быть уникально в пределах пакета.

Рис. 11.67. Окно Execute Package Task Properties, вкладка General П Location. С помощью раскрывающегося списка задается источник, в котором содержится нужный пакет. В зависимости от того, какой элемент выбран в списке, меняется состав элементов управления в группе, расположенной в нижней части вкладки. На рис. 11.67 приведен вид вкладки, когда в списке выбран элемент SQL Server. Вкладка будет иметь подобный вид и при выбо ре SQL Server Meta Data Services. Список имеет следующие элементы:

SQL Server — при установке переключателя в это положение можно будет • выбрать любой из пакетов, сохраненных на сервере. Описание пакетов содержится в системной таблице sysdtspackages базы данных Msdb;

Часть III. Администрирование • SQL Server Meta Data Services — в этом случае будет доступен любой из пакетов, хранящихся в структурах службы метаданных SQL Server. Служ бы метаданных позволяют отслеживать изменение пакета, его использо вание, потоки данных, которыми оперировал пакет, и некоторую другую информацию;

Structured Storage File — в этом случае необходимо указать файл (струк • турированный СОМ-файл) на диске, в котором хранится нужный пакет.

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

Package name. В этом поле задается имя пакета DTS, который необходимо выполнить. Указанный пакет должен существовать в хранилище, выбранном в списке Location и определенном с помощью элементов управления, распо ложенных в нижней части вкладки. Если вы не помните имени пакета, то для просмотра доступных пакетов можно воспользоваться окном Select Package (рис. 11.68), которое является своего рода их браузером, позволяю щим также просматривать и версии пакетов. Для открытия окна Select Package достаточно нажать кнопку ^ 1, расположенную справа от поля Package name.

Рис. 11.68. Окно Select Package • Password. Когда в одном из предыдущих разделов этой главы мы рассматрива ли создание пакетов с помощью мастера DTS Import/Export Wizard, то при описании сохранения созданного пакета было сказано, что для пакета можно установить пароль, без знания которого выполнение данного пакета будет не возможно. Если для пакета, который предполагается запустить с помощью конфигурируемой задачи, был установлен такой пароль, то его нужно указать в поле Password. В противном случае попытка выполнения пакета, и, следова тельно, соответствующей задачи Execute Package Task, закончится неудачно.

• Package ID. В этом текстовом поле указывается шестнадцатеричное число, являющееся уникальным идентификатором пакета, определенного в поле Package name.

Глава 11. Доступ к гетерогенным источникам данных П Version. Как уже говорилось, один и тот же пакет может иметь множество вер сий. При внесении изменений в пакет и последующем сохранении автоматиче ски генерируется новая версия. Пользователь может получить доступ к любой из версий пакета (если пакет хранится в структурах службы метаданных).

• Server. В этом раскрывающемся списке пользователь должен выбрать имя сервера SQL Server, на котором расположен необходимый для выполнения пакет.

П Use Windows NT Authentication. После того, как имя нужного SQL Server бы ло выбрано в списке Server, необходимо выбрать тип аутентификации, с ис пользованием которого станет устанавливаться соединение с сервером. При установке переключателя в рассматриваемое положение для успешной рабо ты пакета DTS нужно, чтобы пользователь, выполняющий пакет, вошел в домен Windows NT, и его учетной записи Windows NT на указанном SQL Server были предоставлены необходимые права доступа к данным.

• Use SQL Server Authentication. При выборе данного переключателя установ ление соединения с источником данных будет выполняться на основе учет ной записи SQL Server. В этом случае становятся доступными два дополни тельных элемента:

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

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

На этом работу со вкладкой General можно считать рассмотренной. Теперь же перейдем к описанию вкладки Options (рис. 11.69), предназначенной для тонкой настройки выполняемого пакета.

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

П Name. Элемент этой колонки представляет собой раскрывающийся список, содержащий имена всех глобальных переменных, имеющихся в выбранном пакете.

• Туре. В этой колонке указывается тип соответствующей переменной. Разре шается изменять тип не только вновь создаваемых переменных, но и имею щихся. Элемент колонки представляет собой список всех доступных типов.

• Value. Указывается значение;

которое будет присваиваться соответствующей переменной в момент запуска пакета.

Для создания новой переменной достаточно нажать кнопку New. Другим вари антом создания новой переменной является редактирование самой нижней пус той строки таблицы. Если нужно удалить существующую переменную, то это можно сделать с помощью кнопки Delete. Однако при удалении переменной Часть III. Администрирование следует быть внимательным. Дело в том, что удаляемая переменная может ис пользоваться в одной или более задач пакета, a DTS Designer не выполняет про верки на нарушение работы заданий вследствие удаления переменной.

Рис. 11.69. Окно Execute Package Task Properties, вкладка Options На этом описание конфигурирования задачи Execute Package Task можно счи тать оконченным.

Задача Message Queue Task С помощью задачи Message Queue Task пакеты DTS могут обмениваться сим вольными строками, глобальными переменными и файлами. Это реализуется с помощью технологии Message Queuing. Поддержка обмена данными между па кетами открывает большие возможности по управлению ходом выполнения па кетов. Например, пакет может выполнять массивную закачку данных из файла, полученного с помощью механизмов Message Queuing. Помимо этого, с помо щью полученных значений глобальных переменных можно управлять ходом вы полнения параметризированных запросов. Таким образом, набор строк, встав ляемых в таблицу, может зависеть от результата выполнения пакета на сервере в офисе, расположенном в другом городе.

Окно свойств задачи Message Queue Task представлено на рис. 11.70.

Глава 11. Доступ к гетерогенным источникам данных Рис. 11.70. Окно Message Queue Task Properties с Замечание Для нормальной работы задачи Message Queue Task нужно предварительно устано вить службу Message Queuing Services. Для Windows NT 4.0 требуется установить Microsoft Windows NT 4.0 Option Pack. При работе с Windows 2000 необходимые компоненты поставляются в составе этой операционной системы. Тем не менее, по умолчанию они не устанавливаются.

Конфигурирование задачи выполняется с помощью следующих элементов управления:

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



Pages:     | 1 |   ...   | 10 | 11 || 13 | 14 |   ...   | 33 |
 





 
© 2013 www.libed.ru - «Бесплатная библиотека научно-практических конференций»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.