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

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

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


Pages:     | 1 |   ...   | 8 | 9 || 11 | 12 |   ...   | 33 |

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

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

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

Появление стандартов, подобных ANSI SQL-92, способствовало повышению совместимости механизмов различных СУБД. Тем не менее, каждый из произ водителей вносит в свой продукт дополнения и расширения языка для повыше ния конкурентоспособности. Наряду с пользой, получаемой от повышения гиб кости и мощности языка, налицо и отрицательная сторона — несовместимость кода, написанного для разных СУБД.

Корпорация Microsoft избегает этого, применяя в Data Transformation Services технологию сквозного доступа к источникам информации, реализованную в ме ханизме DTS Transformation Engine. При использовании сквозного доступа код запроса отсылается непосредственно СУБД, избегая модифицирования или ин терпретации команд механизмами DTS. Любой оператор, который работал при помощи "родного" интерфейса СУБД, будет работать точно так же и в процессе преобразования. Например, при обращении к серверу Oracle из DTS-пакета ис пользуется то же расширение ANSI SQL, что и при работе непосредственно с Oracle. DTS Transformation Engine гарантирует полную доступность функцио нальности источников. Пользователи могут без изменения обращаться к разра ботанным ранее сценариям и хранимым процедурам, вызывая их как обычно.

В качестве источника информации для DTS может выступать не только СУБД, но и офисные приложения, например Microsoft Excel. Кроме того, используя OLE DB provider for ODBC со специфическим драйвером, можно получить дос туп к ODBC-системам, например Sybase и Informix. В DTS также реализована поддержка текстовых файлов, причем как с помощью поставщика OLE DB, так и напрямую. Корпорация Microsoft максимально упростила процесс импорта и экспорта данных, позаботившись о написании эффективных инструментов для трансформации и переноса информации.

Механизмы Data Transformation Services позволяют запускать операции импорта и экспорта между множеством гетерогенных хранилищ информации. Причем при выполнении одной задачи DTS можно осуществлять как импорт, так и экс порт. С помощью DTS можно создавать мощные автоматизированные системы.

которые будут самостоятельно копировать данные из множества источников, выполнять их трансформацию и, возможно, экспортировать данные или их часть в другие хранилища. Трансформация — это процесс преобразования дан ных механизмами Data Transformation Services при их переносе с одного источ ника на другой. В SQL Server 2000 реализованы довольно мощные механизмы трансформации данных, позволяющие выполнять сложную обработку данных.

Администратор может легко реализовать любой алгоритм трансформации дан ных. Для этого DTS позволяет использовать скриптовые языки JavaScript.

VBScript и PerlScript.

Объединяя возможности автоматического выполнения задач DTS с механизма ми трансформации, администратор может создавать очень мощные системы об работки данных. В центре такой системы будет располагаться SQL Server 2000, а на периферии могут находиться самые разнообразные системы. Однажды на 330 Часть III. Администрирование строив процесс переноса и трансформации данных, администратор может лишь изредка контролировать параметры его работы и при необходимости вносить какие-то изменения. Службы DTS возьмут на себя всю "черновую" работу. Это освободит администратора для решения более интеллектуальных задач.

Механизмы DTS позволяют переносить между источниками информации не только сами данные, но и описание таблиц. Кроме того, если все участники переноса данных работают на серверах SQL Server 2000, то допускается также перенос различных объектов базы данных: индексов, умолчаний, триггеров, ог раничений целостности и т. д. Кроме того, допускается перенос пользователей и разрешений, выданных пользователям на доступ к объектам.

Архитектура DTS Перед тем, как начать процесс переноса данных, необходимо сначала описать все источники информации, к которым будет выполняться обращение, а также описать действия, которые будут осуществляться при переносе данных. Описа ние всех этих параметров сохраняется в специальном объекте — пакете (package). Любой пакет DTS состоит из трех основных объектов:

П Connections objects. Объекты этого типа используются для описания источни ков данных OLE DB, к которым будет выполняться обращение в процессе выполнения пакета. Сразу же после запуска пакета SQL Server 2000 службы трансформации устанавливают соединение с описанными источниками дан ных. Объекты Connections objects бывают следующих типов:

File connections. Тип предназначен для работы с текстовыми файлами.

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

Data Source Connections. Данный тип служит для работы с источниками • данных, поддерживаемых DTS автоматически. В зависимости от типа объ екта необходимо указать имя и пароль пользователя, имя и нахождение файлов и т. д. Может быть использован для работы с SQL Server 2000, Paradox, dBase, MS Access 2000, Oracle, электронными таблицами MS Excel, источниками HTML, ODBC, т. е., всеми источниками, для ко торых имеются поставщики OLE DB.

• Microsoft Data link Connections. Если необходимо установить соединение с источником данных, не поддерживаемым автоматически DTS, но имеющим соответствующего поставщика OLE DB, то нужно будет воспользоваться Microsoft Data Link Connections. Описание источника данных сохраняется в файлах с расширением udl. Конкретный набор свойств, которые необходи мо будет сконфигурировать, зависит от источника данных.

• Task Objects. Объекты этого типа DTS пакета описывают действия, которые необходимо выполнить. Действия представляются в виде задач (tasks). Каж дая задача имеет множество параметров, управляя которыми можно выпол Глава 11. Доступ к гетерогенным источникам данных нять сложные преобразования данных. Объекты Task Objects могут использо ваться для выполнения следующих типов задач:

Преобразование данных. К задачам указанного типа относятся задачи Data • Driven Query Task, Transform Data Task и ParallelDataPump Task Objects.

Они могут использоваться для выполнения преобразования данных прак тически любой сложности. Для описания преобразования служат возмож ности скриптовых языков Microsoft ActiveX.

Копирование и управление данными. К задачам этого типа относятся Сору • SQL Server Objects Task, Execute SQL Task и Bulk Insert Task. Основным их назначением является обеспечение эффективного обмена данными. На пример, можно удалить таблицу, создать ее заново, закачать в нее данные, сделать выборку из таблицы и на основе полученного результата принять решение о том, какая задача должна быть выполнена следующей.

Запуск заданий из пакета DTS. К задачам этого типа относятся задачи • ActiveX Script Task, Dynamic Properties Task, Execute Package Task, File Transfer Protocol Task, Execute Process Task и Send Mail Task. Используя их возможности, допустимо ежедневно запускать приложение, которое будет выполнять сбор и обработку данных. После этого можно запустить второй пакет, который станет выполнять обработку агрегированных данных. По мимо всего прочего, можно отправлять сообщения по электронной почте.

извещающие администратора о ходе выполнения пакета.

П Step Objects. Объекты этого типа описывают последовательность, в которой должны выполняться задачи в пакете. Для этого между задачами устанавли ваются отношения предшествования (precedence constraints), определяющие зависимость задач друг от друга. Например, задача создания резервной копии может выполняться только после того, как будет завершено слияние данных из трех источников. Ниже приведен список отношений предшествования, который имеется в распоряжении пользователей. Для описания отношений предшествования будем предполагать, что существуют задачи TaskA и TaskB, и между ними определено отношение предшествования, причем задача TaskA выполняется первой и от результата ее выполнения будет зависеть, начнет ли выполняться задача TaskB.

Безусловное (Unconditional) — означает безусловное выполнение одной за • дачи после завершения другой. То есть задача TaskB будет выполнена всегда, независимо от результата завершения задачи TaskA. Этот тип от ношения предшествования используется, когда необходимо обязательно выполнить две задачи, но в определенном порядке.

Успешное (On Success) — при использовании отношения предшествова • ния этого типа задача TaskB будет выполнена только в том случае, когда задача TaskA успешно завершена. Данное ограничение предшествования может применяться, например, когда задача TaskA выполняет удаление таблицы, а задача TaskB — ее повторное создание. Таким образом, если таблица не будет удалена, то система не станет пытаться ее создавать, т. к.

