Русские документы
RSS rusdoc.ru  Найти :
Последние поступления
  Hardware:
Видеоустройства
Системные платы
Процессоры
Мобильные устройства
Аудиосистема
Охлаждение системы
Накопители информации
КПК и ноутбуки
Телефоны и связь
Периферия
Система
Сети
Разные устройства
 
  Programming:
Web-разработка
Языки программирования
Технологии и теория
Разработка игр
Программная инженерия
 
  Software:
Операционные системы
Windows 7
Базы данных
Обзоры программ
Графика и дизайн
   
  Life:
Компьютерная жизнь
Разные материалы
   
Партнеры
Публикация
Правовая информация
Реклама на сайте
Обратная связь
Экспорт в RSS Экспорт в RSS2.0
   

Автоматизация исполнения DTS

По материалам статьи Augustin Carnu,
перевод Маргариты Баскаковой
Опубликовано: 13.08.2005
Источник: SQL.ru

Автор в значительной степени использует технологию DTS для перемещения и преобразования данных внутри BI Приложения; потребовалось найти допустимое решение повторного связывания пакетов на Промышленном сервере после перемещения их из среды разработки и QA. Эта статья представляет решение задачи трудоёмкой работы ручного соединения 50 и более пакетов DTS после импортирования их на новый SQL Server.

Проблема

Мы создаем родительские пакеты, которые используют Execute Package Task для вызова дочернего пакета. По умолчанию Execute Package Task будет использовать PackageID (GUID), чтобы загрузить и выполнить пакет. PackageID назначается в тот момент, когда Вы сохраняете новый пакет вместе с VersionID и timestamp временем создания.

Рисунок 1

Простой способ продемонстрировать это состоит в том, чтобы открыть пакет и затем, используя опцию 'Save As', присвоив пакету новое имя. Далее в Изначальном пакете создать "Execute Package Task" и установить зависимость между пакетами Master и Дочерним, связав STG_ED коннектором с Дочерним пакетом (Demo Child-Task) как на Рис. 1.
Если бы Вам по некоторым причинам потребовалось заменить Дочерний пакет, как например в случае сохранение после внесения изменений, это повлекло бы за собой создание полностью нового VersionID, с новой временной меткой и новым ProgramID! И это нарушило бы соединение между пакетами, поскольку VersionID указывает на старый VersionID с тем же самым именем. PackageID {543E … .184} на заднем плане Рис. 2 является устаревшим, следовательно выполнение потерпит неудачу!

Рисунок 2

[В начало]

Предлагаемое Решение

Мы удалили зависимость PackageID/VersionID, обнулив свойство PackageID ExecutePackageTask. Сделав это, мы вынудили использоваться другое свойство - свойство PackageName. Вы можете легко проверить это через функцию Disconnected Edit. Она доступна из меню Package: щелкните правой кнопкой мыши на пустом пространстве пакета и выберите "Disconnected Edit". Но для нашей run-time среды этого недостаточно.
Решение автора состоит в том, чтобы, добавив Dynamic Properties Task выполнить назначение NULL зависимым Дочерним пакетам в run-time. Эта задача станет основой для нашего процесса вместе с пустым значением Global variable, которое будет назначаться всем свойствам PackageID. Тогда при выполнении дочернего пакета будет использоваться имя пакета вместо PackageID. Необходимо выполнить следующие шаги:

Рисунок 3

Создайте Dynamic Properties Task с именем Blank out PropertyID как на Рис. 3 (см. Выше). Нажмите на кнопку Properties; следующее диалоговое окно будет аналогично Рис. 4.

Рисунок 4

Рисунок 5

Это вызов окна Package Properties. Для каждой задачи в левой стороне окна (DTSTask_DTSExecutePackageTask_1, 2, и т.д.) необходимо отредактировать PackageID и нажать на кнопку Set (как на Рис. 5).

Рисунок 6

Затем создайте и назначьте Global variable (или многократно используйте существующую). Если Вы создаете новую Глобальную переменную, то не назначайте ей никаких значений. Они будут переведены к значению NULL в run-time; Вы можете многократно использовать её для всего Списка задач.
Чтобы обеспечить переносимость между серверами, пожалуйста, сделайте следующее:

  • убедитесь, что SQL Server, который Вы используете для того, чтобы создать пакеты DTS, зарегистрирован как (LOCAL) (Windows NT) как на Рис. 7.

  • гарантируйте, что все внутренние пакеты используют локальный (LOCAL) SQL сервер, имя сервера не прописано жестко.

Рисунок 7

В следующей статье автор расскажет, как осуществить распределение пакетов DTS и их активацию на новом SQL Server.

 

Реклама:


Последнее на сайте :
28.05.2015:
Нужен надежный хостинг с поддержкой php mysql?
Бесплатный конвертер для видео файлов
Немножко философский пост про то, как мы в глаза смотрели
Самые заметные проблемы облачных провайдеров за 2012 год
Распределительная сеть дата-центров мирового масштаба — сердце империи Google
Google выделяет миллионы долларов на новый конкурс по взлому Chrome
Top 5 раздражающих моментов в работе программиста
Глава мобильного подразделения Ubuntu Ричард Коллинз рассказал о планах
Обзор планшета Acer ICONIA W7. Windows 8 по-профессиональному
Как получить nano-sim для iPhone 5?



Реклама:

AI-платформа для автоматического создания и управления документами.



© Copyright 1998-2012 Александр Томов. All rights reserved.