Доступ к гетерогенным источникам данных

 

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

Большинство информационных систем реализовывается в виде звезды. В центре располагается мощная система управления базами данных, накапливающая и обрабатывающая основную массу информации. В качестве периферийных кли­ентских систем выступают настольные приложения (DB2, Paradox, MS Excel, dBase и т.д.).

Служащие в начале месяца копируют с центрального хранилища информацию об имеющихся на складе товарах, их ценах и подготовленный аналитической службой список возможных покупателей. В конце месяца работники копируют данные о проданных товарах. Чем больше размеры системы и разнообразнее ис­пользуемые приложения, тем сложнее управлять циркулирующими на предприятии данными. Выходом из ситуации может быть перенесение всей информации на единую платформу. Но часто это нецелесообразно или невозможно по тем или иным причинам. Повсеместная установка SQL Server 2000 и дополнительных клиентских лицензий будет стоить немалую сумму, и поэтому не всегда возможна. К тому же, если учесть, что, вероятно, придется обновить большую часть компьютерного парка, то это вряд ли целесообразно. Лучшим решением будет установка нескольких SQL Server, которые будут собирать, обрабатывать и тиражировать всю информацию, предоставляе­мую уже внедренными и проверенными системами.

До момента появления SQL Server 2000 уже было создано достаточно много paзличных систем, предназначенных для хранения данных и управления ими. По­мимо SQL Server 6.х и более ранних версий, существует еще целый ряд продук­тов, используемых и по сей день. Количество данных, накопленных на этих системах, весьма значительно.

Если компания по тем или иным причинам решила начать работу с SQL Server 2000, то необходимо будет выполнить перенос накопленных данных на но­вую платформу. Для безболезненного перехода на SQL Server 2000 корпорация “Microsoft” позаботилась о создании инструментов, с помощью которых можно вы­полнить перенос данных практически с любой платформы на SQL Server 2000. Все операции обмена данными между SQL Server 2000 и другими системами можно разделить на импорт и экспорт. Как правило, нужно организовать либо импорт, либо экспорт данных. Хотя в некоторых ситуациях бывает необходимо выполнить обе операции.

Импорт данных подразумевает копирование SQL Server 2000 информации, хра­нящейся на различных внешних системах. В процессе выполнения импорта из таблицы баз данных SQL Server 2000 добавляется новая информация.

Целью экспорта данных является предоставление внешним системам информа­ции, хранящейся на SQL Server 2000. При этом данные преобразуются в формат, понятный внешней системе. Например, если требуется передать данные и MS Excel, то результатом выполнения экспорта будет xls-файл.

Если SQL Server 2000 устанавливается с целью замены устаревшей системы хра­нения информации, то начальной задачей после завершения установки и конфигурирования системы будет перенос данных. Первое, что необходимо для этого сделать – это создать базу данных и таблиц, в которые будет осуществ­ляться перенос данных. Для организации таблиц с нужной структурой можно использовать различные методы. Например, если внешняя система поддержива­ет скриптование объектов, то это позволяет получить готовый код, с помощью которого можно автоматизировать процесс создания таблиц. Кроме того, неко­торые инструменты переноса данных SQL Server 2000 позволяют образовывать структуры данных, в которых может быть сохранена импортируемая информа­ция. После того как все необходимые таблицы были созданы, можно перехо­дить непосредственно к процессу импорта данных.

Операции импорта (экспорта) могут выполняться лишь один раз или периодически на долговременной основе. Одноразовый перенос данных обычно наблюда­ется при переносе данных на SQL Server 2000 с других систем хранения данных. Например, при выполнении обновления с SQL Server 6.х до SQL Server 2000 достаточно только один раз перенести информацию. Затем все операции обра­ботки данных можно выполнять непосредственно в SQL Server 2000.

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

Выбор метода переноса данных

 

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

В обычной практике применяют нижеперечисленные методы переноса данных.

1. Службы трансформации данных Data Transformation Services (DTS). SQL Server 2000 предлагает несколько различных способов работы с механизмами DTS. В DTS применяется технологию сквозного доступа к источникам информации. При использовании сквозного доступа код запроса отсылается непосредственно СУБД, избегая модифицирования или интерпретации команд механизмами DTS. Любой оператор, который работал при помощи “родного” интерфейса СУБД, будет работать точно так же и в процессе преобразования. Например, при обращении к серверу Oracle из DTS-пакета используется то же расширение ANSI SQL, что и при работе непосредственно с Oracle. DTS гарантирует полную доступность функциональности источников. Пользователи могут без изменения обращаться к разработанным ранее сценариям и хранимым процедурам, вызывая их как обычные.

В качестве источника информации для DTS может выступать не только СУБД, но и офисные приложения, например Microsoft Excel.

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

2. Программный интерфейс массивного копирования Bulk Copy API.

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

3. Репликация данных. Данный метод будет рассмотрен ниже

4. Распределенные запросы Distributed Query. Метод позволяет в одном запросе объединять данные, расположенные на множестве различных источников. Как частный случай распределенных запросов можно рассматривать удаленные запросы (remote query).

5. Команда select into. Она позволяет создавать новую таблицу на основе данных, полученных в результате запроса. При этом также выполняется вставка всех полученных запросом данных в созданную таблицу. Совместно с использованием распределенных запросов команда select into предоставляет возможность создать на локальном сервере копию данных, полученных в результате слияния информации с множества удаленных источников данных.

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

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