|
По материалам статьи Marcin Policht: SQL Server 2000 DTS Part 4 - DTS Designer Tasks В предыдущей
статье о SQL Server 2000 Data Transformation Services мы
рассмотрели первый основной компонент DTS пакета -
Подключение. Теперь пришло время изучить другой
критически-важный компонент - Задача (Task), которая
предназначена для процессинга данных, полученных через
Подключение. Задачи помечены разными значками в окне DTS
Designer с названием Tasks и могут быть легко добавлены к
пакету, путём простого перемещая их курсором мыши в окно
пакета. Большинство из задач требуют наличия уже существующего
в пакете подключения или нескольких подключений, если это
необходимо. 1. Bulk Insert task - исполняет функцию "обёртки" для T-SQL команды BULK INSERT, и её целью является быстрый импорт данных из текстового файла с разделителями полей в таблицу базы данных SQL Server. При настройке параметров этой задачи Вы можете указать разделители строки и полей или формат файла. Главный недостаток этой задачи - её слабая гибкость. В частности, во время импорта нельзя выполнять трансформацию данных (если это необходимо, Вы можете использовать Transform Data task, который мы рассмотрим позже). Кроме того, нельзя повлиять на отображение полей, т.е. порядок и тип полей в текстовом файле и в таблице должны совпадать. Передача данных может быть выполнена только из текстового файла в SQL Server. Используя закладку Options диалогового окна Bulk Insert Task Properties, которое вызывается двойным щелчком по значку задачи, Вы можете установить несколько дополнительных T-SQL параметров для BULK INSERT, например: проверка ограничений (CHECK_CONSTRAINTS), разрешение вставки значений identity (KEEPIDENTITY), число копируемых строк (FIRSTROW и LASTROW), тип файла данных (DATAFILETYPE) или размер блока (BATCHSIZE). 2. Copy SQL Server Objects task - выполняет копирование объектов между двумя базами данных, например: таблиц (включая данные), представлений, хранимых процедур, ограничений, триггеров, индексов, пользователей, ролей, логинов, первичных и внешних ключей, а так же разрешений этих объектов. Не стоит использовать эту задачу только для того, чтобы копировать данные, т.к. для этого более эффективен Transform Data task. Кроме того, если нужно копировать всю базу данных, лучше использовать Copy Database Wizard или Transfer Databases task (который мы рассмотрим позже). Не смотря на то, что исходная база данных не должна быть доступна пользователям во время операции копирования (в отличие от Copy SQL Server Objects task), эта задача хороша тем, что работает очень быстро. 3. Execute Process task - выполняет указанную Win32 - программу или пакетный файл. Для них Вы можете определить параметры запуска, время блокировки (по истечении которого процесс будет прерван) и код возврата (целочисленное значение, указывающее на успешность исполнения). Процесс выполняется в контексте безопасности учетной записи, под которой был запущен DTS пакет. 4. Execute SQL task - исполняет SQL запрос (включая хранимые процедуры). Запрос может быть разделён на пакеты, разделённые командой GO. Диалоговое окно свойств Execute SQL Task позволяет устанавливать время блокировки, по истечении которого соответствующая задача будет прервана. SQL запрос может быть проверен на правильность его синтаксиса, в нём доступны параметры ввода - вывода и глобальные переменные.
Execute SQL task часто применяется после задач выполняющих импорт данных (например, чтобы пересоздать индексы или обновить статистику). 5. File Transfer Protocol task - помогает решать
распространённые задачи в смешанных или распределённых
системах, где данные должны быть переданы по File Transfer
Protocol. В предыдущих версиях SQL Server, это можно было
сделать с помощью программ третьих фирм (или
специализированными, встраиваемыми решениями). SQL Server 2000
DTS имеет для этого собственные встроенные функциональные
возможности. 6. Send Mail task - позволяет посылать сообщения
электронной почты из DTS пакета. Это обычно используется для
оповещения о результатах выполнения пакета. Результаты могут
быть помещены в тело письма или в прикреплённый к письму файл.
До использования этой задачи, на сервер исполнения пакета
должен быть настроен профиль для MAPI клиента (например,
Outlook). С этим часто возникает путаница, т.к. такой профиль,
возможно, должен быть создан для разных учетных записей, в
зависимости от того, где пакет будет исполнятся. Это может
быть ваша учетная запись, если Вы сами запускаете пакет в
интерактивном режиме, но чаще это учётная запись, стартующая
службу SQL Server Agent (если запуск пакета осуществляется
заданием по расписанию). В последнем случае,
зарегистрировавшись на компьютере где установлен SQL Server
2000 под учетной записью SQL Server Agent, нужно указать в
свойствах агента соответствующий e-mail профиль. 7. Transfer Databases task - передаёт базу данных из SQL Server 7.0/2000 на другой SQL Server 2000. Вы можете выбрать, будет ли база данных скопирована или перемещена. Для нового местоположения базы данных Вы можете указать размещение файлов данных и журналов (используя параметры на закладке File Locations диалогового окна Transfer Database Properties). Невозможно передавать таким образом системные базы данных или уже существующие на сервере назначения базы. Эта задача встроена в Copy Database Wizard, который мы уже рассмотрели в предыдущих статьях. 8. Transfer Error Messages task - выполняет специализированную задачу по копированию определяемых пользователем сообщений об ошибках между двумя SQL серверами (включая передачу ошибок из SQL Server 7.0 в SQL Server 2000). Такие сообщения сохраняются в таблицу sysmessages базы данных master и могут добавляться с помощью хранимой процедуры sp_addmessage. Вы имеете возможность копирования всех таких ошибок или только избранных. Задача умеет не копировать те сообщения, которые уже существуют в получающей ошибки базе. Эта задача тоже используется в Copy Database Wizard. 9. Transfer Jobs task - копирует Задания с серверов SQL Server 7.0/ 2000 (хранимые в нескольких таблицах базы данных msdb) на другой SQL 2000 Server. Эта задача настраивается аналогично Transfer Error Message task, описанному выше (Вы можете передавать все или избранные Задания), и так же эта задача используется в Copy Database Wizard. 10. Transfer Logins task - копирует логины SQL Server 7.0/2000 на другой SQL 2000 Server, аналогично предыдущим двум задачам. Она можете копировать все логины или относящиеся только к избранным базам данных, к которым имеющиеся логины имеют доступ. Это означает то, что если Вы выбираете несколько баз данных, то все логины сопоставленные любым ролям в этих базах данных автоматически будут добавлены в список копируемых. Как и предыдущие задачи, эта задача задействована в Copy Database Wizard. 11. Transfer Master Stored Procedures task - передаёт пользовательские хранимые процедуры из базы master SQL Server 7.0/2000 на другой SQL Server 2000. Здесь также Вы можете передавать все или только избранные процедуры. Для предотвращения конфликтов имён, эта задача не будет перезаписывать уже существующие на получающем сервере хранимые процедуры. Помимо упомянутых выше, SQL Server 2000 DTS предлагает более сложные задачи, например: Execute Package, Dynamic Properties, ActiveX Script, Transform Data, Data Driven Query, и Message Queue. Мы рассмотрим их в следующей статье. |
Перевод: Александра Гладченко 2004г. |