Integration Services, Часть 1 — Получение и преобразование данных из Firebird и InterBase.
ВведениеСоздание SSIS пакета и нового потока данных
Создание подключения к базе данных Firebird/InterBase
Импорт данных на основе таблицы. OLE DB Source
Импорт данных на основе SQL запроса
Преобразование данных
Ссылки по теме
Keywords: MS SQL Server Integration Services, Business Intelligece (BI), BI системы, MSSQL 2005, Firebird, InterBase
Введение.
ETL — Extract (получение), Transform (преобразование), Load (загрузка)
SQL Server Integration Services (SSIS) — это удобная среда, входящая в состав MS SQL Server 2005 Business Intelligence, которая предназначена для разработки ETL — процессов. Проекты Integrations Services хорошо интегрируются с другими средствами разработки SQL Server 2005 — Analysis Services (SSAS) и Reporting Services (SSRS). В качестве источников и получателей данных могут выступать книги Excel, текстовые и XML файлы, а так же базы данных, для которых реализован OLE DB провайдер. Для работы с данными Firebird и InterBase в среде Integration Services необходимо воспользоваться компонентами OLE DB Source и OLE DB Destination, а так же установить IBProvider Professional Edition (32/64 bit).
|
Создание SSIS пакета и нового потока данных.
Запустите среду SQL Server Business Intelligence Development Studio и создайте новый проект Integration Services Project. Перетащите на вкладку Control Flow компонент Data Flow Task. (см. Рисунок 3), Будет создан новый поток данных. Далее переключитесь на вкладку Data Flow и перетащите с панели компонентов (Toolbox) OLE DB Source (см. Рисунок 4). Далее необходимо настроить источник данных.
Создание подключения к базе данных Firebird/InterBase.
Существует несколько способов создания подключения к базе данных. Один из них — это воспользоваться менеджером подключений (Connection Manager). Щелкните правой кнопкой мыши в менеджере подключений и выберите пункт меню New OLE DB Connection:

В открывшемся окне менеджера подключений OLE DB (см. Рисунок 6), выберите существующее подключение или создайте новое. При создании нового подключения откроется диалог, в котором в выпадающем списке необходимо выбрать LCPI OLE DB Provider for InterBase [v3] и нажать кнопку Data Links:

Запустится встроенный в IBProvider диалог настройки подключения OLE DB, в котором необходимо установить следующие обязательный параметры:
- Full path to database file — соответствует параметру строки подключения Location.
- User и Password.
- Save password — разрешить сохранение пароля в тексте строки подключения.
- Enable Automatic transaction — разрешить автоматические транзакции (соответствует параметру строки подключения auto_commit).

Перейдите на следующую вкладку:
- Выберите тип сервера.
- Установите галочку Support ODBC Query (соответствует параметру строки подключения support_odbc_query).
- Снимите галочку Truncate Char (соответствует параметру строки подключения truncate_char).

И наконец, на последней вкладке необходимо установить свойство support_square_delim_name = 1 (см. Рисунок 10).
На этом настройка подключения завершена. Убедитесь в правильности настроек, нажав на кнопку Test Connection (Проверить подключение).
Импорт данных на основе таблицы. OLE DB Source.
Для импорта списка клиентов создадим источник данных, который загрузит таблицу CUSTOMERS. Нажмите правой кнопкой мыши на компоненте OLE DB Source и выберите пункт меню Edit:

Откроется диалог настройки источника данных. В нем необходимо:
- Выбрать подключение к базе данных.
- Выбрать таблицу с данными (таблицу CUSTOMERS).
- Настроить список возвращаемых полей, выбранной таблицы.

Импорт данных на основе SQL запроса.
Для загрузки отчета о продажах настроим OLE DB Source так, чтобы он использовал данные SQL запроса. Добавим новый компонент OLE DB Source в Data Flow и настроим его в соответствии с рисунком:

Запрос можно написать вручную или воспользоваться построителем запросов (Query Builder). Для проверки синтаксиса нажмите кнопку Parse Query, Кнопка Preview покажет результат выполнения запроса.
Преобразование данных.
В среде Integration Services реализовано достаточно много стандартных преобразователей. Их рассмотрение выходит за рамки данной статьи, поэтому я приведу лишь результирующий поток данных:

Данные о клиентах и продажах загружаются из двух источников OLE DB Source — Customers List и Sales Report. Далее они сортируются по полю CUST_NO при помощи двух компонентов Sort. Предварительная сортировка требуется для компонента Merge (Merge customer countries and sales info). В компоненте Merge данные из двух источников объединяются по полю CUST_NO. В результрующее множество добавляются поля TOTAL_VALUE, DISCOUNT, ITEM_TYPE из отчета о продажах, а так же COUNTRY из списка клиентов:

Далее данные передаются компоненту Aggregate (Group by countries and items types), который производит различные групповые операции над результирующим множеством:

Из рисунка следует, что сначала производится группировка по странам, далее по типу товара, а так же определяется величина прибыли и число продаж по каждой стране. После этого компонент Sort сортирует данные по величине прибыли и передает их виртуальному приемнику DataReaderDest. Результат обработки данных контролируется с помощью средства Data Viewers:

Просмотром данных (DataViewers) удобно пользоваться для вывода промежуточных результатов и отладки SSIS пакета. После выполнения пакета (F5), на экране появится окно с результатами обработки данных:

Дополнительная информация с сайта.
- Скачать IBProvider Professional Edition (32/64 bit)
- FAQ: по работе с MS SQL Server Business Intelligence (SSIS, SSRS, SSAS) [en].
- FAQ: по настройке Firebird/InterBase для работы с MS SQL Linked Server [en].
- Работа с Firebird/InterBase в .Net.
- ODBC Firebird драйвер, ODBC InterBase или все же OLE DB?.
- Вся документация по работе с IBProvider.
Подпишитесь на новости и получите все последующие части из этой серии статей.
