|
||||||||
|
|
Действия в службе Analysis Services
Рас
Уитни, SQL Magazine OnLine #01/2001 Новшество Analysis Services - действия (Actions) - позволяет
подсоединить структурированные или неструктурированные данные или команды
практически к любому месту куба OLAP. Если вы хотите повысить оперативность
принятия решений в организации, то следует непременно использовать действия для
подключения той информации, которая кажется имеющей отношение к делу. Тогда
тот, кто принимает решения, затратит меньше времени на поиск нужных данных, а
сами решения будут базироваться на солидном информационном основании. Аналитическая служба SQL Server 2000 представляет собой полноценный
процессор OLAP, который отвечает появившимся в последнее время требованиям,
обусловленным задачами многомерного анализа данных. Тем не менее, для
проведения всестороннего анализа бизнеса одного только OLAP недостаточно. Для
действительно эффективной работы аналитику требуется доступ не только к кубу
OLAP, работающему в автономном режиме, но и к различным источникам информации о
бизнесе, связанным друг с другом общим контекстом. Способность связывать куб
OLAP с источниками детальной или справочной информации является отличительной
особенностью Analysis Services. Эта способность отчасти обеспечивается
средствами сквозной детализации, которые позволяют аналитику получать доступ к
подробной информации о транзакциях, образующих итоговые величины, хранящиеся в
ячейках куба OLAP. Другое новшество Analysis Services - действия (Actions) -
позволяет подсоединить структурированные или неструктурированные данные или
команды практически к любому месту куба OLAP. Если вы хотите повысить
оперативность принятия решений в организации, то следует непременно
использовать действия для подключения той информации, которая кажется имеющей
отношение к делу. Тогда тот, кто принимает решения, затратит меньше времени на
поиск нужных данных, а сами решения будут базироваться на солидном
информационном основании. Действия можно рассматривать как контекстные команды, инициируемые конечными
пользователями. Действия обычно определяет администратор, который строит куб
OLAP, но задать их может и пользователь. Действиям можно найти множество
применений при интеграции информации и приложений. В качестве примера
предположим, что в кубе OLAP содержится информация о разделе рынка. Просмотр
куба позволяет сравнивать объемы продаж продуктов компании с соответствующими
показателями любого из конкурентов. Если вдруг обнаружится, что происходит
захват рынка одним из конкурентов, то, возможно, потребуется более подробная
информация о линии продуктов этого конкурента и о его маркетинговой стратегии.
В этот момент очень уместным оказалось бы действие, связывающее имя конкурента
с документом или сайтом, содержащим сведения о производимых им товарах. Это
помогло бы скорректировать стратегию бизнеса. Помимо этого, можно связать показатели продаж товаров с их наименованиями,
сведения о зарплате служащих с их фамилиями и так далее. Но действия позволяют
выполнить значительно более сложную работу, чем просто установить связь
неструктурированной информации, такой как адрес сайта или местонахождение
документа, с членами размерностей. Действия могут выполнять команды обработки
куба, инициировать из командной строки запуск программ, содержать встроенные
операторы HTML. Действие может даже исполнять частную команду, которую в
состоянии воспринять только конкретное аналитическое приложение. Действия можно
привязать к ячейкам куба, заданным множествам, уровням размерностей,
размерностям и к целому кубу. В состав административной программы Analysis Services, называемой Analysis
Manager, входит специальный мастер, который помогает создавать действия.
Запустите Analysis Manager и продвигайтесь по дереву слева до тех пор, пока не
дойдете до имени куба, пусть это будет FoodMart 2000 Sales. Щелкните дважды
правой кнопкой мыши на названии куба и затем выберите из появившегося
контекстного меню пункт Edit. В редакторе куба раскройте меню вставки Insert и
выберите действие, Action. Другой способ вызвать мастер действий Action Wizard,
- щелкнуть по значку действия (желтый куб с двумя исходящими из него красными
стрелами) в строке инструментов. Оба этих способа активизируют мастер действий.
Первым шагом мастер действий идентифицирует ту часть куба, к которой будет
прикреплено действие. Как показано на рисунке 1, в рассматриваемом примере
действие прикрепляется к членам размерности Магазин (Store) на уровне
наименований (Store Name). На следующем шаге выбирается тип действия, как показано на рисунке 2. Различные типы действий описаны в приложении, находящемся в конце данной
статьи. Каждый тип действий предусматривает наличие текстовой информации,
содержание которой определяется типом действия. В этот текст разрешено вводить
параметры, например, в качестве параметра допустимо использовать имя члена
размерности, с которым связано действие. После того, как выбран тип действия и нажата кнопка Next, можно приступать к
вводу текста, ассоциированного с данным действием. На рисунке 3 показан пример
текста, связанного с действием типа HTML. Последняя страница мастера действий предоставляет возможность дать название
создаваемому действию. В рассматриваемом примере действие было названо HTML
Sample. Для завершения создания действия нажмите кнопку Finish. Теперь нажмите
значок дискеты в строке инструментария, чтобы сохранить сделанные изменения. Чтобы протестировать только что созданное действие, щелкните на вкладке
данных в нижней части окна редактора куба. Это переведет редактор из режима
демонстрации схемы куба в режим просмотра данных. Перетяните размерность Store
на решетку и разверните ее полностью до самого нижнего уровня. Чтобы развернуть
член размерности, следует дважды щелкнуть на значке <плюс> рядом с названием
члена. Увидев названия магазинов, щелкните правой кнопкой мыши на одном из них.
В контекстном меню появится пункт с действием HTML Sample. Выбор этого пункта
меню инициирует действие, результаты которого показаны на рисунке 4. Применение действий из Visual Basic
Если вы хотите получить программный доступ к новым возможностям Analysis
Services, необходимую информацию можно найти в документации по OLE DB для OLAP
на сайте Microsoft по адресу http://www.microsoft%20.com/data/oledb/olap.
В программном продукте ADO MD (ActiveX Data Object, Multi-Dimensional)
предусмотрен доступ более высокого уровня к OLE DB для OLAP. Этот способ очень
хорош при работе с Visual Basic (VB). Специалисты корпорации Microsoft
разработали программный интерфейс OLE DB для OLAP, чтобы улучшить
взаимодействие между клиентами и сервером OLAP. Однако действия не вошли в
документацию этого стандартного интерфейса. Получить доступ к действиям через
OLE DB для OLAP и из ADO MD можно, используя собственные расширения Microsoft,
такие как документация SQL Server 2000 Books Online (BOL). Чтобы дать читателям представление о том, каким образом применять действия
из клиентских приложений, я написал на VB программу, которая ищет любое
действие HTML, привязанное к члену Store 9 размерности Store. Если программа
находит такое действие, она показывает его название в окне сообщения, а затем
запускает браузер, чтобы показать на экране код HTML этого действия. Если
читатели захотят использовать этот исходный код в своих приложениях, то они
смогут расширить его таким образом, чтобы он поддерживал все типы действий и
все виды метаданных куба. Чтобы запустить этот пример, сначала создайте действие HTML Sample, которое
я приводил выше. Теперь загрузите проект VB, который можно найти в приложении к
статье с идентификационным номером 8758 на сайте SQL Server Magazine по адресу http://www.olap.ru/desc/microsoft/www.sqlmag.com.
Когда будете вводить этот пример, тщательно проверьте корректность всех ссылок.
Убедитесь в том, что имеются ссылки на библиотеки ADO MD, ADO и Microsoft
Scripting Runtime. При загрузке проекта VB из сети помните, что все необходимые
ссылки в нем уже есть. В первой части кода VB объявляются константы, необходимые для получения
доступа к набору строк схемы Actions через ADO MD. Подпрограмма Form_Load
начинает с установления ADO MD с базой данных FoodMart 2000. Следующим шагом
вводится массив ограничений на доступ к набору данных Actions. В
рассматриваемом примере я ограничил строки в кубе Sales для члена размерности
Store 9 типом HTML. Значения в массиве ограничений соответствуют полям набора
строк Actions. Если определить в массиве ограничение Empty, то на
соответствующий столбец ограничения накладываться не будут. В таблице 1
приведен перечень всех полей набора строк Actions.
Чтобы обратиться с запросом к набору строк ADO MD, следует вызвать тот же
самый метод OpenSchema, который используется при доступе к набору строк размерностей,
Dimension, или же их членов, Member. В данном случае передается параметр
adSchemaProviderSpecific, который сообщает, что этот набор строк характерен для
поставщика OLE DB для OLAP. Третий параметр представляет собой глобальный
уникальный идентификатор (GUID), который определяет, какой именно набор строк
требуется. Завершающий шаг этого примера демонстрирует название действия и выполняет
его. Данный пример сохраняет содержимое HTML во временном файле и запускает
браузер для его просмотра. Эффективность анализа ограничивается только накопленными знаниями и
доступностью нужных данных. Появление в арсенале SQL Server действий
существенно расширяет круг доступных сведений и предоставляет возможность
подключить в качестве контекстной информации дополнительные источники данных.
Если в организации уже развернуты кубы OLAP, или планируется это сделать в
ближайшем будущем, попробуйте воспользоваться действиями, для того чтобы
подсоединить к ним другие источники. Расширение информационной поддержки, которая
может потребоваться аналитикам, позволит быстрее принимать более обоснованные
решения. Тем, кто занят разработкой клиентских OLAP-приложений, я рекомендую
более активно использовать действия. Усилия, затраченные на программирование,
окупятся сторицей. ПРИЛОЖЕНИЕ 1.
Классификация действий
Действия представляют собой одно из нововведений Analysis Services,
позволяющее присоединить к кубу OLAP больше детальной информации. Ниже
приводятся названия и краткие характеристики различных типов действий. Командная строка. Выполняет команду, записанную в командной
строке. При помощи этого действия можно виртуально запускать любую программу,
параметры которой указываются в командной строке и содержат всю необходимую для
запуска информацию. К примеру, если выполнить такое действие на имени товара, в
результате будет запущена программа ведения складского хозяйства, которая
покажет количество данного товара на складе. Оператор. Выполняет команду OLE DB, которая может успешно или
неуспешно завершиться, но не должна при этом возвращать никакого результата.
Примерами могут служить команды определения данных CREATE MEMBER или DROP
MEMBER. HTML. Содержит набор HTML, который может быть открыт обычным
браузером. Клиентское приложение сохраняет HTML во временном файле и запускает
для его просмотра браузер, применяемый по умолчанию. URL. Это действие подобно действию HTML за исключением того,
что оно содержит URL, а не HTML. Действие URL полезно применять для подключения
метаданных куба к сети intranet или сайтам Internet. Набор данных. Содержит запрос MDX, который возвращает набор
данных. Этот набор данных может формироваться на основании информации из
другого куба, принадлежащего той же базе данных, где хранится действие. Данное
действие удобно использовать для обеспечения связи пользователей с различными
кубами, связанными друг с другом. Набор строк. Содержит команду OLE DB, которая относится к
операторам или наборам данных. Команда обязательно должна возвращать набор
данных. Это действие может содержать команду сквозной детализации или же
обычный запрос SQL. Собственность. Может содержать все, что угодно. Применяется
для специфических действий, которые не могут быть отнесены ни к какой другой
категории. Эти действия должны распознаваться каким-либо аналитическим
приложением. | ||||||||||||||||||||||||||||||||||
За содержание страницы отвечает Гончарова М.Н. © Кафедра СПиКБ, 2002-2017 |