Шпаргалка по 70-028 | Импорт и экспорт данных в SQL Server 7.0 | Дальше » |
Экспорт и
импорт данных
Средства импорта/экспорта Data Transformation Services Поставщик OLE DB Программа dtsrun Создание DTS пакета Уровни преобразования данных DTS пакет изнутри Особенности DTS пакетов, хранящихся в Repository Вопросы для повторения Экспорт и импорт данных В поставку MS SQL Server 7.0 входит набор специальных средств, которые обеспечивают экспорт и импорт данных, преобразование данных (Data Transformation Services), а также создание и редактирование DTS пакетов (DTS Export/Import Wizard). Кроме того, имеется набор модулей поддержки API прикладных программ, которые позволяют использовать объекты DTS в пользовательских прикладных программах. Задачи управления данными, перемещения их между приложениями и системами, копирование, архивирование и миграция данных, на сегодняшний день являются очень актуальными и требуют отвлечения значительных сил администраторов баз данных. Как правило, перемещение данных между не однородными источниками и местами назначения (например, MS SQL Server – Oracle), сопровождается их промежуточной обработкой или трансформацией. Такие преобразования могут состоять только из простого преобразования типов, а могут и содержать более сложные логические элементы, вплоть до добавления недостающей информации, арифметических вычислений, перекодировки и т.п. Наиболее часто, в задачах импорта/экспорта, приходится изменять формат передаваемых данных, когда они не совпадают в формате хранения источника и места назначения. Например, может потребоваться преобразовать поля, хранящие дату, если формат её хранения различен. Если ваши исходные данные хранятся в нескольких источниках, может потребоваться преобразование и отображение данных, для того, что бы привести их к виду, определённому для места назначения. Наиболее частыми операциями для этого можно считать агрегирование и арифметические операции. Очень важным этапом управления импортируемыми или экспортируемыми данными является обеспечение их согласованности. Поддержка согласованности и связей у источника и места назначения может отличаться. Для обеспечения согласованности данных может потребоваться их преобразование или трансляция в момент передачи. Другой, важной задачей, является проверка достоверности данных. Для решения таких задач используют промежуточные проверки на соответствие передаваемых данных заданным критериям. Кроме непосредственно задач импорта/экспорта данных, SQL Server имеет средства автоматизации этих операций. Например, использование заданий по расписанию может существенно облегчить администратору выполнение типовых задач. Резюмируя вышесказанное, можно выделить несколько моментов, которые должен прояснить для себя DBA, прежде чем приступить к реализации задач импорта/экспорта: - Где располагаются исходные данные и куда их необходимо
перемещать; Средства импорта/экспорта Теперь рассмотрим, какие средства импорта/экспорта входят в состав MS SQL Server 7.0 и какую функциональность они обеспечивают: - Для простого перемещения и преобразования данных
используют DTS Import Wizard и DTS Export Wizard. Эти мастера
предназначены для создания DTS пакетов в интерактивном
режиме. Кроме перечисленных выше средств, для передачи данных между серверами, можно использовать механизм репликаций, что удобно в случае частого изменения содержащейся в базе информации. Такой подход позволяет копировать схему и сами таблицы, а также определения и вызовы хранимых процедур из исходной базы в базу назначения. Также, для импорта/экспорта, используются некоторые операторы T-SQL и системные хранимые процедуры, такие, как: SELECT INTO, INSERT SELECT, BULK INSERT, BACKUP, RESTORE, sp_attach_db и sp_detach_db. Data Transformation Services Если Ваши данные, которые необходимо собирать на MS SQL
Server, хранятся в разных местах и в разных форматах, или
необходимо передавать объекты базы данных на другой MS SQL
Server, автоматизировать этот процесс поможет служба Data
Transformation Services (DTS). Назначение этой службы в
импорте/экспорте с промежуточной трансформацией данных между
одним или несколькими источниками и получателем данных. В
распоряжении DTS есть удобный графический интерфейс и
несколько визардов (Import/Export, Designer и dtsrun). Эти
средства позволяют генерировать и передавать пакеты объектов,
которые выполняются в координируемом порядке и обеспечивают
одну или несколько задач импорта/экспорта. Формат передачи
данных может быть: OLE DB, ODBC или текстовый; причём
поставщиками OLE DB могут выступать сторонние фирмы. Если
источник данных имеет другой формат хранения, DTS может только
перемещать схемы и данные. Триггеры, хранимые процедуры,
правила, значения по умолчанию, ограничения и пользовательские
типы при передаче между такими источниками трансформации не
подвергаются. У Вас есть возможность создавать собственные
объекты преобразования данных, которые можно встраивать в
продукты сторонних фирм. Таким образом, у Вас имеется
прекрасный инструмент для построения хранилища данных,
источниками наполнения которого могут быть совершенно разные
форматы данных, которые будут собираться и трансформироваться
службой DTS в интерактивном режиме или по расписанию,
заданному оператором с помощью средств автоматизации MS SQL
Server. Поставщик OLE DB Для работы DTS требуется поставщик OLE DB, который может обеспечивать доступ, как к реляционным, так и к иным источникам данных. Ниже представлены возможные типы источников/мест назначения данных: - OLE DB: приложения, такие как Access, SQL Server и другие
базы данных. Существуют ещё и другие, специализированные источники, для которых поставщики OLE DB разработаны сторонними фирмами. Рассмотрим теперь возможности DTS Import/Export Wizard. Эти визарды можно запустить из Enterprise Manager или утилитой командной строки dtswiz. Синтаксис утилиты следующий: Dtswiz [{{[/u Учётн_Запись_ПодклК_SQLServ][/p
Пароль]}[{/i|/x}] Пробелы после ключей утилиты dtswiz не ставятся. Полный синтаксис включает ещё несколько ключей. Например, использование ключа /f избавит Вас от запроса на сохранение DTS пакта в msdb. Представленные выше визарды, позволяют передавать DTS пакеты между несколькими разнотипными источникам, передавать схемы между SQL серверами (в т.ч. триггеры, индексы, ограничения, правила, процедуры, значения по умолчанию, пользовательские типы), копировать таблицы, копировать результаты простых и распределённых запросов, копировать результаты объединений. Для удобства составления запросов в интерактивном режиме, допустимо использование программы Query Bilder. Кроме того, в интерактивном режиме можно задать преобразование данных и планировать автоматическое выполнение DTS пакетов. Описанные выше визарды позволяют выполнять достаточно
простые операции и ориентированны на начинающих DBA. Для
сложных преобразований данных применяют DTS Designer, который
имеет развитые графические средства построения схем обработки
DTS пакетов, использует транзакционный механизм, способен
задавать сложные последовательности операций,
интегрировать/объединять/преобразовывать разные типы данных из
разных источников и поддерживает все функции предыдущих
визардов. Программа dtsrun Если DTS пакеты уже созданы, дальнейшее их извлечение, выполнение, удаление и изменение можно поручить программе dtsrun. Для применения этой утилиты Вы должны иметь права на оператор SELECT в источнике и права владельца базы в месте назначения. Синтаксис следующий: Dtsrun [{/?|{/[~]S Имя_Сервера{/[~]U Имя_Пользователя
[/[~]P
Пароль]| Подробное описание параметров dtsrun содержится в BOL. Создание DTS пакета Как правило, DTS пакет состоит из полного описания
нескольких, последовательно/параллельно выполняемых задач,
т.е. конкретных шагов (steps) состоящих из разнотипных или
однотипных операций. Создать пакет Вы можете с помощью
соответствующего визарда, DTS Designer или с помощью языка
программирования с интерфейсом OLE Automation (VB, C#).
Сохранить пакет можно в файле, репозитории или в базе msdb. Не
сохранённый пакет будет незамедлительно исполнен. Сохранённые
пакеты можно использовать повторно по расписанию, изменять и
т.д. Уровни преобразования данных Наиболее частой операцией преобразования данных на пути от
источника к месту назначения является отображение типов. Для
этого используются специальные флаги преобразования, а также
можно установить правила преобразования, в соответствии с
которыми данные из столбцов одного типа будут
трансформироваться в данные столбцы другого типа. Кроме типа
данных, разными могут быть размер, точность, масштаб или
допустимость NULL. С помощью таких правил можно добиться, что
бы точного соответствия исходных данных результирующим, даже
если Вам придётся преобразовывать real во float (вот наоборот
будет сложнее). При создании DTS пакетов, визарды и дизайнер
стараются, как можно более точно установить соответствие типов
данных источника и назначения, но у Вас всегда есть
возможность внести свои коррективы. Вы можете задать следующие
уровни преобразования данных: Также, часто приходится всячески интегрировать или объединять данные одного или нескольких источников или наоборот, данные одного источника размещаются в нескольких таблицах назначения. Объединятся могут даже разнотипные таблицы. То же самое возможно ина уровне столбцов (объединение или дробление). Например, операция агрегирования, когда общие суммы по некоторым категориям записей и сохраняет эти суммы в таблице назначения. DTS пакет изнутри Каждый DTS пакет может нести в себе одно или несколько
заданий (не путать с серверными заданиями). Каждое такое
задание является составной частью процесса трансформации
осуществляемого пакетом. Допустимо пять типов заданий,
смешивание которых в рамках одного задания не допускается.
Первый тип позволяет выполнять набор операторов T-SQL, для
чего существуют три специализированных объекта. За выполнение
операторов T-SQL несёт ответственность объект Execute SQL
Task. Операции массовой загрузки/выгрузки данных берёт на себя
объект Bulk Insert Task. При необходимости исполнения запроса,
управляемого данными и во всех других, не предусмотренных
предыдущими двумя объектами случаях, используется объект
Data-Driven Query Task. Второй тип заданий позволяет
реализовать практически любую необходимую процедурную логику
за счёт того, что предназначен для выполнения сценариев
ActiveX, VBScript, JScript и PerlScript. Причём, при
использовании ActiveX, у Вас появляются и все те замечательные
возможности, которые предоставляют объекты ADO (ActiveX Data
Objects) и интерфейс OLE Automation. С помощью третьего типа
заданий Вы сможете заставить DTS пакет запускать внешние
программы и процессы, а также отправлять сообщения электронной
почты. Эти возможность обеспечивают два специальных объекта:
Execute Process Task и Send Mail Task. Первый из этих объектов
имеет наиболее широкую область применения, которая включает
также и возможность отправки почтовых сообщений. Четвёртый тип
заданий обеспечивает перемещение данных между источником и
местом назначения. Пятый тип позволяет выполнить другой DTS
пакет или воспользоваться его результатами. Особенности DTS пакетов, хранящихся в Repository Сохранение DTS пакетов в хранилище данных Microsoft
Repository, позволяет кроме хранения нескольких версий самого
пакета сохранять его метаданные, которые позволяют отслеживать
происхождение данных DTS пакета до уровня строк, выдавать
информацию об источнике каждой порции данных, показывать
историю преобразования данных, выводить журнал аудита
трансформации данных и сохранять аудит исполнения DTS пакетов
в этом хранилище. Возможно также использование метаданных
пакета, хранящихся в репозитории, в приложениях третьих фирм.
Сведения о происхождении пакетов хранятся в виде объектов
связанных с одной из его версий. Таким образом, для каждой
версии пакета Вы можете определить время, имя пользователя и
имя компьютера, причастных к исполнению пакета. Вопросы для повторения ВОПРОС | |
Шпаргалка по 70-028 | Импорт и экспорт данных в SQL Server 7.0 | Дальше » |