эта операция сразу же обречена на неудачу.

332 Часть III. Администрирование • Неудачное (On Failure) — отношение предшествования используется, ко гда необходимо выполнить задачу TaskB в случае неудачного завершения задачи TaskA. Развивая предыдущий пример, в случае невозможности уда ления таблицы можно выполнить задачу, которая удаляет все строки и соответствующим образом изменяет структуру таблицы.

Пакет DTS может быть создан интерактивно с помощью мастера DTS Import and Export Wizard или DTS Designer. Используя мастер DTS Wizard, можно ко пировать данные из таблицы или SQL запроса, включая распределенные. Не опытные пользователи могут прибегнуть к помощи инструмента DTS Query Builder для интерактивного построения запросов. В процессе переноса можно изменить имя, тип, размер и другие свойства столбца, а также выполнить авто матическое преобразование типов данных. Сложность преобразований, предос тавляемая мастерами, весьма ограничена. Они позволяют использовать только один источник и одного получателя данных.

Все возможности, предоставляемые DTS, раскрываются во время применения DTS Designer — простого и наглядного средства. В рамках этого инструмента можно определять доступ ко множеству гетерогенных источников данных, уста навливать отношения предшествования и создавать сложные сценарии преобра зования данных с использованием ActiveX. Каждый из объектов пакета отобра жается своим собственным значком, что позволяет легко воспринимать структуру пакета. Между Task-objects устанавливаются отношения предшество вания в виде направленных каналов. Каждый из трех видов отношений предше ствования в DTS Designer выделяется своим цветом, облегчая понимание логики трансформации данных. Можно устанавливать сложные отношения трансфор мации непосредственно между источниками данных.

Помимо использования графических средств, DTS пакет можно создать и запус тить из приложений, реализующих программирование через СОМ-интерфейс.

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

Созданные пакеты данных могут храниться в системной базе данных SQL Server Msdb, в Microsoft Repository или в имеющих СОМ-структуру файлах. Интеграция DTS и Microsoft Repository позволяет отслеживать происхождение пакетов и данных. Хранение в MS Repository информации о первоначальном состоянии данных и проводимых с ней трансформациях позволяет отслеживать все опера ции, выполняемые в хранилище. Пользователи могут отследить происхождение своих данных как на уровне таблиц, так и на уровне строк. Это обеспечивает возможность полного аудита объектов, хранимых в репозитории. Продукты раз личных производителей могут совместно использовать метаданные об источни ках и приемниках данных, их происхождении и трансформации за счет инте грации с моделью Open Information Model, являющейся фундаментальной архитектурой Microsoft Repository.

Глава 11. Доступ к гетерогенным источникам данных SQL Server предлагает разнообразные способы выполнения пакета. Запуск DTS пакета может быть назначен на определенные моменты времени как задание SQLServerAgent, выполнен интерактивно с помощью Enterprise Manager или за пущен с помощью утилиты командной строки dtsrun.exe. Data Transformation Services поддерживает выполнение задач как потоков операционной системы, что увеличивает производительность за счет распараллеливания процесса трансформации. Выполнение пакета всегда происходит одинаково, независимо от того, как он был создан, где хранится и каким способом запущен.

Каждый пакет обусловливает одну или более задач, выполняемых в определен ной последовательности. Задача представляет собой описание специализирован ного действия, выполняемого как часть преобразования, и хранится в пакете как Task-objects. DTS имеет стандартные задачи выполнения трансформаций с помощью сценариев ActiveX (написанных на VBScript, JavaScript или PerlScript), запуска внешней команды, выполнения SQL запроса, сложной трансформации данных, массивной закачки данных из текстового файла и передачи объектов базы данных. Кроме того, из пакета можно отправить сообщение по электрон ной почте. Эта возможность часто используется для уведомления администрато ра об ошибке, произошедшей при исполнении пакета. DTS поддерживает рас ширяемый СОМ-интерфейс, что позволяет создавать новые задачи для транс формации данных.

Самые большие возможности переноса и трансформации данных предоставляет Data Driven Query Task. Реализованные в этой задаче механизмы позволяют ус танавливать отображение столбцов между источниками информации. Можно выполнять непосредственное копирование данных между таблицами, имеющи ми столбцы одинакового или разного типа данных, или использовать один ич доступных методов преобразований. Сложные трансформации данных могут быть реализованы с помощью сценариев ActiveX и параметризированных запро сов. Data Driven Query Task позволяет создавать множество каналов трансфор мации, каждый из которых имеет собственные флаги и выполняется независи мо. Если в процессе трансформации происходят исключения из-за несоответствия форматов копируемых данных и таблицы назначения, можно сохранить неправильные строки в файл. Счетчик ошибок позволяет установить ограничение на количество неправильных строк, после превышения которого выполнение задачи прервется. Дополнительно можно выполнить копирование только части данных, указав первую и последнюю строку. Разрешается оптими зировать процесс копирования, изменяя количество строк, выбираемых в ис точнике за одну операцию.

Задача Data Driven Query Task имеет средство Data Transformation Lookups, обеспечивающее отдельное соединение в процессе выполнения запроса и вклю чение результатов его выполнения в таблицу назначения. Если в исходной таб лице существует только ID покупателя, а сами имена хранятся в другой базе данных, с помощью Data Transformation Lookups из сценария ActiveX можно выполнить запрос для преобразования ID в имя покупателя и вставки получен ного значения в таблицу-получатель. Достигаемая при этом функциональность и оптимизация для быстрого поиска данных не может быть получена с исполь зованием СОМ-объектов и глобальных переменных.

334 Часть III. Администрирование Некоторые задачи требуют конфигурирования одного или двух соединений с источником данных, реализованных в DTS как Connection-objects. Соединения описываются используемым для подключения поставщика OLE DB, именем сервера, именем базы данных, именем и паролем пользователя или другой ин формацией. Каждый поставщик OLE DB требует ввода специфичных для нею сведений. DTS Designer имеет встроенные объекты соединения для MS Access, FoxPro, MS Excel, SQL Server, Oracle, Paradox, dBase и текстовых файлов. Кроме того, применяя объекты Microsoft Data Link и Other Connections, можно под ключить практически любой источник данных.

Некоторые задачи в пакете должны выполняться в определенном порядке. Для выяснения последовательности выполнения задач предназначены отношения предшествования, реализуемые в DTS-пакете как Step-objects. Отношения предшествования позволяют создавать сложные системы импорта, экспорта и трансформации данных, охватывающие множество разнородных источников и гибко реагирующие на происходящие при выполнении DTS-пакета события.

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

Таким образом, задача TaskB имеет отношение предшествования по отношению в задаче TaskA. Отношения предшествования могут накладываться на успешное, неудачное или независимое завершение задачи. Кроме того, на выполнение од ной задача может быть наложено несколько отношений предшествования. В то же время одна задача может участвовать в нескольких отношениях предшество вания. Задача будет запущена только тогда, когда все установленные для нее отношения предшествования будут сняты. Для повышения производительности пакета можно определить несколько отдельных цепочек задач, выполняемых параллельно. Например, можно одновременно экспортировать данные из репо зитория в таблицу Oracle и в файл Paradox.

