logo search
SQL2008_Administration

9.6.5. Пути и логика выполнение Data Flow Task

Пути - это зеленые и красные стрелки, которые соединяют назначения и преобразования. Зеленые стрелки означают нормальное прохождение данных, а красные — это путь для передачи данных, при обработке которых возникли ошибки. Красные стрелки предусмотрены не для всех преобразований. Если сбор информации о проблемных записях вам не нужен, вы можете не использовать красную стрелку.

Для многих преобразований можно использовать несколько вводов (Input) и несколько выводов (Output).

Если открыть свойства пути (команда Edit в контекстном меню), то можно настроить имя пути, описание и отображаемую надпись для пути (PathAnnotation).

В SSIS Designer к любому пути можно присоединить просмотрщик данных (Data Viewer) — графический интерфейс, который во время работы пакета будет показывать пересылаемые данные (см. рис. 9.8).

Рис. 9.8. Применение просмотрщика данных

Настройка просмотровщика

  1. Щелкнуть правой кнопкой мыши по пути и в контекстном меню выбрать Data Viewers,

  2. Затем нажать на кнопку Add.

  3. Выбрать один из четырех предложенных типов просмотрщика (самый удобный — Grid).

  4. На второй вкладке вы можете настроить свойства просмотрщика, например, выбрать отображаемые столбцы. После настройки просмотрщика рядом с путем в SSIS Designer появится специальная иконка.

  5. Как только первая группа записей поступит в просмотрщик, выполнение пакета приостановится. Вы сможете продолжить выполнение при помощи зеленой кнопки в верхнем левом углу просмотрщика или просто его закрыв.

9.7. Script Task и ActiveX Script Task

Задачи Script Task и ActiveX Script Task предназначены для одной и той же цели — выполнения в пакете своего программного кода. При помощи них вы можете использовать все объектные модели (или классы пространств имен .NET), которые есть на вашем компьютере.

Задача Script Task обычно работает быстрее, поскольку при сохранении пакета программный код VB.NET в Script Task компилируется и хранится в откомпилированном виде.

9.8. Bulk Insert Task

Bulk Insert Task — это задача, единственное назначение которой заключается в загрузке информации из текстовых файлов с разделителями (flat files, плоских файлов) на SQL Server. При этом эта задача не может производить ни преобразований, ни проверок данных. В ней используются специализированные программные объекты, оптимизированные для достижения максимальной скорости загрузки данных.

Настройка Bulk Insert Task.

Она требует наличия двух менеджеров подключений:

  1. OLE DB Connection Manager (для SQL Server, на который будут загружаться данные)

  2. Flat File Connection Manager (для текстового файла-источника).

При настройке свойств вы можете:

9.9. Execute SQL Task

Execute SQL Task — основное назначение этой задачи заключается в выполнении команды SQL или хранимой процедуры на сервере баз данных (с возможностью передачи параметров). Эта задача может использоваться для выполнения команд SQL как на SQL Server, так и на других источниках данных. Единственное ограничение — источник данных должен поддерживать интерфейс ICommand, то есть уметь работать с командами SQL.

Чаще всего эта задача используется в следующих ситуациях:

