Поделиться через


Образец пакета Synchronizing Adventure Works DW Partitions

Одна из проблем, с которыми часто сталкиваются разработчики — это автоматизация процесса создания секций в кубах служб Analysis Services. Над секциями обычно выполняется срез по измерению, например по времени. К примеру, в базах данных Adventure Works DW были статически созданы секции данных о продажах за четыре года, с 2001-го по 2004-й. Что произойдет, если таблицы фактов начнут накапливать данные вне этого диапазона дат? Если будут добавляться данные о продажах за 2005 и 2006 годы, должен ли разработчик создавать новые секции вручную, или есть какой-либо способ автоматизации этого процесса?

Образец пакета Synchronizing Adventure Works DW Partitions — это типовой пакет, который демонстрирует, как автоматизировать выявление и создание новых секций. Хотя образец был написан специально для объектов Adventure Works DW, его легко использовать в похожих средах. Этот образец не поддерживается операционными системами для платформы Itanium.

ms161545.note(ru-ru,SQL.90).gifВажно!
Образцы предназначены только для обучения. Они не предназначены для использования в рабочей среде и не тестировались в ней. Корпорация Майкрософт не предоставляет техническую поддержку для этих образцов.

Требования

Для запуска образца пакета необходимо следующее.

  • Образец пакета и файлы данных, которые он использует, должны быть установлены на локальном диске.
  • Должна быть установлена база данных 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

  1. Откройте окно командной строки.

  2. Перейдите в каталог «C: Program Files\Microsoft SQL Server\90\DTS\Binn», в котором находится программа dtexec.

  3. Введите следующую команду:

    dtexec /f "C:\Program Files\Microsoft SQL Server\90\Samples\Integration Services\Package Samples\SyncAdvWorksPartitions Sample\SyncAdvPartitions\Sync Partitions.dtsx"
    
  4. Нажмите клавишу ВВОД.

Дополнительные сведения о запуске пакета при помощи программы dtexec см. в разделе «Программа dtexec» электронной документации по SQL Server 2005.

Запуск пакета в среде Business Intelligence Development Studio

  1. Откройте среду Business Intelligence Development Studio.

  2. В меню Файл выберите пункт Открыть и пункт Решение или проект.

  3. Выберите в списке Файлы типа: пункт Файлы проектов служб Integration Services (*.dtproj), найдите папку SyncAdvWorksPartitions Sample, затем дважды щелкните файл с именем Sync Partitions.dtproj.

  4. Находясь в Обозреватель решений, щелкните правой кнопкой мыши файл Sync Partitions.dtsx в папке Пакеты служб SSIS, затем выберите пункт Выполнить пакет.

Дополнительные сведения о запуске пакета в среде Business Intelligence Development Studio см. в разделе «Запуск пакетов» электронной документации по SQL Server 2005.

Компоненты образца

В следующей таблице перечислены задачи, источники и назначения, используемые в образце.

Элемент Назначение

Задача «Выполнение SQL»

Задача «Выполнение SQL» с именем Получение списка секций выполняет запрос Transact-SQL к таблице фактов. Запрос определяет и возвращает метаданные, определяющие секции, над которым выполнен срез по измерению времени. Получаемый в результате набор строк содержит по одной строке для каждой секции.

Задача «Цикл по каждому элементу»

Задача «Цикл по каждому элементу» с именем Для каждой секции выполняет итерацию по всем наборам строк, полученным в результате выполнения задачи «Выполнение SQL». В каждой итерации содержимое набора строк извлекается в переменные пакета, которые используются как в задаче «Сценарий», так и в задаче «Выполнение инструкции DDL служб Analysis Services».

Задача «Сценарий»

Внутри задачи «Цикл по каждому элементу» задача «Сценарий» с именем Имеется ли в наличии секция? использует объекты AMO для получения сведений о том, имеется ли уже соответствующая секция в базе данных служб Analysis Services. Результат затем используется для установки значения переменной IsNotPresent. Кроме того, эта задача также производит заполнение переменной XMLA_Script. Эта переменная может использоваться для создания новой секции в базе данных служб Analysis Services.

Задача «Выполнение инструкции DDL служб Analysis Services»

Если необходимо, то задача «Выполнение инструкции DDL служб Analysis Services» c именем Создание секции выполняет XMLA-сценарий, хранящийся в переменной XMLA_Script, для создания новой секции в базе данных служб Analysis Services. Эта задача содержит условное ограничение очередностью, которое препятствует выполнению задачи, если значение переменной IsNotPresent не равно значению true.

Диспетчер соединений служб Analysis Services

Диспетчер соединений База данных служб AS используется задачей «Выполнение инструкции DLL» для соединения с базой данных служб Analysis Services, содержащей секции в группах мер «Продажи через Интернет», «Заказы через Интернет» и «Число заказчиков».

Диспетчер соединений OLE DB

Диспетчер соединений База данных реляционной СУБД используется задачей «Выполнение SQL» для запросов к реляционной базе данных, содержащей таблицы фактов FactInternetSales и FactResellerSales и таблицу измерения DimTime.

Результаты образца

Поскольку в базе данных служб Analysis Services уже существуют секции, то новые секции при выполнении пакета создаваться не будут.

Если нужно, чтобы пакет создал новые секции в базе данных служб Analysis Services, можно удалить секции из следующих групп мер куба Adventure Works: Продажи через Интернет, Заказы через Интернет, Товарооборот посредников, Заказы через посредников или Количество заказчиков. При выполнении пакета те секции, которые были удалены из групп мер, будут воссозданы (хотя и без каких-либо статистических вычислений), после чего будет возможна повторная обработка секций.

Примечание. Если планируется удалить и повторно создать объекты в базе данных Adventure Works DW служб Analysis Services, рекомендуется сделать резервную копию текущей базы данных перед запуском образца пакета.