Перенос данных осуществляется объектом DTS Data Pump, который является многопоточным объектом OLE DB Service Provider, предоставляющим интер фейс для импорта, экспорта и трансформации данных. DTS Data Pump пред ставляет из себя высокопроизводительный внутренний СОМ-сервер, осуществ ляющий массивное перекачивание и трансформацию данных из систем, поддерживающих интерфейс OLE DB. DTS Data Pump поддерживает поставщи ков OLE DB третьих фирм. В процессе переноса данный объект открывает ис точник данных и извлекает из него все записи. Далее Data Pump запускает оп ределенные в пакете запросы и сценарии ActiveX, выполняющие трансфор мацию, проверку целостности и другие действия. Сложные преобразования с использованием ActiveX могут обращаться к любым методам OLE объекта. Кро ме того, DTS позволяет создавать и использовать свои собственные СОМ объекты для преобразования данных. После трансформации данные возвраща ются Data Pump, который запрашивает поставщика OLE DB получателя о нали чии поддержки высокоскоростной загрузки данных. Если поддержка не реали зована, то применяются стандартные механизмы загрузки. Некоторые операции копирования требуют предварительного уничтожения существующих в таблице получателя данных. DTS Data Pump обеспечивает как добавление, так и замену данных.

Глава 11. Доступ к гетерогенным источникам данных SQL Server 2000 поддерживает ActiveX Data Objects 2.0 (ADO), совместимый с OLE Automation и обеспечивающий простой доступ к OLE DB источникам ин формации из высокоуровневых языков программирования (Visual Basic, Visual J, C++) и из скриптовых языков (VBScript, JavaScript, PerlScript). В процессе трансформации пользователь может обращаться к источникам данных и СОМ объектам через интерфейсы ADO.

Помимо механизма передачи данных DTS имеет механизм DTS Objects Transfer, обеспечивающий перенос объектов базы данных между реляционными базами.

Полная функциональность копирования объектов реализуется только между серверами SQL Server 2000. Другие СУБД могут копировать только схемы таб лиц и расположенные в них данные. В процессе исполнения DTS-пакета DTS Objects Transfer генерирует определения объектов и передает сгенерированный Transact-SQL сценарий на сервер-получатель. Для установления соединения с сервером-получателем используется SQL-DMO поверх ODBC, а не OLE DB.

Передача объектов возможна только на системы с установленным SQL-DMO.

Для передачи доступны не только объекты базы данных, такие как таблицы, представления, индексы, триггеры, хранимые процедуры, умолчания и правила, но и учетные записи, пользователи и роли базы данных, а также права доступа на уровне объектов. Можно передавать как все объекты, так и их часть. Кроме того, вместе с копированием объектов можно выполнить копирование данных с одновременным контролем их целостности. DTS может автоматически отслежи вать объекты, необходимые для корректной работы копируемых объектов и вы полнять также и их копирование. К таким объектам относятся триггеры, огра ничения целостности, умолчания, правила и пользовательские типы данных.

Копирование объектов может быть реализовано средствами как DTS Wizard, так и DTS Designer. Запуская в DTS Wizard стандартную задачу Transfer SQL Server Objects, можно перенести как все, так и часть объектов базы данных. При копи ровании объектов можно предварительно уничтожить одноименные объекты в базе данных назначения. Это позволяет избежать проблем несовместимости, связанных с изменением структуры объектов.

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

Мастера DTS Export и Import Wizard Не откроем секрета, если скажем, что мастера были придуманы специально для того, чтобы с легкостью решать сложные задачи. Мастера импорта и экспорта данных с использованием DTS не являются исключением. С помощью этих мастеров пользователь может легко перенести данные между двумя источника ми, выполнив при этом несложные преобразования. Данный раздел будет по священ рассмотрению возможностей мастеров DTS Import Wizard и DTS Export Wizard, а также подробному описанию работы с ними. В принципе, большой 12 Эи. 336 Часть III. Администрирование разницы между мастерами нет и можно без особых проблем запускать один вместо другого. Это связано с тем, что в процессе создания пакета с помощью любого из мастеров нужно указать источник и получатель данных. Таким обра зом, одну и ту же операцию переноса данных можно рассматривать и как им порт, и как экспорт (смотря со стороны какого сервера).

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

Запуск мастера Перед работой мастера его необходимо запустить одним из предложенных ниже способов:

П Нажать кнопку Run a Wizard в панели инструментов Enterprise Manager. В ответ откроется диалоговое окно Select Wizard (рис. 11.1), с помощью кото рого можно запустить любого мастера. Мастера DTS находятся в папке Data Transformation Services. Для запуска нужного мастера достаточно выбрать его имя и нажать кнопку ОК. Окно Select Wizard также можно открыть, выбрав к меню Tools команду Wizards.

П Открыть главное меню, выбрать пункт Programs (Программы), а затем в группе Microsoft SQL Server указать команду Import and Export Data.

• Выполнить команду dtswiz в окне Run (Запуск программы) (рис. 11.2), кото рое можно вызвать с помощью команды Run (Выполнить) главного меню.

Замечание Мастера DTS Import и Export Wizard реализованы в виде утилиты dtswiz.exe, которая расположена в папке \Program Files\Microsoft SQL Server\80\Tools\BINN. Однако ука зание полного пути не требуется, т. к. он указан с помощью переменной окружения PATH, что делает доступными все программы, размещенные в указанной папке. По этому для запуска мастера с помощью окна Run (Запуск программы) достаточно указать только dtswiz, не вводя полный путь и расширение файла.

После того, как мастер будет запущен (неважно каким способом), откроется первое окно (рис. 11.3), в котором указывается общая информация о программе.

Вся работа мастера DTS Import/Export Wizard основана на наборе окон, с по мощью которых пользователи описывают процесс переноса и преобразования данных.

Глава 11. Доступ к гетерогенным источникам данных Рис. 11.2. Окно Run Рис. 11.1. Окно Select Wizard Рис. 11.3. Первое окно мастера DTS Import/Export Wizard С Замечание ^ Как видно, окно имеет заголовок, содержащий совмещенное имя DTS Import/Export Wizard, что лишний раз говорит о том, что между мастерами импорта и экспорта нет Часть III. Администрирование принципиальной разницы. В дальнейшем для мастера мы будем использовать ука занное имя.

с Замечание Когда мастер запускается из Enterprise Manager, то он выполняется как часть Enterprise Manager и не выводится на панели задач (task bar) операционной системы как отдельное приложение. Однако, если мастер запускается с помощью команды d t s w i z или из главного меню, то он работает как самостоятельное приложение и отображается на панели задач. При этом Enterprise Manager может быть даже не запущен.

Конфигурирование источника данных Первое окно мастера не представляет особого интереса и может быть сразу же пропущено. Для перехода ко второму окну (рис. 11.4) достаточно нажать кнопку Next. Второе окно мастера называется Choose a Data Source, что переводится как выбор источника данных.

Рис. 11.4. Окно Choose a Data Source мастера DTS Import/Export Wizard В верхней части окна имеется раскрывающийся список Source, в котором необ ходимо выбрать имя поставщика OLE DB для использования в установлении соединения с источником данных. Ниже, в рамке, размещена группа элементов управления, с помощью которой указываются параметры источника данных.

Конкретный набор элементов управления зависит от выбранного поставщика.

На рис. 11.4 приведен набор элементов управления для поставщика Microsoft OLE DB Provider for SQL Server. Конфигурирование других источников данных Глава 11. Доступ к гетерогенным источникам данных будет рассмотрено далее в этой главе при описании применения DTS Designei.

В этом же разделе приведем лишь список типов источников данных, которые поддерживаются автоматически и доступны сразу же после установки SQL Server 2000:

О СУБД dBase - версии V, III и IV;

О текстовые файлы (txt);

П файлы рабочих областей MS Excel (csv);

• базы данных MS Access (файлы mdb);

• таблицы dBase (файлы dbf);

• электронные таблицы MS Excel (файлы xls) — версии 3—5, 97—2000;

• базы данных Paradox (файлы db) — версии 3.x, 4.x и 5.x;

П СУБД Visual FoxPro;

• СУБД Oracle;

П СУБД SQL Server;

• ресурсы Интернета;

• службы OLAP Services 8.0;

О источники ODBC.

