Главная » Microsoft SQL Server, Базы данных » Элементы пакетов службы интеграции – ЧАСТЬ 5

0

На странице Script редактора перечислите переменные, доступные в сценарии только для чтения или для чтения и записи. Для этого разделите эти переменные запятыми в параметрах ReadOnlyVariables и ReadWriteVariables соответственно. Оставьте для параметра PreCompile предложенное по умолчанию значение True, если размер пакета на диске не вызывает тревоги. Щелкните на кнопке Script и обратите внимание в программном коде на то, что программируемый главный метод замещает собой метод CreateNewOutputRows, как показано в следующем примере:

Public Class ScriptMain Inherits UserComponent

‘— Создание 2 0 строк случайных целых чисел от 1 до 100 Public Overrides Sub CreateNewOutputRows()

Randomize()

Dim i As Integer For i = 1 To 2 0

OutputOBuffer.AddRow()

OutputOBuffer.Randomlnt = CInt(Rnd() * 10 0)

Next End Sub End Class

Этот пример работает для единственного выхода с именем по умолчанию Output 0, содержащего один целочисленный столбец Randomlnt. Обратите внимание на то, что все выходы представлены как имя+"Buffer", при этом внедренные пробелы из имени удалены. Новые строки добавляются с помощью метода AddRow, а обращение к столбцам производится как к свойствам выхода. Также представлено дополнительное свойство для каждого из столбцов — суффикс _IsNull (например, OutputOBuf fer. RandomInt_IsNull) для маркировки значения как пустого.

Чтение данных из внешнего источника требует выполнения некоторых дополнительных действий, в том числе идентификации диспетчера подключений на странице Connection Managers, на которые будут выполняться ссылки в сценарии. К тому же в сценарии должны быть замещены и некоторые другие методы: Acqui reconnect ions и ReleaseConnections — для открытия и закрытия подключений, а также PreExecute и PostExecute — для открытия и закрытия любых наборов данных, объектов DataReader и т.п. Полноценные примеры программного кода и методы диспетчеров подключений вы можете найти в статье “Examples of Specific Types of Script Components” утилиты SQL Server Books Online.

Приемники

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

?               Connection Manager. Здесь определяются конкретные таблицы, файлы, представления и запросы, в которые записываются данные. Некоторые приемники допускают нахождение имени таблицы в переменной.

?               Columns. Отображение столбцов потока данных на соответствующие столбцы приемника.

?               Error Output. Здесь определяются действия над строкой, если вставка ее в приемник привела к ошибке. Строку можно игнорировать, можно завершить работу компонента по ошибке (принято по умолчанию), а также перенаправить проблемную строку в поток ошибок.

Доступны следующие приемники.

?               OLE DB. Запись строк в таблицу, представление или инструкцию SQL, для которых существует драйвер OLE DB. Имена представлений и таблиц можно задать напрямую или хранить в строковой переменной, при этом для каждого можно при желании использовать так называемую ускоренную загрузку, которая способна уменьшить время выполнения за счет применения определенных параметров и характера самого набора данных. Параметры ускоренной загрузки приведены ниже.

•                Keep Identity. Когда таблица назначения содержит столбец идентичности, установка данного параметра позволяет этому идентификатору быть замещенным вставляемыми значениями (SET IDENTITY_INSERT ON), или этот столбец должен быть исключен из отображаемых, чтобы СУБД SQL Server могла сгенерировать новые значения идентичности.

•                Keep nulls. Этот параметр позволяет загружать пустые значения вместо (как обычно) предусмотренных по умолчанию.

•                Table lock. Во время выполнения устанавливается блокировка на уровне таблицы.

•                Check constraints. Активизация ограничений проверки (например, допустимого диапазона значений) для вставляемых строк. Следует отметить, что остальные типы ограничений (на уникальность, запрет пустых значений, а также ограничений первичного и внешнего ключей) не могут быть отключены. Загрузка данных с отключенными ограничениями проверки приведет к тому, что SQL Server пометит их как ненадежные.

•                Rows per batch. Явное указание размера пакета учитывается при построении плана запроса, однако не изменяет размер транзакций, используемых для помещения строк в таблицу назначения.

•                Maximum insert commit size. Аналогично параметру BatchSise задания Bulk Insert, этот параметр указывает на максимальное количество строк, включаемое в одну транзакцию. Если этот параметр оставить в нулевом значении (как принято по умолчанию), то весь набор данных загружается в пределах одной транзакции.

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