Настройка Execute SQL Task

  1. Выбрать подключение к источнику данных (свойства Connection Type и Connection на вкладке General).

  2. Выбрать источник, из которого будет браться текст запроса. Для этой цели предназначено свойство SQLSourceType на той же вкладке. В нашем распоряжении — три варианта:

  • Определить формат результатов выполнения запроса Execute SQL Task. В нашем распоряжении значения None (по умолчанию, означает, что результаты выполнения запроса нас не интересуют), Single row (единственная строка или единственное значение), Full result set (полный набор записей табличного вида) или XML.

  • На вкладке Parameter Mapping назначить переменные входящим параметрам нашего запроса, а на вкладке Result Set — точно так же определить переменные для значений, которые наш запрос будет возвращать. Создать, изменить или удалить переменные уровня пакета можно при помощи меню SSIS Variables в SSIS Designer.

    9.8. XML Task

    XML Task — используется для подготовки документа XML. Эту задачу нельзя использовать для загрузки данных в формате XML на SQL Server или для выгрузки данных с SQL Server в формате XML. В ней всегда используются два источника: первый (Source на вкладке General) и второй (Second Operand на той же вкладке). И первый, и второй документ можно ввести напрямую прямо в свойствах этой задачи (значение Direct Input свойств SourceType и SecondOperandType), получить из файла (File Connection) или принять из переменной пакета (Variable). Результаты операции можно сохранить в файл или передать в переменную.

    Всего для этой задачи предусмотрено шесть операций. Нужная операция выбирается при помощи свойства OperationType на вкладке General:

    1. Validate — проверка документа XML на соответствие схеме или DTD;

    2. XSLT — проведение преобразования XSL Transformation. Обычно в результате такого преобразования создается документ XML с другим форматом или документ HTML;

    3. XPATH — возможность выполнить запрос на языке XPath. Чаще всего такой запрос используется для того, чтобы найти нужный элемент или элементы в документе XML;

    4. Merge — возможность слить два документа XML в один (например, отчеты за разные периоды или от разных филиалов);

    5. Diff — возможность сравнить два документа XML и сгенерировать отчет о найденных отличиях (DiffGram) в стандартном формате.

    6. Patch — использовать результаты операции Diff (то есть данные в формате DiffGram) для создания нового документа XML.

    9.11. Message Queue Task

    Message Queue Task — это задача, предназначенная для работы с сообщениями в Message Queue Service, службы работы с сообщениями, которая поставляется вместе с Windows 2000 Server и Windows Server 2003.

    Данная задача может быть использована:

    • для повышения надежности передачи данных при не очень надежных или перегруженных сетевых соединениях;

    • для синхронизации работы пакетов SSIS (и просто приложений);

    • для накопления и последующей пакетной обработки данных.

    Настройка Message Queue Task 

    1. Установить службы Message Queue и создать очередь сообщений. Установка служб Message Queue производится обычными средствами Windows: Панель управления Установка и удаление программ кнопка Установка компонентов Windows раскрыть контейнер Сервер приложений установить флажок Очередь сообщений.

    2. Создать очередь, которую мы будем использовать: открыть консоль Управление компьютером раскрыть контейнер Службы и приложения  Очередь сообщений создать новую частную очередь из контекстного меню для одноименного контейнера, см. рис. 9.9ОК.

    Рис. 9.9. Создание частной очереди

    1. Создать в пакете менеджер подключения типа MSMQ Connection Manager. Главное его свойство — свойство Path, в котором определяется путь и имя очереди. Значение для этого свойства записывается в формате имя_компьютера\Private$\имя_очереди, например London2\Private$\SSIS1.

    2. Перетащить из Toolbox на вкладку Control Flow задачу типа Message Queue Task и настроить ее свойства.

    • На вкладке General определить имя и описание задачи, использовать ли формат, совместимый с очередями сообщений в Windows 2000 (по умолчанию Windows Server 2003), менеджер подключения, а также тип задачи (свойство Message) — будет ли эта задача отправлять сообщение в очередь (Send message) или получать сообщение из очереди (Receive Message). В зависимости от выбранного вами значения вторая вкладка будет называться, соответственно, Send или Receive.

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

  • Включить задачу Message Queue в схему выполнения вашего пакета.

    9.12. Execute Package Task и Execute DTS 2000 Package Task

    Единственное назначение задач Execute Package Task и Execute DTS 2000 Package Task — запускать на выполнение другие пакеты.

    Настройка Execute Package Task

    1. На вкладке Package выбрать местонахождение пакета (в файловой системе или на SQL Server),

    2. выбрать сам пакет (в виде менеджеров подключений File Connection Manager или OLE DB Connection Manager с указанием имени пакета),

    3. указать пароль на запуск пакета (если пакет зашифрован) и настроить режим его выполнения (свойство ExecuteOutOfProcess). Значение False (по умолчанию) означает, что вложенный пакет будет выполняться в рамках того же процесса, что и родительский, а значение True — что для вложенного пакета будет запущен отдельный процесс.

    Настройка передачи параметров вложенному пакету в Execute Package Task

    1. открыть вложенный пакет в SSIS Designer;

    2. в меню SSIS выбрать команду Package Configurations;

    3. в открывшемся окне Package Configurations Organizer установить флажок Enable Package Configurations и нажать на кнопку Add, чтобы создать новую конфигурацию.

    4. На экране Select Configuration Type мастера конфигураций пакета выбрать тип конфигурации Parent package variable, ввести имя переменной родительского пакета и на следующем экране выбрать свойство элемента вложенного пакета (или его переменную), для которого будет использоваться значение переменной родительского пакета.

    5. Затем эту же операцию по созданию конфигурации можно будет повторить еще несколько раз. После этого при запуске вложенного пакета средства Execute Package Task свойства вложенного пакета будут динамически изменяться в зависимости от значений переменных в родительском пакете.

    Настройка Execute DTS 2000 Package Task

    В свойствах этой задачи есть вкладки Inner Variables и Outer Variables.

    • На вкладке Inner Variables мы назначаем значения переменным вложенного пакета, которые будут использованы при его запуске (обычно для этого используются переменные родительского пакета).

    • На вкладке Outer Variables мы обеспечиваем прием данных после завершения выполнения вложенного пакета (опять-таки при помощи переменных родительского пакета).

    9.13. Transfer Database Task

    Эта задача предназначена для копирования или перемещения баз данных с одного сервера SQL Server на другой сервер. Отметим некоторые моменты:

    1. Эта задача может работать в двух режимах (свойство Method на вкладке Databases):

    • DatabaseOnline - база данных-источник на время работы этой задачи останется доступной для пользователей. Вся работа по перемещению баз данных и их объектов между серверами будет производиться средствами объектной модели SMO.

    • DatabaseOffline - исходная база данных будет отсоединена, ее файлы будут скопированы по сети на сервер назначения и там подключены к новому серверу. Будет ли база данных на сервере-источнике присоединена после этого заново, определяется при помощи свойства ReattachSourceDatabase;

    1. Эта задача умеет работать не только с экземплярами SQL Server 2008, но и с экземплярами SQL Server 2000. Единственное ограничение: нельзя копировать или перемещать базу данных SQL Server 2008 на SQL Server 2000;

    2. В качестве источника и назначения можно указывать один и тот же сервер. В этом случае база данных будет скопирована на том же сервере под другим именем;

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