При импорте данных с SQL Server (т. е. когда выбран поставщик Microsoft OLE DB Provider for SQL Server), пользователь должен сконфигурировать следующие элементы:

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

( Замечание } При работе SQL Server 2000 под управлением Windows 98 список Server будет все гда пуст, т. к. эта операционная система не поддерживает необходимых средств просмотра.

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

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

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

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

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

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

П Advanced. С помощью данной кнопки можно открыть диалоговое окно Advanced Connection Properties (рис. 11.5), предназначенное для управления дополнительными свойствами соединения. В большинстве случаев значения по умолчанию являются вполне удовлетворительными, и конфигурирование свойств не требуется. Поэтому мы не будем заострять внимание на описании параметров этого окна.

Рис. 11.5. Окно Advanced Connection Properties Глава 11. Доступ к гетерогенным источникам данных Напомним, что конкретный набор элементов управления в окне зависит от типа выбранного в списке Source имени поставщика OLE DB. В этом же разделе рассматривалось только конфигурирование источника SQL Server.

Конфигурирование получателя данных После того, как источник данных будет соответствующим образом сконфигури рован, можно переходить к третьему окну мастера (рис. 11.6). Оно имеет назва ние Choose a destination, что дословно можно перевести как выбор получателя.

Как следует из названия окна, оно предназначено для конфигурирования полу чателя данных.

Рис. 11.6. Окно Choose a destination мастера DTS Import/Export Wizard Конфигурирование получателя данных практически ничем не отличается от конфигурирования источника данных, что было рассмотрено в предыдущем разделе. Единственное отличие состоит в том, что на источнике данных можно создать новый каталог, в который будут импортированы данные. Применитель но к SQL Server 2000 (т. е. при выборе поставщика Microsoft OLE DB Provider for SQL Server) это означает, что в списке Database существует дополнительный элемент — new, с помощью которого можно создать на импортирующем SQL Server новую базу данных, где и будут сохранены переносимые данные.

Выбор в списке Database значения new приводит к открытию окна Create Database (рис. 11.7), с помощью которого можно указать имя и размер новой базы данных.

Часть III. Администрирование Замечание Чтобы попытка создания базы данных завершилась успешно, нужно, чтобы на полу чателе данных учетной записи, которая используется для установления соединения с ним, было предоставлено право создания баз данных. В противном случае будет выдано сообщение о невозможности создания базы данных ввиду отсутствия необ ходимых прав доступа.

Рис. 11.7. Окно Create Database В поле Name необходимо ввести имя, которое будет присвоено создаваемой базе данных. При этом нужно придерживаться общих правил именования объектов и соблюдать уникальность имен баз данных в пределах сервера. Значение, указан ное в поле Name, также определяет имена первичного файла и файла журнала транзакций, из которых будет состоять база данных. Файлы базы данных будут размещены по адресу, указанному в полях Default data directory (файлы данных mdf и ndf) и Default log directory (файлы журнала транзакций ldf) на вкладке Database Settings окна свойств сервера. Работа с вкладкой Database Settings бы ла описана в разд. "Вкладка Database Settings" главы 8.

Созданная с помощью окна Create Database база данных будет состоять их од ного файла данных (первичного) и одного файла журнала транзакций. Дополни тельно можно указать исходный размер как первичного файла (в поле Data file size), так и файла журнала транзакций (в поле Log file size). Если в свойства ба зы данных Model на получателе данных не вносилось никаких изменений, то для созданной базы данных будет разрешено автоматическое увеличение разме ра с шагом в 10% от первоначального объема.

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

Выбор режима копирования данных Когда окажутся сконфигурированными и источник, и получатель данных, то можно приступить к описанию собственно процесса переноса информации. В четвертом окне мастера (рис. 11.8) необходимо выбрать режим, который будет использоваться для подготовки исходного набора данных. Окно называется Specify Table Copy or Query, что можно перевести как "укажите таблицу или запрос для копирования".

Глава 11. Доступ к гетерогенным источникам данных Рис. 11.8. Окно Specify Table Copy or Query мастера DTS Import/Export Wizard В распоряжении пользователей имеется единственный переключатель, который можно установить в одно из следующих положений:

• Copy table(s) and view(s) from the source database. Этот режим переноса дан ных выбирается, когда необходимо перенести данные из одной или более таблиц или представлений. То есть исходным набором данных будут являться все данные, имеющиеся в указанных таблицах. ВЛтроцессе переноса можно будет выполнить некоторые преобразования данных, используя для этого возможности скриптовых языков ActiveX. Крдме того, можно копировать не все столбцы, а лишь необходимые. Также можно изменять свойства столбцов на получателе данных.

• Use a query to specify the data to transfer. При использовании данного режима исходный набор данных будет формироваться в результате выполнения за проса. Код запроса может быть указан либо непосредственно, либо создан визуально с помощью построителя запросов Query Builder. Кроме того, также.

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

• Copy objects and data between SQL Server databases. Особенностью указанного режима является то, что помимо переноса данных также можно выполнить и перенос объектов. Используя рассматриваемый режим, можно организовать копирование всех объектов базы данных с источника на получателя.

с Замечание Последний режим переноса доступен, когда и источник, и получатель являются сер верами SQL Server. Именно такой вариант и приведен на рис. 11.8. В верхней части 344 Часть III. Администрирование окна изображены пиктограммы, обозначающие источник данных. Если же получа тель или источник не являются SQL Server, то последнее положение переключателя будет недоступно.

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

Копирование данных из таблиц и представлений Если в четвертом окне переключатель был установлен в положение Copy table(s) and view(s) from the source database, то перенос данных будет осуществляться путем копирования данных из одной или более таблиц или представлений с ис точника данных. После того как в четвертом окне будет нажата кнопка Next, мастер перейдет к очередному окну, которое будет иметь вид, подобный приве денному на рис. 11.9.

Рис. 11.9. Окно Select Source Tables and Views мастера DTS Import/Export Wizard Пятое окно мастера при выборе режима переноса данных из таблиц и представ лений имеет название Select Source Tables and Views, что переводится как выберите исходные таблицы и представления". Основную часть окна занимает список таблиц и представлений, имеющихся на источнике в базе данных, ука занной во втором окне мастера. В столбце Source выводится название таблицы Глава 11. Доступ к гетерогенным источникам данных или представления, а также значок, с помощью которого можно определить тип объекта — таблица или представление. Его изображение в виде небольшого квадрата обозначает таблицу, в виде очков — представление.

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

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

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

Для управления этими возможностями предназначено окно Column Mappings, Transformations, and Constraints (рис. 11.10), которое открывается нажатием распо ложенной в столбце Transform кнопки ^ 1. С помощью указанного окна можно управлять параметрами копирования лишь конкретной таблицы. Поэтому необ ходимо использовать окно для каждой копируемой таблицы отдельно.

Рис. 11.10. Окно Column Mappings, Transformations, and Constraints С помощью окна Column Mappings, Transformations, and Constraints можно управ лять не только созданием таблиц на получателе, но и множеством других парамет ров переноса данных. Оно состоит из трех вкладок, каждая из которых позволяет 346 Часть III. Администрирование настраивать те или иные параметры переноса и преобразования данных. В верх ней части окна выводится информация об именах объектов, выступающих в каче стве источника и получателя данных. В столбце Source указывается имя исходного объекта (таблицы или представления), тогда как в столбце Destination — имя таб лицы получателя, в которую будет выполняться закачка данных. Имена объектов отображаются с указанием имени базы данных и имени владельца.

В следующих трех разделах будет подробно рассмотрена каждая из вкладок окна Column Mappings, Transformations, and Constraints.

