Образец пакета Synchronizing Adventure Works DW Partitions
Одна из проблем, с которыми часто сталкиваются разработчики — это автоматизация процесса создания секций в кубах служб Analysis Services. Над секциями обычно выполняется срез по измерению, например по времени. К примеру, в базах данных Adventure Works DW были статически созданы секции данных о продажах за четыре года, с 2001-го по 2004-й. Что произойдет, если таблицы фактов начнут накапливать данные вне этого диапазона дат? Если будут добавляться данные о продажах за 2005 и 2006 годы, должен ли разработчик создавать новые секции вручную, или есть какой-либо способ автоматизации этого процесса?
Образец пакета Synchronizing Adventure Works DW Partitions — это типовой пакет, который демонстрирует, как автоматизировать выявление и создание новых секций. Хотя образец был написан специально для объектов Adventure Works DW, его легко использовать в похожих средах. Этот образец не поддерживается операционными системами для платформы Itanium.
![]() |
---|
Образцы предназначены только для обучения. Они не предназначены для использования в рабочей среде и не тестировались в ней. Корпорация Майкрософт не предоставляет техническую поддержку для этих образцов. |
Требования
Для запуска образца пакета необходимо следующее.
- Образец пакета и файлы данных, которые он использует, должны быть установлены на локальном диске.
- Должна быть установлена база данных OLTP AdventureWorks и на нее должны иметься права администратора.
- Если необходимо запускать образец пакета только из командной строки, следует установить службы SQL Server 2005 Integration Services (SSIS).
- Если необходимо открывать пакет в конструкторе служб SSIS и запускать образец пакета, следует установить среду Business Intelligence Development Studio.
- Если нужно запустить этот образец пакета на 64-разрядном компьютере, то следует установить для свойства PreCompile задачи сценария значение True. Чтобы пройти через сценарий в пошаговом режиме с помощью средств отладки, следует установить этому свойству значение False.
- Если реляционная база данных и база данных служб Analysis Services находятся не на локальном компьютере или если они были переименованы, то нужно будет изменить соответствующее соединение в образце пакета, чтобы оно указывало на правильное расположение базы данных. Можно отредактировать пакет непосредственно в конструкторе служб SSIS или можно изменить конфигурацию пакета.
- Чтобы запустить сценарий в пакете, необходимо установить ссылку на объекты AMO. Для этого необходимо, чтобы папка «%windir%\Microsoft.net\framework\v2.0.xxxxx» содержала копию файла Microsoft.AnalysisServices.dll, а проект Microsoft Visual Studio для приложений имел ссылку на объекты AMO. По умолчанию сборку можно скопировать из файла «C:\Program Files\Microsoft SQL Server\90\SDK\Assemblies\Microsoft.AnalysisServices.dll».
Дополнительные сведения об установке образцов см. в разделе «Установка образцов пакетов служб Integration Services» электронной документации по SQL Server 2005. Последние версии образцов, включая новые, выпущенные после выхода исходной версии SQL Server 2005 можно найти в разделе Образцы кода и баз данных SQL Server 2005 (апрель 2006 г.)
Размещение образца пакета
Если образцы были установлены при установке в расположении по умолчанию, то образец пакета Synchronizing Adventure Works DW Partitions будет расположен в следующей папке: «C:\Program Files\Microsoft SQL Server\90\Samples\Integration Services\Package Samples\SyncAdvWorksPartitions Sample\SyncAdvWorksPartitions\».
Для запуска образца пакета необходимы следующие файлы.
Файл | Описание |
---|---|
Sync Partitions.dtsx |
Образец пакета. |
Get Partitions List.sql |
Запрос Transact-SQL, используемый для идентификации и возврата метаданных секций из реляционной СУБД. Этот файл содержит копию SQL-запроса, используемую в задаче «Выполнение SQL», и не требуется для запуска пакета, однако просматривать и изменять инструкции SQL может оказаться удобнее с помощью этого файла. |
Запуск образца
Пакет можно запустить из командной строки с помощью программы dtexec или выполнить в среде Business Intelligence Development Studio.
Запуск пакета при помощи программы dtexec
Откройте окно командной строки.
Перейдите в каталог «C: Program Files\Microsoft SQL Server\90\DTS\Binn», в котором находится программа dtexec.
Введите следующую команду:
dtexec /f "C:\Program Files\Microsoft SQL Server\90\Samples\Integration Services\Package Samples\SyncAdvWorksPartitions Sample\SyncAdvPartitions\Sync Partitions.dtsx"
Нажмите клавишу ВВОД.
Дополнительные сведения о запуске пакета при помощи программы dtexec см. в разделе «Программа dtexec» электронной документации по SQL Server 2005.
Запуск пакета в среде Business Intelligence Development Studio
Откройте среду Business Intelligence Development Studio.
В меню Файл выберите пункт Открыть и пункт Решение или проект.
Выберите в списке Файлы типа: пункт Файлы проектов служб Integration Services (*.dtproj), найдите папку SyncAdvWorksPartitions Sample, затем дважды щелкните файл с именем Sync Partitions.dtproj.
Находясь в Обозреватель решений, щелкните правой кнопкой мыши файл Sync Partitions.dtsx в папке Пакеты служб SSIS, затем выберите пункт Выполнить пакет.
Дополнительные сведения о запуске пакета в среде Business Intelligence Development Studio см. в разделе «Запуск пакетов» электронной документации по SQL Server 2005.
Компоненты образца
В следующей таблице перечислены задачи, источники и назначения, используемые в образце.
Элемент | Назначение |
---|---|
Задача «Выполнение SQL» |
Задача «Выполнение SQL» с именем Получение списка секций выполняет запрос Transact-SQL к таблице фактов. Запрос определяет и возвращает метаданные, определяющие секции, над которым выполнен срез по измерению времени. Получаемый в результате набор строк содержит по одной строке для каждой секции. |
Задача «Цикл по каждому элементу» |
Задача «Цикл по каждому элементу» с именем Для каждой секции выполняет итерацию по всем наборам строк, полученным в результате выполнения задачи «Выполнение SQL». В каждой итерации содержимое набора строк извлекается в переменные пакета, которые используются как в задаче «Сценарий», так и в задаче «Выполнение инструкции DDL служб Analysis Services». |
Задача «Сценарий» |
Внутри задачи «Цикл по каждому элементу» задача «Сценарий» с именем Имеется ли в наличии секция? использует объекты AMO для получения сведений о том, имеется ли уже соответствующая секция в базе данных служб Analysis Services. Результат затем используется для установки значения переменной |
Задача «Выполнение инструкции DDL служб Analysis Services» |
Если необходимо, то задача «Выполнение инструкции DDL служб Analysis Services» c именем Создание секции выполняет XMLA-сценарий, хранящийся в переменной |
Диспетчер соединений служб Analysis Services |
Диспетчер соединений База данных служб AS используется задачей «Выполнение инструкции DLL» для соединения с базой данных служб Analysis Services, содержащей секции в группах мер «Продажи через Интернет», «Заказы через Интернет» и «Число заказчиков». |
Диспетчер соединений OLE DB |
Диспетчер соединений База данных реляционной СУБД используется задачей «Выполнение SQL» для запросов к реляционной базе данных, содержащей таблицы фактов FactInternetSales и FactResellerSales и таблицу измерения DimTime. |
Результаты образца
Поскольку в базе данных служб Analysis Services уже существуют секции, то новые секции при выполнении пакета создаваться не будут.
Если нужно, чтобы пакет создал новые секции в базе данных служб Analysis Services, можно удалить секции из следующих групп мер куба Adventure Works: Продажи через Интернет, Заказы через Интернет, Товарооборот посредников, Заказы через посредников или Количество заказчиков. При выполнении пакета те секции, которые были удалены из групп мер, будут воссозданы (хотя и без каких-либо статистических вычислений), после чего будет возможна повторная обработка секций.
Примечание. Если планируется удалить и повторно создать объекты в базе данных Adventure Works DW служб Analysis Services, рекомендуется сделать резервную копию текущей базы данных перед запуском образца пакета.