Published on

November 20, 2011

Обновление пакетов DTS до SSIS в SQL Server

Вы все еще используете SQL Server 2000 и рассматриваете возможность обновления до более новой версии? Если да, то вы, возможно, столкнулись с проблемой миграции пакетов DTS (Data Transformation Services) в SSIS (SQL Server Integration Services). В этой статье мы рассмотрим процесс обновления пакетов DTS до SSIS в SQL Server.

Проблема обновления пакетов DTS

При миграции с SQL Server 2000 на более новую версию, такую как SQL Server 2008, у вас могут быть существующие пакеты DTS, которые необходимо обновить. Эти пакеты используются для различных функций ETL (Extract, Transform, Load) и могут взаимодействовать с внешними базами данных, такими как Informix.

Одной из проблем в процессе миграции является воссоздание соединения ODBC между SQL Server и базой данных Informix. Для этого соединения требуется пароль для учетной записи пользователя в системе Informix. Если пароль неизвестен, вы сталкиваетесь с дилеммой – изменить пароль и, возможно, нарушить другие процессы, или создать новую учетную запись и задокументировать учетные данные.

Создание соединения ODBC в SSIS

После решения проблемы с паролем и воссоздания соединения ODBC вы можете начать процесс обновления пакета DTS до SSIS. В SSIS вы можете создать соединение ODBC, добавив новый менеджер соединений. Есть два варианта создания соединения ODBC – использование опции “ODBC” или опции “Ado.Net” с выбранным Odbc Data Provider.

Однако вы можете столкнуться с некоторыми проблемами при использовании соединения ODBC в SSIS, особенно при работе с базами данных Informix. Это можно решить, изменив файл SQLHOSTS на сервере базы данных Informix, изменяя nettype с Shared Memory на сетевое соединение (TCP/IP).

Использование связанного сервера в SSIS

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

Для запроса данных из базы данных Informix с использованием связанного сервера вы можете использовать метод OPENQUERY. Этот метод позволяет выполнить запрос на связанном сервере с использованием синтаксиса, например:

SELECT * FROM OPENQUERY(LinkedServerName, 'SELECT * FROM sometable')

Рекомендуется указывать конкретные столбцы вместо использования “SELECT *”. Имейте в виду, что метод OPENQUERY может не работать с ключевым словом “TOP”, поэтому вам может потребоваться изменить свои запросы соответствующим образом.

Тестирование и завершение обновления

После успешного тестирования оператора OPENQUERY в SSMS (SQL Server Management Studio) вы можете продолжить процесс обновления в SSIS. Вы можете создать задачу Execute SQL с ADO.NET соединением к вашей базе данных и установить свойство IsQueryStoredProcedure в True. Это позволяет выполнить хранимую процедуру, содержащую оператор OPENQUERY.

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

Заключение

Обновление пакетов DTS до SSIS в SQL Server может быть сложной задачей, особенно при работе с внешними базами данных, такими как Informix. Однако, следуя шагам, описанным в этой статье, вы можете успешно перенести ваши пакеты DTS в SSIS и воспользоваться улучшенными возможностями и производительностью, предлагаемыми более новой версией SQL Server.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.