Вкладка Column Mappings Основным назначением вкладки Column Mappings (см. рис. 11.10) является управление отображением столбцов исходной таблицы в столбцы таблицы на значения. Помимо этого вкладка может быть использована для выполнения подготовительных операций на получателе данных. Управление этими дейст виями осуществляется с помощью переключателя, который может устанавли ваться в одно из трех положений:

О Create destination table. При установке переключателя в данное положение при выполнении пакета система создаст на получателе таблицу, в которую будут закачиваться данные из источника. Однако создание таблицы возмож но лишь в той ситуации, если на получателе нет таблицы с аналогичным именем. В противном случае попытка создания таблицы завершится неудач но. Вполне возможно, что при первом выполнении пакета на получателе и не будет существовать нужной таблицы, и ее создание пройдет успешно. Но если вы снова попытаетесь выполнить пакет, то попытка создания таблицы завершится неудачно. Чтобы избежать подобных проблем, можно воспользо ваться флажком Drop and recreate destination table, который становится дос тупным при установке переключателя в рассматриваемое положение. Выбор флажка приведет к тому, что в ходе выполнения пакета сначала будет пред принята попытка удаления на получателе таблицы, в которую предполагается перенести данные, а затем эта таблица будет повторно создана. Данная воз можность весьма полезна при создании пакетов, которые должны периоди чески автоматически выполняться системой.

П Delete rows in destination table. Если удаление таблицы на получателе по ка ким-то причинам нежелательно (например, если для нее были дополнитель но определены индексы, ограничения целостности, статистика и т. д.), но необходимо гарантировать, что таблица будет содержать только данные из источника, то вместо удаления таблицы целиком можно всего-навсего уда лить все строки таблицы. Однако подобное решение можно использовать только тогда, когда структура таблиц на источнике и получателе данных сов падают в той мере, в какой это необходимо для переноса данных. Отметим, что полное совпадение структур не требуется, т. к. механизмы DTS позволя ют выполнять копирование между столбцами с различными именами и даже типами данных. Более того, допускаются и более сложные преобразования, например, прием значения для столбца таблицы получателя на основе выра Глава 11. Доступ к гетерогенным источникам данных жения, которое использует значения трех столбцов таблицы источника и не которые функции.

О Append rows to destination table. Это положение применяется, когда необхо димо добавить строки, полученные из таблицы источника данных, в таблицу на получателе данных. При этом не будет выполнять ни удаление таблицы на получателе, ни удаление имеющихся строк. Подобный подход часто исполь зуется для объединения данных из множества источников в одной таблице.

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

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

