|
По материалам статьи William Pearson: Introduction to SQL Server 2000 Analysis Services: Creating Our First Cube Введение
в Analysis Manager Это первая статья новой серии: Introduction to MSSQL Server
2000 Analysis Services, которая должна помочь новичкам быстро
освоить эту интересную тему. Серия составлена так, чтобы
показать практические возможности основных принципов MS SQL
Server 2000 Analysis Services (для простоты "Analysis
Services"); и нашей первой задачей будет создание простых
многомерных OLAP кубов, которые мы постепенно будем снабжать
более богатыми возможностями, подобранными так, чтобы они
максимально были приближены к реальным задачам.
Когда мы устанавливали MSSQL 2000 Analysis Services, также
был установлен Analysis Manager, как инструмент для
администрирования Analysis Server. Как и Microsoft SQL Server
Enterprise Manager, интерфейс Analysis Manager является
основной утилитой для администрирования OLAP. Дерево объектов
расположено в левой области окна области управления, и на ней
видна привычная иерархическая структура, которая напоминает
Windows Explorer.
![]() Иллюстрация 1: Начальный вид консоли Analysis Manager Установка базы данных и источника данных Прежде, чем мы начнём проектировать новый куб, мы должны
установить базу данных. В терминах Analysis Manager, мы должны
установить базу данных для OLAP. База данных для OLAP, которую
мы создадим, объединяет кубы, роли, источники данных,
совместно используемые измерения и другие объекты, которые мы
рассмотрим в следующих статьях серии. Мы назовем нашу OLAP
базу данных: MyFirstCube (будьте осторожны, т.к. Вы после
этого не сможете переименовать базу данных с помощью консоли
Analysis Services), для чего, нажмите правую кнопку мыши на
имени сервера в левой области консоли. Имейте в виду, что в
качестве других объектов базы данных могут быть несколько
кубов с одним источником данных. После установки базы данных,
мы привяжем к ней источник данных, что нужно сделать до
создания нашего первого куба.
![]() Иллюстрация 2: Диалоговое окно ввода имени базы данных Нажмите OK, и обратите внимание на то, что база MyFirstCube
появилась слева сразу с заготовленными пустыми папками
объектов. Мы должны обеспечить подключение к источнику данных,
из которого нужно получать информацию. Это будет для Вас
простым делом, если Вы когда-либо имели дело с источниками
данных в Windows, в противном случае, мы сделаем это вместе и
очень быстро. Источник данных должен быть доступен через OLE
DB провайдера, варианты провайдеров можно выбрать из списка,
по умолчанию обычно предлагается Microsoft OLE DB Provider for
ODBC Drivers, применимый для последних версий СУБД,
поддерживающих OLE DB.
![]() Иллюстрация 3: Окно Data Link Properties - закладка Provider Исходя из основной задачи куба, состоящей в организации и
хранении данных для анализа, становится очевидно, что куб
должен от куда-нибудь получать данные (из таблицы фактов в
схеме типа звезда хранилища/витрины данных). Нашим источником
данных будет FoodMart2000.mdb, входящая в состав примеров
Analysis Services.
![]() Иллюстрация 4: Окно Data Link Properties - закладка Connection
![]() Иллюстрация 5: Выбор базы данных FoodMart 2000.mdb Далее, оставив все другие настройки подключения без изменений (значения по умолчанию), мы можем проверить его, нажав кнопку Test Connection в нижнем правом угол закладки Connection. Мы должны получить подтверждение того, что источник был установлен правильно (как показано на Иллюстрации 6). Нажмите OK после успешного завершения проверки, а также нажмите OK в окне Microsoft Data Link.
![]() Иллюстрация 6: Диалог проверки источника данных После того, как Вы нажмёте кнопку OK на закладке Data Link
Properties, закройте диалоговое окно Properties, и Вы увидите,
что источник данных появился в дереве папки Data Sources, и,
скорее всего, повторяет имя файла.
![]() Иллюстрация 7: Изменение имени куба переименованием Диалоговое окно Duplicate Name можно использовать для
переименования, и, после нажатия кнопки OK, будет добавлен
новый источник данных. Нам остаётся только удалить первый из
созданных источников данных, нажать на нём правую кнопку мыши
и выбрать Delete, а затем нажать кнопку Yes, что приведёт к
его удалению. Для разработки куба, сначала нужно определить меры
измерений - количественные значения, выступающие в качестве
индикаторов бизнес-функций базы данных, которую мы хотим
анализировать/исследовать. Использование мер "фактов", таких
как доходы с продаж или расходы/затраты и показателей
бюджетных/плановых или прогнозируемых значений, позволяет
успешно анализировать эффективность бизнеса. Выбор таблицы фактов и мер для куба Cube Wizard сначала предлагает выбрать таблицу фактов и,
как только мы укажем эту таблицу, он предложит выбрать меры
или числовые значения, которые наш куб будет суммировать.
Дизайн куба выполняется в несколько шагов.
![]() Иллюстрация 8: Окно Cube Wizard Welcome После того, как Вы нажмёте Next, будет показан список таблиц нашего недавно установленного источника данных MyFoodMart, из которого нужно выбрать таблицу sales_fact_1998, как это показано ниже, на Иллюстрации 9, и где можно увидеть список полей этой таблицы.
![]() Иллюстрация 9: Выбор таблицы фактов Для того, что бы убедиться в верности сделанного выбора, можно посмотреть реальные данные, нажав кнопку Browse Data..., как это изображено на Иллюстрации 10. После выбора таблицы, нажмите Next, и будет открыто диалоговое окно, в котором предлагается выбрать имеющиеся меры, которые мы хотим включить в дизайн куба.
![]() Иллюстрация 10: Просмотр данных таблицы фактов Для нашего простого примера, давайте выберем меры: store_sales, store_cost и unit_sales, как это показано на Иллюстрации 11. Закончив определение мер, нажимаем Next, и мастер перейдёт к стадии выбора измерений. На этой стадии происходит выбор значения, которые должны суммироваться в кубе, после чего мы должны указать, какие измерения мы хотим использовать в качестве перспектив или представлений наших значений/мер.
![]() Иллюстрация 11: Выбор мер с помощью Cube Wizard Создание многомерного куба: Определение значимых перспектив куба Каждое из содержащих окончание _id полей, которые мы видели
в предыдущем диалоговом окне, представляло измерение в виде
ключевых полей, по которым можно звездой связать таблицы
измерений с таблицей фактов MyFoodMart. Построенные на этих
связях объединения (JOIN) дают нам возможность более детально
рассмотреть измерения и понять, что в действительности, они
действуют как ссылки между таблицей фактов и измерениями.
Более глубокие рассуждения на эту спорную тему, а также о
понятии реляционного окружения, физических атрибут и
возможностях объединения не входят в рамки этой серии статей.
Нам будет достаточно того, что мы имеем возможность выбора из
существующих измерений, или даже можем создавать новые, что
даёт нам достаточно гибкости в рамках стандартных операций
Cube Wizard, а если точнее, в рамках вспомогательного мастера
Dimension Wizard.
![]() Иллюстрация 12: Нажмите кнопку New Dimension для запуска Dimension Wizard
![]() Иллюстрация 13: Окно Welcome мастера Dimension Wizard Создание измерений в схеме звезда: Одна таблица измерений Нажимайте Next, пока не попадёте в диалоговое окно, в котором запрашивается вид создаваемого измерения. Важно знать, что для каждого из пяти возможных вариантов внизу будет отображаться контекстно-зависимая информация описания. Для наших целей подойдёт предлагаемая по умолчанию схема звезды, как показано на Иллюстрации 14.
![]() Иллюстрация 14: Dimension Wizard предлагает 5 вариантов измерений Если теперь нажать кнопку Next, будет открыто окно выбора таблиц измерений Select the Dimension Table, в котором мы должны выбрать таблицу Region. Несколько атрибут для измерения Region можно увидеть в правой части окна, как это показано на Иллюстрации 15, и, как и при выборе таблицы фактов, Вы можете убедиться в правильности сделанного выбора, просматривая реальные данные после нажатия кнопки Browse Data....
![]() Иллюстрация 15: Выбор таблицы Region в качестве первого измерения Нажмите кнопку Next после выбора первого измерения, и тогда мастер спросит у Вас, какой уровень у выбранного измерения, если такие уровни существуют. Как Вы видите, возможно несколько иерархий уровней, которые могли бы представлять интерес для измерения Region. Мы выберем пять уровней для нашего измерения: sales_country, sales_region, sales_state_province, sales_district и sales_city, и ранжируем их в таком порядке, что бы реализовать логическую иерархию, удобную для формирования отчётности, как это показано ниже на Иллюстрации 16.
![]() Иллюстрация 16: Выбор уровней для измерения: sales_country, sales_region, sales_state_province, sales_district, и sales_city Ранжирование в логическую иерархию может быть не простой задачей, т.к. для этого необходимо хорошее знание данных. В нашем случае, Вы можете быть не уверены в том, какой уровень выше, районы или области (в тестовых данных есть районы, которые меньше областей, и они должны быть подмножеством последних). На выручку придёт мастер, который предупредит нас, что такая ранжировка уровней не является самой логичной, и выдаст рекомендации по более удачному ранжированию, как это показано на Иллюстрации 17. Давайте последуем этому совету, и откажемся от пересортировки, нажав кнопку Yes. После чего, мастер выполнить ранжирование уровней, которое теперь кажется наиболее логичным (меньшие внутри больших, и от вершины вниз).
![]() Иллюстрация 17: Сообщение Dimension Wizard о потенциальных логических ошибках После возвращения в окно Dimension Selection, нажмите Next, что бы перейти в диалоговое окно Specification of Member Keys (см. Иллюстрацию 18), в котором выполняются действия, выходящие за рамки этой статьи о создании простого куба. Перейдя в окно Advanced Options (Иллюстрация 19), которое будет рассмотрено позже, мы выберем предложенные по умолчанию установки.
![]() Иллюстрация 18: Окно Specification of Member Keys
![]() Иллюстрация 19: Окно Advanced Options мастера Dimension Wizard На этом мы закончим работу с мастером Dimension Wizard, в котором мы довольно просто определили измерение "Region". Используйте значок "+", расположенный слева от верхнего уровня дерева измерений, чтобы раскрыть список имеющихся уровней и просмотреть их иерархию, которая будет создана (а заодно проверить текущий их дизайн), как это показано на Иллюстрации 20. Оставив остальные настройки в значения по умолчанию, нажмите кнопку Finish.
![]() Иллюстрация 20: Окно завершения работы мастера Dimension Wizard После этого, мы вернёмся в Cube Wizard, где Вы увидите, что Region появится в списке Cube Dimensions, что продемонстрировано на Иллюстрации 21.
![]() Иллюстрация 21: Список измерений в мастере Cube Wizard Создание измерения по схеме - снежинка: Несколько связанных таблиц измерений Так как по ключу product_id таблица фактов связана с несколькими таблицами измерений товаров, содержащих поля, по которым определяются соответствующие уровни иерархии измерений, мы сталкиваемся с необходимостью рассмотрения более сложной схемы измерений - снежинки. За исключением описания объединений таблиц, и некоторых дополнительных шагов мастера, Dimension Wizard поможет нам также просто и эффективно создавать более сложные схемы измерений, чем рассмотренная ранее схема - звезда. Для того, что бы смоделировать схему измерений - снежинка, в окне списка измерений мастера Cube Wizard нажмите New Dimension (там, где мы остановились в предыдущем примере). Потом, в окне Welcome Dimension Wizard, нажмите кнопку Next и в открывшемся окне Choose How You Want to Create the Dimension выберете схему Snowflake Schema, как это показано ниже, на Иллюстрации 22. Ознакомьтесь с дополнительной информацией об этой схеме в расположенной внизу области Description, и опять нажмите кнопку Next.
![]() Иллюстрация 22: Выбор схемы - снежинка Нужно выбрать таблицы product и product_class, как это показано на Иллюстрации 23, а затем нажмите Next, чтобы перейти к диалоговому окну Create and Edit Joins, в котором Вы увидите выбранные нами и реально существующие отношения между таблицами.
![]() Иллюстрация 23: Выбор product и product_class
![]() Иллюстрация 24: Окно Create and Edit Joins, где можно просматривать и редактировать связи между таблицами Объединение этих двух таблиц, которые мы выбрали, основано на связи по полю product_class_id, как видно на Иллюстрации 24. Соответствие типов данных и другие ограничения должны быть рассмотрены на этом шаге, иначе, Вы почти наверняка потом столкнётесь с проблемами, но в нашем простом случае, представленное на иллюстрации объединение вполне правомерно. Для получения подробной информации об удалении/создании новых объединений или о критериях построения правильных связей, обратитесь к разделу Analysis Services в MSSQL Server Reference Library. Нажмите кнопку Next, чтобы перейти к следующему шагу мастера. В следующем диалоговом окне Мы снова выбираем уровни для измерений, и если мы расположим уровни в не правильном порядке, будет выдано предупреждение. Как показано на Иллюстрация 25, Мы выбираем уровни от наиболее общих к более детальным, сверху вниз: product_category, product_subcategory и brand_name.
![]() Иллюстрация 25 Указав иерархию уровней, нажмите кнопку Next, и потом
пропустите не критичные для нас окна Specify Member Key
Columns и Advanced Options.
![]() Иллюстрация 26: Завершение создания измерения Product После нажатия кнопки Finish, Вы снова попадёте в диалоговое окно Cube Wizard (Иллюстрация 27), и мы видим, что теперь измерение Product также находиться в списке Cube Dimensions.
![]() Иллюстрация 27: Измерение Product в списке существующих измерений Теперь мы сосредоточимся на рассмотрении самых
распространённых измерений - измерений времени. Обычно автор
начинает добавление измерений именно с измерений времени,
поскольку они применимы практически к каждому кубу (время
важно практически во всех финансовых и других бизнес -
системах), и мы включим их в наш первый куб, рассмотрев
особенности их использования.
![]() Иллюстрация 28 В используемой нами для примеров базе данных FoodMart 2000 уже существует таблица для измерений времени, это: time_by_day. На практике часто измерение времени получается из столбца в таблице фактов, однако, они могут браться и из хранилища данных, как мы это видим в нашем примере, где для связи с таблицей фактов используется ключ time_id. Выбрав таблицу time_by_day, нажмите кнопку Next и перейдите к выбору типа измерения. В диалоговом окне Dimension Wizard, где осуществляется выбора типа измерения, необходимо указать столбец date/time из имеющихся в выбранной таблице, который подходит для наших целей. Если есть несколько таких столбцов, необходимо выбрать один из них, который будет использован, в нашем случае, для измерения дат. Поскольку в выбранной нами таблице к типам измерения времени относится только один столбец, он предлагается по умолчанию. Поэтому, Вам в этом окне достаточно только выбрать тип измерения Time dimension и оставить предлагаемую для дат колонку the_date, как это показано ниже (Иллюстрация 29).
![]() Иллюстрация 29: Окно Select the Dimension Type, выбор типа измерения - Time Dimension Нажав кнопку Next, вы перейдёте в окно Create the time dimension levels. Dimension Wizard предлагает несколько типовых вариантов иерархии дат, из которых мы можем выбрать такой, который позволит сократить время построения нашего первого куба. Кроме того, имеется возможность выбора начальных: дня, месяца и года, что особенно ценно при построении кубов для организаций, имеющих годовые бюджеты. Для простоты, нам подойдёт предлагаемое по умолчанию значение, и мы выберем бюджет на год, совпадающий с календарным годом (с первым января в качестве даты его начала). Это показано на Иллюстрации 30, представленной ниже.
![]() Иллюстрация 30: Окно Create the Time Dimension Levels Поскольку мастер не позволяет нам самостоятельно изменять уровни измерения дат, мы просто нажмём кнопку Next и перейдём в окно Advanced Options. Это окно тоже можно пропустить, сразу же нажав на кнопку Next. В должны попасть в последнее окно Finish the Dimension Wizard, в котором вписать имя нашего нового измерения: Time. Обратите внимание, что Мастер уже создал иерархию измерения по времени (год, квартал, месяц и день), и Вы можете развернуть для просмотра узлы этой иерархии в области Preview, как это показано на Иллюстрации 31.
![]() Иллюстрация 31 После нажатия кнопки Finish, Вы вернётесь в Cube Wizard, где увидите, что новое измерение добавлено в списке Cube Dimensions к уже имеющимся, созданным нами ранее измерениям, как это показано на Иллюстрации 32. Теперь мы достигли той стадии, когда наша простая модель имеет достаточно измерений для анализа средствами Cube Wizard. Мы определили типовой набор измерений, и мы указали в мастере, где можно найти значения или меры, которые мы хотим включить в куб (имеется ввиду таблица фактов, из которой берутся меры).
![]() Иллюстрация 32 Сохранение разработанной модели куба Нажмите в Cube Wizard кнопку Next, после чего Вы увидите представленное ниже сообщение (Иллюстрация 33).
![]() Иллюстрация 33. Поскольку нам нужно посчитать строки для модели куба, нажмите кнопку Yes, чтобы продолжить работу. Следующее сообщение, которое Вы увидите, сообщение об ошибке (Иллюстрация 34), которое неизбежно появится, если была выполнена вся последовательность шагов, которые автор представил в этой статье. Дело в том, что автор как раз и намеривался проиллюстрировать наиболее типичную у новичков ошибку связей при разработке архитектуры куба.
![]() Иллюстрация 34: Сообщение об ошибке. Проблемы возникают тогда, когда мастер пытается обработать
куб и не находит явных связей (одноимённых ключей у двух
таблиц) между указанным измерением и таблицей фактов. Тогда он
предупреждает о том, что необходимо определить связи вручную,
чтобы его работа могла быть продолжена. Мы так и поступим, но
вначале давайте сохраним результаты нашей работы.
![]() Иллюстрация 35: Диалоговое окно Finish Cube Wizard В окне Cube Editor мы можем добавить отсутствующие связи, о которых нас предупреждало сообщение об ошибках при сохранении куба (см. Иллюстрацию 34). Нам понадобится добавить отсутствующие связи между пока ещё не связанной ни с чем таблицей Region и таблицей фактов sales_fact_1998, которые показаны вместе с остальными на Иллюстрации 36.
![]() Иллюстрация 36: Окно Cube Editor - где мы добавляем необходимые связи Обычно добавить связи не сложно. Но для этого мы должны
иметь в обеих таблицах соответствующие друг другу ключи (тогда
это действительно будет просто), чтобы обеспечить необходимую
ассоциацию между связываемыми таблицами. Более детальное
рассмотрение показывает, что у таблиц sales_fact_1998 и Region
нет никаких общих ключей. Поэтому, мы должны будем соорудить
некий мостик или, проще говоря, промежуточную таблицу, чтобы
поддержать логическую ассоциацию.
![]() Иллюстрация 37: Добавление таблиц в куб Далее, закрываем окно Select Tables, которое показано на Иллюстрации 38 (его можно оставить открытым, если нужно добавить/создать несколько таблиц). После этого мы видим, что рядом с имевшимися таблицами появилась таблица Store (см. Иллюстрацию 39), с помощью которой мы обеспечим связь между sales_fact_1998 и Region (мастер автоматически распознал необходимую связь между Region и Store). Желательно всегда проверять правильность прорисованных мастером связей, но в нашем случае ассоциация region_id конечно же верна.
![]() Иллюстрация 38: Окно Select Tables
![]() Иллюстрация 39: Законченная схема связей с добавленной таблицей Store В довершении к добавлению промежуточной таблицы, мы должны
связать её с таблицей фактов sales_fact_1998. Для этого, нужно
определить наличие пары соответствующих ключей (это просто,
т.к. обе таблицы содержат поле store_id), потом выделить мышью
поле store_id в таблице Store и переместить указатель на поле
store_id в таблице sales_fact_1998, нажав на нём левую кнопку
мыши, после чего между таблицами будет протянута линия связи.
Если Вы случайно свяжете два неправильных поля, просто удалите
неверную связь, выделив её нажатием правой кнопки мыши и
выбрав пункт Remove из выпадающего меню. После выбора этого
пункта, схема вернётся к предыдущему состоянию. Проектирование хранилища и процессинг куба Analysis Services предлагает несколько вариантов хранилищ и агрегации данных для нашего первого куба: • Multidimensional OLAP (MOLAP) Завершив разработку структуры куба, мы должны выбрать один
из предлагаемых типов хранилища и указать условия агрегации,
или сделать предварительный расчёт для получения оптимального
соотношения производительности запросов и эффективности куба.
Далее, нам необходимо будет выполнить процессинг куба, в
процессе которого будет выполнена загрузка данных из
выбранного нами источника и будут сделаны все необходимые
вычисления, которые заложены в используемых кубом командах
агрегации.
![]() Иллюстрация 40: Welcome to the Design Storage Wizard После нажатия кнопки Next будет вызвано окно Select the Type of Data Storage, где присутствуют радио-кнопки для каждого из показанных ранее возможных режимов, а также их краткое описание (подробную информации по ним можно найти в Books Online и Reference Library). В качестве хранилища нам подойдёт значение по умолчанию - MOLAP, как это показано на Иллюстрации 41, и поэтому можно снова нажать кнопку Next.
![]() Иллюстрация 41: Диалоговое окно Select the Type of Data Storage Следующим окном будет Set Aggregation Options, где мы должны указать Analysis Services обеспечить производительность работы с кубом на уровне 65% от максимально возможной, без учёта занимаемого кубом дискового пространства. Для этого нужно выбрать радио-кнопку Performance Gain Reaches и ввести число "65" в качестве процента от максимальной производительности, как это показано ниже на Иллюстрации 42. Как Вы можете видеть на следующей иллюстрации, это окно может помочь найти компромиссное решение между занимаемым кубом дисковым пространством и производительностью исполнения запросов к кубу.
![]() Иллюстрация 42: Диалоговое окно Set Aggregation Options После того, как Вы выберете наиболее подходящие для Вас параметры хранилища куба, нужно нажать кнопку Start и наблюдать процесс процессинга куба, как будет изменятся его размер и соответствующая ему производительность. Как Вы сможете увидеть, чем выше производительность, тем больше занимаемое кубом дисковое пространство. Изображение возможного графика распределения (который может отличаться от Вашего из-за разной информационной и аппаратной конфигурации системы) показано ниже на Иллюстрации 43.
![]() Иллюстрация 43. Далее, нажмите кнопку Next и Вы попадёте диалоговое окно Finish the Storage Design Wizard. В ответ на вопрос этого окна What do you want to do?, нужно отметить радио-кнопку Process Now, как это показано на Иллюстрации 44. Следующим шагом будет выполняться процессинг куба или его сохранение (если Вы решите запустить процессинг позже или собираетесь вернуться к разработке куба для внесения каких - либо изменений). Мы же выберем Process Now, и нажимаем кнопку Finish.
![]() Иллюстрация 44: Диалоговое окно Finish the Storage Design Wizard Окно Process, которое вы увидите следующим, позволяет
контролировать процессинг куба по всем его стадиям, процессам
и статистике работы, выводимой в нижней части окна. Когда
процессинг закончится, Вы должны увидеть в нижней строке
сообщение "Processing completed successfully", как это
показано на Иллюстрации 45.
![]() Иллюстрация 45: Ход процессинга куба После завершения процессинга, накопленные в кубе данные
становятся доступны для анализа. Просматривать данные можно
разными способами, но мы сейчас сосредоточимся на методе
"slice and dice" и будем использовать drill-down (погружение),
используя для этого Cube Browser. Существует много
инструментов, пригодных для этих же целей и позволяющих
работать с аналитическими данным, но Cube Browser нам
интересен тем, что поставляется вместе с Analysis Services, и,
являясь простым средством навигации, избавит Вас от
необходимости использования дополнительного программного
обеспечения.
![]() Иллюстрация 46: Cube Browser, первое окно. Вы можете изменить состав рассматриваемых в табличном виде измерений, перетаскивая их мышкой между верхним окном (дополнительных измерений) и нижней таблицей. Для этого, наведите, например, указатель мыши на измерение Region (которое сейчас должно быть в верхней части окна) и перетащите его в строку перед Product Category. Когда вы будете перемещать измерение, оно будет представляться в виде изображающей иерархию пиктограммы, видоизменяющейся по мере её перемещениями над представленными в табличном виде измерениями. Вам нужно наблюдать за появлением указателя в виде стрелки, который будет показывать текущее местоположение добавляемого измерения в существующей таблице, в нашем случае, оно должно расположиться над Region. Попробуйте самостоятельно переместить измерения так, что бы получился представленный на Иллюстрации 47 результат. Измерение Product должно заменить Region. Вы увидите агрегат Store Sales для каждой страны, а также связанные со странами Store Costs и Unit Sales. Обратите внимание, что расположенное Вами сверху измерение времени Time установлено в значение "All Time", из-за чего представленные в таблице меры относятся ко всей иерархии времён, заданных в дизайне нашего куба. Используя для начала обзора заданные по умолчанию значения измерений, установленные на самый высокий уровень итогов, мы можем всегда определить относительное местоположение каждого значения таблицы (перспектив куба) по имени колонки таблицы, расположенному в заголовке. Сделанные Вами настройки представления данных куба, при выходе из Cube Browser будут сохранены, т.ч. вы всегда можете вернуться к тому представлению, на котором остановились в прошлый раз.
![]() Иллюстрация 47: Cube Browser Далее, если нужно увидеть состав мер Sales и Unit в перспективе Product, т.е. развернуть таблицу на 90 градусов, просто перетащите мышью всю (изображаемую в виде кнопки) Product Category из левой колонки в область заголовка таблицы. При этом все Store-измерения автоматически переместятся в левую колонку, как это показано на Иллюстрации 48. Также обратите внимание, что столбец All Products остается после перемещения по-прежнему итоговым.
![]() Иллюстрация 48 Для того, что бы отфильтровать данные по времени, нужно просто щёлкнуть мышью по полю справа от измерения Time и развернуть обозначенную значками иерархию вниз, до третьего квартала 1998 года, как это показано на Иллюстрации 49. Если выбрать значок Quarter 3, то мы увидим, что это значение будет теперь отображаться вместо All Time. Кроме того, после наложения фильтра видно, что значения мер в таблице стали другими, как это показано на Иллюстрации 50.
![]() Иллюстрация 49: Выбор третьего квартала 1998 года.
![]() Иллюстрация 50 Теперь давайте кратко рассмотрим операцию drill down, позволяющую перейти на более низкий уровень значений, которые являются агрегацией составляющих их величин. Для этого нужно просто дважды щёлкнуть мышкой по ячейке Product Category (как Вы видите, слева в этой ячейке изображён знак "+", который и указывает на возможность выполнения операции drill down), и Вы увидите, что drill down открыл ещё один уровень - Product Subcategory, изменив набор мер в таблице, добавив деление на подкатегории (см. Иллюстрацию 51).
![]() Иллюстрация 51 Для того, что бы выполнить обратную операцию drill up,
нужно просто повторно дважды щёлкнуть по ячейке Product
Category. Обратите внимание также на то, что наличие ячеек
категорий и подкатегорий очень похоже на разбиение измерений,
которое мы рассматривали ранее, что помогает при навигации
чётко представлять где мы находимся в иерархии drill
down. Приглашаем Вас принять участие в обсуждении OLAP технологий и проблем реализации конкретных аналитических задач на форуме сайта SQL.RU: OLAP и DWH |
Перевод Александра Гладченко 2004г. |