Елементи пакетів служби інтеграції – ЧАСТИНА 5

На сторінці 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

OutputOBufferAddRow()

OutputOBufferRandomlnt = 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 моделі ADONET Цей обєкт може бути відкритий іншими додатками, зокрема службою звітності, для читання вихідних даних пакета

■ Flat File Записує потік даних у файл, визначений в диспетчері підключень Flat File Так як цей файл описаний в диспетчері підключень, для обєкта призначення доступний обмежений набір параметрів Ви можете вказати, чи слід заміщати існуючий файл, чи слід застосувати до заголовка файлу супроводжуючий текст

■ Excel Відправка рядків з потоку даних в робочий лист або іменований діапазон робочої книги за допомогою диспетчера підключень Excel Слід зауважити, що робочий лист Excel здатний містити не більше 65 536 рядків даних, перша з яких відводиться для зберігання інформації заголовка Всі рядки повинні підтримувати

кодову таблицю 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) Відзначимо, що обєкт рядка передається в цю процедуру в якості аргументу, забезпечуючи стовпець введення інформацією для кожного рядка (наприклад, RowMyColumn і RowMyColumn_IsNull) Конфігурація підключення і підготовчі операції ті ж, що були описані для однойменного джерела Повноцінні приклади програмного коду і методи диспетчера підключень ви можете знайти в статті Examples of Specific Types of Script Components ресурсу SQL Server Books Online

Джерело: Нільсен, Пол Microsoft SQL Server 2005 Біблія користувача : Пер з англ – М: ООО ІД Вільямс , 2008 – 1232 с : Ил – Парал тит англ

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*