( Замечание ^ Последние два пункта, рассмотренные в приведенном выше списке, не будут дос тупны, если на получателе еще не существует таблицы, в которую предполагается копировать данные.

Помимо приведенного списка в верхней части вкладки имеется флажок Enable identity insert, с помощью которого можно контролировать поведение сервера при вставке значений в столбец-счетчик. Столбцом-счетчиком называется стол бец таблицы, для которого установлено свойство IDENTITY. Установка этого свойства приводит к тому, что сервер будет автоматически вставлять значения в соответствующий столбец. Данные значения монотонно возрастают от введен ного значения с определенным интервалом. Чаще всего столбцы-счетчики ис пользуются в качестве первичных ключей таблиц.

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

При копировании данных с источника из главной таблицы в соответствующую таблицу получателя сервер будет генерировать новые значения в столбце счетчике. Конечно, есть определенная вероятность, что значения в столбце счетчике в таблицах источника и получателя совпадут, но в подавляющем боль шинстве случаев на получателе появятся совсем другие значения. Тем не менее, с точки зрения сервера копирование выполнено нормально и никаких ошибок нет. Затем настает очередь копирования данных зависимой таблицы. Так как 348 Часть III. Администрирование строки зависимой таблицы связаны со строками главной, то в первичном ключе главной таблицы должны иметься значения, указанные во внешнем ключе зави симой таблицы. Однако, во внешнем ключе зависимой таблицы получателя бу дут присутствовать те же значения, что и на источнике. Но значения первич ного ключа на получателе были изменены из-за особенностей работы со столбцами-счетчиками. Таким образом, в простейшем случае получается, что строки зависимой таблицы не смогут быть связаны со строками главной табли цы, что приведет к нарушению ограничения целостности внешнего ключа, вы даче соответствующей ошибки в процессе переноса и невозможности копирова ния данных.

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

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

Это позволяет делать полные копии таблиц, не опасаясь вмешательства сервера в формирование значений для столбцов с установленным свойством IDENTITY.

(~ Замечание ^) Описанная проблема возникает и при репликации данных. Решается она аналогич но. Если необходимо вставить в таблицу со столбцом-счетчоком явные значения вручную, то временно отменить автоматическое генерирование сервером значений ДЛЯ Столбца IDENTITY МОЖНО С ПОМОЩЬЮ КОМаНДЫ SET IDENTITY_INSERT.

На вкладке Column Mappings осталась нерассмотренной таблица Mappings, с по мощью которой выполняется управление отображением столбцов таблицы ис точника в столбцы таблицы получателя. Каждая строка таблицы соответствует одному отображению. По умолчанию применяется отображение "один-к одному", т. е. каждый столбец таблицы источника отображается в одноименный столбец получателя. Для описания отображения используются столбцы:

D Source. Здесь указывается имя столбца таблицы источника, который предпо лагается отобразить. Значение столбца представляет собой раскрывающийся список, в котором перечислены все столбцы таблицы источника. Помимо имен столбцов, в списке также имеется значение ignore. Если выбрать его, то в соответствующем столбце таблицы получателя (имя которого указано в столбце Destination) будет сохранено либо значение NULL, либо (если опреде лено) значение по умолчанию. Причем приоритет отдается значению по умолчанию. Если значение по умолчанию не определено, и столбец таблицы получателя не разрешает хранение значений NULL, TO при установленном в столбце Source значении ignore попытка выполнения пакета завершится неудачно.

Глава 11. Доступ к гетерогенным источникам данных Замечание В нижней части вкладки имеется текстовое поле Source column, в котором выво дится информация о выбранном столбце таблицы источника. В частности, указыва ется тип данных и возможность хранения значений NULL. ЭТИ сведения могут быть использованы при выборе типа данных для столбца таблицы получателя.

• Destination. В данном столбце указывается имя, которое будет присвоено соот ветствующему столбцу таблицы на получателе. В отличие от списка в колонке Source, в столбце Destination можно выбирать не только значения из списка (в котором имеются имена всех столбцов, сконфигурированных для переноса в колонке Source), но и вводить свои собственные значения. Однако при выборе имени следует соблюдать уникальность имен столбцов таблицы получателя.

Как и в списке колонки Source, в списке колонки Destination присутствует значение ignore. Его выбор приведет к тому, что в таблице на получателе не будет создано соответствующего столбца и, как следствие, данные из соответ ствующего столбца таблицы источника не будут скопированы.

О Туре. Данная колонка содержит название типа данных, который будет иметь столбец получателя. Значение представляет собой раскрывающийся список, содержащий перечень всех допустимых типов данных, поддерживаемых по лучателем. Пользователь может выбрать любой тип данных, независимо от типа данных исходного столбца. Мастер не осуществляет проверку возмож ности выполнения определенным пользователем переноса данных. Если не явное преобразование типов данных невозможно, то при попытке выполне ния пакета будет выдано соответствующее сообщение об ошибке. Однако, если грамотно выбирать значения в столбце Туре, то можно организовать преобразование типов данных. Например, можно легко преобразовать дан ные типа s m a i l i n t в тип данных i n t или данные типа smalimoney в тип дан ных money.

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


• Size. Столбец позволяет управлять размером столбца некоторых типов дан ных. Например, если столбец таблицы получателя имеет символьный тип данных (char, varchar, nchar и nvarchar), то в колонке Size указывается максимальное количество символов, которое можно будет хранить в соответ ствующем столбце. Часть типов данных имеет фиксированный размер, кото рый нельзя изменить. К таким типам данных можно отнести целочисленные ТИПЫ данных ( t i n y i n t, smailint, i n t И b i g i n t ), ТИПЫ даты и времени (smalldatetime И datetime), денежные ТИПЫ данных (smalimoney и money) и некоторые другие.

• Precision. При работе с нецелочисленными типами данных (numeric, decimal, f l o a t и r e a l ) в этой колонке указывается максимальный размер данных, которые можно будет хранить в соответствующем столбце. Значение в столбце Precision определяет максимальное количество десятичных цифр (в 350 Часть III. Администрирование том числе и после запятой), которое может храниться в соответствующем столбце таблицы.

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

( Замечание ^ Подробно типы данных, их размерность и точность будут рассмотрены в главе 26.

Мы объяснили назначение всех колонок таблицы Mappings, предназначенной для управления отображением столбцов при копировании данных. При описа нии колонок предполагалось, что изменения значений в таблице получателя разрешены. Однако это возможно только в том случае, когда выполняется на стройка переноса в еще несуществующую таблицу. Если же таблица на получа теле существует, то пользователь будет весьма ограничен при работе с таблицей настроек Mappings. Тем не менее, если установить переключатель в верхней час ти вкладки в положение Create destination table и отметить флажок Drop and recreate destination table, то будет считаться, что таблицы на получателе не суще ствует, и будет разрешено внесение любых изменений в таблицу Mappings.

С Замечание ^ На основе таблицы Mappings генерируется сценарий Transact-SQL, с помощью ко торого на получателе будет выполняться создание таблицы для закачки данных.

Более подробно сценарий создания таблицы получателя будет разъяснен при рас смотрении вкладки Constraints.

При работе с таблицей Mappings можно определить отображение одного столбца исходной таблицы в два или более столбцов таблицы получателя. Для этого дос таточно дважды выбрать в колонке Source имя нужного столбца таблицы полу чателя. При этом для каждого столбца таблицы получателя можно использовать различные типы данных. Более того, можно выполнить не простое копирова ние, а провести сложные преобразования данных.

Вкладка Transformations Сложные преобразования данных определяются с помощью вкладки Transformations (рис. 11.11).

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

• Copy the source columns directly to the destination columns. При установке пе реключателя в это положение будет осуществляться непосредственное копи рование данных из таблицы источника в таблицу получателя без выполнения Глава 11. Доступ к гетерогенным источникам данных каких-либо явных преобразований. При этом допускается выполнение неяв ных преобразований, связанных с различием типов и свойств соответствую щих столбцов таблиц источника и получателя.

• Transform information as it is copied to the destination. Данное положение исполь зуется, когда необходимо выполнить преобразование данных в процессе их ко пирования. После установки переключателя в рассматриваемое положение на вкладке становятся доступными дополнительные элементы управления.

Рис. 1 1. 1 1. Окно Column Mappings, Transformations, and Constraints, вкладка Transformations По умолчанию переключатель установлен в первое положение. При этом окно для ввода сценария преобразования недоступно. Лишь после выбора второго положения переключателя можно указать сценарий, в соответствии с которым будет осуществляться преобразование данных.

Для описания преобразования данных используются скриптовые языки ActiveX — VBScript (Visual Basic scripting language) и JavaScript (Java scripting language). Выбор языка, который должен быть применен для описания процесса преобразования, осуществляется с помощью раскрывающегося списка Language в нижней части вкладки. При изменении языка мастер будет генерировать код на соответствующем языке. При этом написанный ранее код будет потерян.

с Замечание Поддержка скриптовых языков VBScript и JavaScript добавляется при инсталляции SQL Server 2000. Однако дополнительно можно установить поддержку языка PerlScript.

Часть III. Администрирование Мастер автоматически генерирует код, который выполняет простое копирова ние данных из столбцов таблицы источника в столбцы таблицы получателя в соответствии с отображением, определенным с помощью таблицы Mappings вкладки Column Mappings. Можно либо полностью удалить сгенерированный мастером сценарий и написать новый, либо внести в предложенный код необ ходимые дополнения. Также имеется возможность использовать готовый код, загрузив его из файла. Для этого необходимо воспользоваться кнопкой Browse.

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

Вкладка Constraints Основным назначением вкладки Constraints (рис. 11.12), как следует из назва ния, является управление ограничениями целостности. Однако элементы управ ления данной вкладки доступны только в том случае, если в процессе выполне ния пакета предполагается создание на получателе соответствующей таблицы.

Другими словами, переключатель вкладки Column Mappings должен быть уста новлен в положение Create destination table. При необходимости дополнительно может быть установлен флажок Drop and recreate destination table.

Рис. 11.12. Окно Column Mappings, Transformations, and Constraints, вкладка Constraints Глава 11. Доступ к гетерогенным источникам данных В левой верхней части окна содержится два флажка:

О Create Primary Key. Установите этот флажок, если необходимо создать в таб лице получателя все первичные ключи, которые были определены в таблице источника. Выбор флажка приведет к изменению кода в полях Create Table Statement и Alter Table Statement.

• Create Foreign Keys. Данный флажок устанавливается, если необходимо соз дать в таблице на получателе любые внешние ключи, которые имелись в со ответствующей таблице источника данных.

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

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

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

• After data transformation. Установка переключателя в это положение приведет к тому, что указанные ограничения целостности будут созданы после копи рования всех данных. Это бывает необходимо, если копирование таблиц вы полняется не в той последовательности, что требуют ограничения целостно сти. Предположим, что ограничения целостности определяются как часть процесса создания таблицы (переключатель установлен в положение At Create Time). Также предположим, что у нас имеется главная и зависимая таблица. В этом случае сначала нужно скопировать все строки главной таб лицы, а уже после этого приступать к копированию данных зависимой таб лицы. Если же сначала попытаться скопировать строки зависимой таблицы.

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

Для этого применяется команда ALTER TABLE, С ПОМОЩЬЮ которой будут вне сены необходимые изменения в структуру таблицы получателя.

Помимо перечисленных элементов управления, на вкладке также имеются два поля:

• Create Table Statement. В поле выводится код команды CREATE TABLE, кото рая будет использована для создания таблицы на получателе. Установка флажков Create Primary Key и Create Foreign Keys и соответствующих пере ключателей в положение At Create Time приводит к тому, что в текст коман ды добавится дополнительный код, определяющий первичный и внешние ключи. Текст команды CREATE TABLE, на основе которого будет выполнено Часть III. Администрирование создание таблицы, также формируется на основе значений, указанных в таб лице Mappings вкладки Column Mappings. Мастер автоматически строит код на основе определенных значений. Тем не менее, пользователь может внести в текст команды любые необходимые изменения. Если код в поле Create Table Statement был изменен, то восстановить его в первоначальном виде можно с помощью кнопки Auto Generate, находящейся справа над полем.

П Alter Table Statement. В данном поле указывается текст команды ALTER TABLE, которая будет выполнена после завершения копирования данных.


Текст кода будет генерироваться автоматически только в том случае, если выбран хотя бы один флажок (Create Primary Key или Create Foreign Keys), a соответствующий переключатель установлен в положение After data transformation и при всем этом в таблице на источнике существовало соответ ствующее ограничение целостности (первичный или внешний ключ). Тем не менее, если даже мастер не сгенерирует автоматически никакого сценария, пользователь может вручную указать нужный код. Эту возможность удобно использовать для создания в таблице получателя индексов, дополнительных ограничений целостности (например, ограничения целостности UNIQUE, обеспечивающего уникальность значений) и изменению любых других пара метров таблицы.

Замечание Подробно синтаксис команд CREATE TABLE И ALTER TABLE будет рассмотрен в главе 21.

Рис. 1 1. 1 3. Окно View Data На этом рассмотрение вкладки Constraints и окна Column Mappings, Transformations, and Constraints можно считать оконченным. Более того, на этом заканчивается и конфигурирование копирования данных из таблиц и представ лений. Следующее окно мастера (Save, schedule, and replicate package) использу ется для управления временем запуска создаваемого пакета DTS, местом его хранения и некоторыми другими параметрами. Это окно имеет один и тот же Глава 11. Доступ к гетерогенным источникам данных вид независимо от того, какой режим копирования был выбран в четвертом ок не мастера. Работа с окном Save, schedule, and replicate package будет рассмотре на в разд. "Сохранение и выполнение пакета" далее в этой главе. В окне Select Source Tables and Views (см. рис. 11.9) имеется кнопка Preview, с помощью кото рой можно открыть окно View Data (рис. 11.13). В этом окне можно просмот реть, какой вид примут данные после трансформации.

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

Использование запроса для подготовки данных В предыдущих разделах бьшо рассмотрено копирование информации из таблиц и представлений источника данных. Хотя этот режим и позволяет выполнять определенные преобразования, все же его возможности ограничены. В частно сти, в процесс преобразования могут быть вовлечены только данные одной таб лицы. Тем не менее, иногда бывает необходимо выполнить копирование дан ных, объединенных из нескольких таблиц. В этом случае нужно использовать режим копирования Use a query to specify the data to transfer. Напомним, что режим копирования выбирается в четвертом окне мастера (см. рис. 11.8). После того, как будет отмечен нужный режим и нажата кнопка Next, мастер перейдет к пятому окну, которое имеет вид, подобный приведенному на рис. 11.14.

Рис. 11.14. Окно Type SQL Statement мастера DTS Import/Export Wizard Центральную часть окна занимает поле Query statement, содержащее запрос, на основе которого будет формироваться набор данных для копирования. ЭЙгот за 356 Часть III. Администрирование прос выполняется на источнике, указанном во втором окне мастера и в контек сте выбранной базы данных.

(~ Замечание ^ Хотя в поле можно ввести и более одного запроса, мастер будет работать только с результатом, получаемым после выполнения самого первого из них. Таким образом, результаты выполнения второго и всех последующих запросов будут потеряны.

Текст запроса может быть введен вручную, построен с помошью Query Builder или загружен из файла. В последнем случае необходимо воспользоваться кноп кой Browse, расположенной в правом нижнем углу окна. С помошью кнопки Parse можно выполнить грамматический анализ указанного запроса. При этом, в ходе анализа выполняется не только проверка синтаксиса введенного запроса, но также и правильность указания имен объектов, к которым обращается за прос. Если в запросе упоминаются имена таблиц, представлений или их столб цов, которые на самом деле не существуют, то при попытке перейти к следую щему окну мастер выдаст сообщение об ошибке. Аналогичное сообщение появится и при нажатии кнопки Parse.

( Замечание ^ Подробно написание запросов SELECT, С ПОМОЩЬЮ которых выполняется выборка данных, будет рассмотрено в главе 29.

Для пользователей, имеющих отдаленное представление о написании запросов, мастер предлагает воспользоваться интерактивным построителем запросов Query Builder, который позволяет создать запрос, не вводя ни единой строки кода.

Query Builder представляет собой небольшой мастер, который выполняется внутри мастера DTS Import/Export Wizard. Для запуска построителя запроса дос таточно нажать кнопку Query Builder, расположенную в нижней части окна. По сле этого откроется первое окно построителя запроса Query Builder.

Выбор столбцов Первое окно Query Builder (рис. П. 15) имеет имя Select Columns, что переводит ся как "выбор столбцов". В соответствии с этим окно содержит два списка, с по мощью которых и производится выбор столбцов, входящих в запрос. Включение в результат выборки не всех столбцов называется вертикальной фильтрацией.

( Замечание ) С помощью первого окна построителя запроса подготавливается список столбцов для раздела SELECT.

В левой части окна находится список Source tables с перечнем всех таблиц, дос тупных для копирования. Каждая таблица представляет собой папку, содержа щую список имеющихся в этой таблице столбцов. Открыв таблицу,' столбцы которой предполагается включить в запрос, остается только выбрать имя нуж Глава 11. Доступ к гетерогенным источникам данных ного столбца и нажать кнопку в центральной части окна. После этого имя соответствующего столбца будет добавлено в список Selected columns, располо женный в правой части окна. Данный список содержит перечень всех столбцов, которые будут включены в запрос. Помимо имени самого столбца в списке так же указывается имя таблицы, которой он принадлежит. Если какой-то столбец был внесен в список Selected columns ошибочно, то его можно удалить с помо щью кнопки. Кнопка « предназначена для удаления всех столбцов. Внизу под списком Selected columns имеется две кнопки, с помощью которых можно управлять порядком отображения столбцов в результате выборки.

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

Управление порядком сортировки Второе окно построителя запросов (рис. 11.I6) имеет имя Specify Sort Order, что можно перевести как "укажи порядок сортировки". В соответствии с названием это окно позволяет управлять порядком, в котором будут перечисляться строки в результате выборки.

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

Часть III. Администрирование Рис. 11.16. Второе окно Query Builder Замечание С помощью второго окна построителя запросов формируется раздел ORDER запроса SELECT, который будет использоваться для формирования набора данных для ко пирования.

Включение столбца в список Sorting order приводит к тому, что результат вы борки будет упорядочиваться в соответствии со значениями в указанном столб це. При этом в список Sorting order может быть включено более одного столбца.

Соответственно, сортировка будет выполняться по всем столбцам, перечислен ным в списке. При этом сначала будет выполняться упорядочивание по самому первому столбцу, указанному в списке, затем по второму и т. д. Таким образом, управляя последовательностью перечисления столбцов в списке Sorting order, можно контролировать последовательность использования столбцов для сорти ровки строк результата выборки. Для перемещения имен столбцов в списке Sorting order служат кнопки Move Up и Move Down, которые, соответственно, перемещают выбранный столбец вверх и вниз в списке.

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

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

Глава 11. Доступ к гетерогенным источникам данных Определение условий выборки Последнее, третье окно мастера (рис. 11.17) имеет название Specify Query Criteria, что переводится как "определите критерии запроса". С помощью этого окна пользователь может задать условие, позволяющее ограничить набор строк, включаемых в результат выборки. Подобное ограничение называется горизон тальной фильтрацией.

Рис. 11.17. Третье окно Query Builder В верхней части окна содержится переключатель, который управляет тем, будет ли вообще выполняться горизонтальная фильтрация или нет. Установка пере ключателя в положение All rows приведет к тому, что в результат выборки будут включены все строки, имеющиеся в указанных таблицах. Если же необходимо включить только те строки, которые удовлетворяют определенному условию, то переключатель необходимо установить в положение Only Rows meeting criteria. В последнем случае в центральной части окна становятся доступными элементы управления, с помощью которых и указывается необходимое условие. Рассмот рим подробно формирование условия выборки.

В раскрывающемся списке Column выбирается имя столбца, от значений кото рого зависит включение соответствующей строки в результат выборки. Список содержит перечень всех столбцов, которые были включены в список Selected column в первом окне построителя запросов. Когда имя столбца будет выбрано, становится доступным список Орег, с помощью которого выбирается логиче ская операция (,, =, о, =, =), используемая для принятия решения о вклю чении или невключении строки в результат выборки. Когда определена и логи ческая операция, становится доступным поле Value/Column, с помощью которого указывается величина для сравнения значения столбца, выбранного в Часть III. Администрирование списке Column. В элементе управления Value/Column можно задать либо имя столбца, выбрав его имя в раскрывающемся списке, либо ввести конкретное значение.

Помимо ввода значения вручную, можно вы брать один из вариантов, имеющихся в столб це, указанном в списке Column. Для этого предназначено диалоговое окно Select a Value (рис. 11.18), открыть которое можно с помо щью кнопки _i, расположенной в правой части строки.

В данном окне приводятся все значения, ко торые имеются в соответствующем столбце таблицы. При этом повторяющиеся значения не выводятся. Определение условия заканчи вается на вводе значения в поле Value/Column.

Тем не менее, можно сконфигурировать более одного условия. Если это необходимо, то по Рис. 11.18. Окно Select a Value еле конфигурирования условия в первой стро ке необходимо в самом левом раскрывающем ся списке второй строки выбрать логическую операцию, которая будет связы вать второе условие с первым. Можно выбрать одно из двух значений:

• AND. При выборе этой операции соответствующая строка будет включена в результат выборки в том случае, если она удовлетворяет как первому, так и второму условию.

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

Помимо указания логической операции формирование второго условия практи чески ничем не отличается от формирования первого условия. При необходи мости можно определить и третье условие. Однако на этом возможности по строителя запроса ограничиваются. Если требуется назначить более трех условий, то необходимо это будет сделать непосредственно в коде запроса с по мощью поля Query statement в пятом окне мастера.

С Замечание ) Необходимо отдельно отметить, что построитель запросов не выполняет проверки на совпадение типов данных столбца, выбранного в списке Column, и значения, указанного в поле Value/Column. Однако, когда создание запроса завершится и сге нерированный код будет помещен в поле Query statement пятого окна мастера, при попытке перехода к следующему окну будет выдано сообщение об ошибке, говоря щее о несовместимости типов данных. Аналогичное сообщение будет выдано и при нажатии кнопки Parse.

После того как все условия выборки будут определены, работа построителя за просов заканчивается. Нажатие кнопки Next в третьем окне построителя запро са перенесет пользователя к пятому окну мастера DTS Import/Export Wizard.

Глава 11. Доступ к гетерогенным источникам данных Однако в поле Query statement будет отображен построенный запрос. Для про верки его правильности можно воспользоваться кнопкой Parse. Если в ходе проверки не было обнаружено ни одной ошибки, то на этом формирование за проса, на основе которого будет получен набор данных для копирования, мож но считать законченным. Следующее, шестое окно мастера не имеет отношения к созданию запроса и для указания, куда должен быть помещен набор данных, получаемый в результате выполнения запроса.

Указание таблицы получателя После того, как был подготовлен запрос, на основе которого будет формиро ваться набор данных для дублирования, необходимо указать таблицу и ее столб цы, куда будут копироваться подготовленные данные. Для выполнения указан ных действий используется седьмое окно мастера (рис. 11.19), имеющее название Select Source Tables and Views.

Рис. 11.19. Окно Select Source Tables and Views мастера DTS Import/Export Wizard Работа с окном Select Source Tables and Views практически ничем не отличается от работы с одноименным окном, используемым при работе в режиме копиро вания данных из таблиц и представлений (см. рис. 11.9). Работа в этом режиме, и в частности работа с окном Select Source Tables and Views, была рассмотрена в разд. "Копирование данных из таблиц и представлений"ранее в этой главе.

Единственным и главным отличием является то, что при использовании режима формирования исходного набора данных на основе выполнения запроса окно Select Source Tables and Views содержит только один источник данных — пред ставление Query, которое является ничем иным, как запросом, указанным в предыдущем окне мастера.

362 Часть III. Администрирование Следующее окно мастера (Save, schedule, and replicate) служит для управления временем запуска создаваемого пакета DTS, местом его хранения и некоторыми другими параметрами. Оно имеет один и тот же вид независимо от того, какой режим копирования был выбран в четвертом окне мастера. Работа с окном Save, schedule, and replicate package будет рассмотрена в разд. "Сохранение и выполнение пакета"далее в этой главе.

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

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

Тем не менее, иногда можно не выполнять копирование данных с выполнением сложных преобразований, а всего-навсего нужно перенести несколько объектов базы данных с одного SQL Server на другой. Для выполнения подобных опера ций и предназначен третий режим копирования — Copy objects and data between SQL Server databases.

(~ Замечание "^ Как уже было сказано ранее в этой главе, перенос объектов базы данных допускает ся только для серверов SQL Server. При выборе в качестве источника или получате ля не SQL Server, возможность копирования объектов базы данных будет недоступ на. Допускается перенос объектов из баз данных SQL Server 7.0 и SQL Server 2000 в базы данных SQL Server 2000.

Напомним, что режим переноса данных выбирается в четвертом окне мастера, имеющем название Specify Table Copy or Query (см. рис. 11.8). Это окно под робно рассматривалось в разд. "Выбор режима копирования" ранее в этой главе.

После того, как будет выбран нужный режим и нажата кнопка Next, мастер пе рейдет к очередному окну, которое будет иметь вид, подобный приведенному на рис. 11.20.

Пятое окно мастера при работе в режиме копирования объектов базы данных имеет название Select Objects to Copy, что можно перевести как "выберите объ екты для копирования". Как нетрудно догадаться из названия, это окно исполь зуется для выбора объектов, предназначенных для переноса из исходного SQL Server на SQL Server-получатель. Помимо выбора объектов для копирования, окно позволяет управлять параметрами переноса. Например, можно сконфигу рировать предварительное удаление на получателе объектов, имеющих те же имена, что и переносимые объекты исходного сервера.

Глава 11. Доступ к гетерогенным источникам данных Рис. 11.20. Окно Select Objects to Copy мастера DTS Import/Export Wizard с Замечание Перенос объектов базы данных реализуется с помощью задачи Copy SQL Server Objects Task. Если пакет, создаваемый с помощью мастера, будет сохранен для дальнейшего использования, то при его редактировании с помощью DTS Designer можно будет увидеть, что он содержит единственную задачу Copy SQL Server Objects Task, которая и выполняет все действия.

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

Выбор объектов для копирования В верхней части окна имеется флажок Create destination objects (tables, views, stored procedures, constraints, etc.), установив который можно разрешить созда ние в базе данных получателя объектов, выбранных для копирования: таблиц, представлений, ограничений целостности, индексов, пользователей, триггеров и т. д. Если флажок сброшен, то создание объектов выполняться не будет. Это бывает полезно, если ранее в базе данных получателя были созданы все необхо димые объекты и целью создания пакета является перенос данных, а не объек тов. Если все же необходимо перенести объекты, или быть уверенным, что по лучатель имеет необходимые объекты, то флажок Create destination objects (tables, views, stored procedures, constraints, etc.) должен быть установлен.

При данном установленном флажке оказываются доступными два других флажка:

• Drop destination objects first. Отметка данного флажка приведет к тому, что прежде чем в базе данных получателя будут созданы объекты, выбранные для копирования, механизмы DTS удалят все объекты, имеющие те же имена, Часть III. Администрирование что и выбранные для копирования. При этом структура удаляемых объектов получателя и объектов, которые выбраны для копирования на источнике, может не совпадать. Подобное удаление необходимо, когда нет уверенности, что база данных получателя уже не содержит объектов с теми же именами, что и копируемые. Наличие подобных объектов может привести к ошибке создания нового объекта, а позже и к невозможности вставки данных (при работе с таблицами) из-за несоответствия структур.

П Include all dependent objects. При установке этого флажка в процесс копиро вания будет включен не только сам объект, но и все другие объекты, которые необходимы для успешной его работы. Примером такой связи может являть ся указание одной или более таблиц, на основе которых построено представ ление. Если скопировать только представление без исходных таблиц, то ис пользование этого представления будет невозможно, т. к. самих данных нет.



Pages:     | 1 |   ...   | 8 | 9 || 11 | 12 |   ...   | 33 |
 





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

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