?               SQL Server. Этот приемник использует тот же механизм ускоренной загрузки, что и задание Bulk Insert, однако ограничен тем, что пакет должен выполняться на том же сервере, где находится целевая таблица или представление. При некоторых обстоятельствах скорость может превосходить достижимую в задании OLE DB. Параметры этого задания такие же, как были описаны для Bulk Insert.

?               DataReader. Поток данных становится доступным для объекта DataReader модели ADO.NET. Этот объект может быть открыт другими приложениями, в частности службой отчетности, для чтения выходных данных пакета.

?               Flat File. Записывает поток данных в файл, определенный в диспетчере подключений Flat File. Так как этот файл описан в диспетчере подключений, для объекта назначения доступен ограниченный набор параметров. Вы можете указать, следует ли замещать существующий файл, следует ли применить к заголовку файла сопровождающий текст.

?               Excel. Отправка строк из потока данных в рабочий лист или именованный диапазон рабочей книги с помощью диспетчера подключений Excel. Следует заметить, что рабочий лист Excel способен содержать не более 65536 строк данных, первая из которых отводится для хранения информации заголовка. Все строки должны поддерживать

кодовую таблицу Unicode, поэтому любые типы DT_STR следует предварительно преобразовать в DT_WSTR.

Raw. Запись строк из потока данных в формат службы интеграции, подходящий для быстрой загрузки компонентом источника Row. При этом не используется диспетчер подключений. Вместо этого выбирается режим доступа либо явным указанием имени файла, либо его предоставлением в строковой переменной. Установите параметр записи WriteOptions в одно из следующих значений.

•                Append. Добавление данных в существующий файл, предполагая, что они соответствуют уже содержащимся в нем.

•                Create always. Всегда создается новый файл.

•                Create once. Файл создается один раз, а затем дополняется. Этот параметр полезен в циклах, в которых постоянно выполняется запись в один и тот же приемник в пределах пакета.

•                Truncate and append. Сохранение метаданных существующего файла, но замена в нем информационных данных.

Recordset. Запись потока данных в переменную. Сохраненная как набор записей, переменная объекта может использоваться как источник для циклов Foreach и прочих операций в пределах пакета.

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

Dimension Processing и Partition Processing. Эти задания позволяют наполнить кубы службы анализа без предварительного заполнения реляционного источника данных, на которых они построены. Укажите нужный диспетчер подключений Analysis Services, а затем выберите размерность или раздел, который вас интересует. После этого выберите один из следующих режимов обработки.

•                Add/Incremental. Минимальная обработка, необходимая для добавления новых данных.

•                Full. Полная переработка структуры и данных.

•                Update/Data-only. Замена данных без обновления структуры.

Data Mining Model Training. Предоставление тестовых данных для существующей структуры раскрытия данных с целью подготовки их для запросов прогнозирования. Определите диспетчер подключений Analysis Services и целевую структуру раскрытия в этой базе данных. Во вкладке Columns отобразите тестовые данные на соответствующие атрибуты структуры раскрытия.

Script. Сценарий может также использоваться и в качестве приемника данных; при этом процесс конфигурирования в точности совпадает с тем, который был описан для источника. Обычно сценарий используют в качестве приемника тогда, когда форматирование вывода не может обеспечить ни один из стандартных приемников. Например, файл, подходящий для ввода в программу на языке COBOL, может быть сгенерирован из стандартного потока данных. Для этого переместите компонент сценария в рабочую область конструктора, выбрав из всплывающего окна выбора типа компонента вариант Destination. Идентифицируйте интересующие вас столбцы и сконфигурируйте параметры, как было описано выше. После щелчка на кнопке Script для доступа к про-

граммному коду вы увидите главную процедуру, носящую имя Input с номером выхода и суффиксом _ProcessInputRow (например, InputO_ProcessInputRow). Отметим, что объект строки передается в эту процедуру в качестве аргумента, обеспечивая столбец ввода информацией для каждой строки (например, Row.MyColumn и Row.MyColumn_IsNull). Конфигурация подключения и подготовительные операции те же, что были описаны для одноименного источника. Полноценные примеры программного кода и методы диспетчера подключений вы можете найти в статье “Examples of Specific Types of Script Components” ресурса SQL Server Books Online.

Источник: Нильсен, Пол. Microsoft SQL Server 2005. Библия пользователя. : Пер. с англ. — М. : ООО “И.Д. Вильямс”, 2008. — 1232 с. : ил. — Парал. тит. англ.

По теме:

  • Комментарии