Основные понятия многомерных выражений (службы Analysis Services)

Применимо к: SQL Server Analysis Services Azure Analysis Services Power BI Premium

Прежде чем приступить к использованию многомерных выражений (MDX) для выполнения запросов к многомерным данным или для создания выражений MDX в кубе, следует понять соответствующие принципы действия и термины.

Рекомендуется начать с уже известного примера обобщения данных, а затем посмотреть связь с MDX. Ниже приведена сводная таблица, созданная в Excel, заполненная данными из примера куба служб Analysis Services.

PivotTable with measures and dimensions called out

Меры и измерения

Куб служб Analysis Services состоит из мер, измерений и атрибутов измерений, которые присутствуют в сводной таблице.

Меры — это находящиеся в ячейках числовые значения данных, выраженные в виде сумм, количеств, процентов, минимальных значений, максимальных значений, средних значений. Значения мер являются динамичными, вычисляются в режиме реального времени согласно переходам пользователя по таблице и работе с ней. В этом примере в ячейках показаны суммы продаж торговых посредников, которые увеличиваются или уменьшаются в зависимости от того, разворачиваются оси или сворачиваются. Для любой комбинации даты (год, квартал, месяц или дата) и территории продаж (группа стран, страна, регион) можно получить значение суммы продаж торговых посредников, вычисленной для данной конкретной ситуации. Другие термины, которые являются синонимами мер, — это факты (в хранилищах данных) и вычисляемые поля (в табличной модели и модели данных Excel).

Измерения находятся на осях столбцов и строк сводной таблицы и определяют значение меры. Измерения аналогичны таблицам в реляционной модели данных. Распространенные примеры измерения — время, география, продукты, клиенты, сотрудники и т. д. В этом примере существует два измерения — «Территория продаж» в строках и «Дата» в верхней части. Однако вы можете легко перетаскивать другие измерения, связанные с компонентом «Продажи торгового посредника», такие как «Рекламные акции» или «Продукты», чтобы просматривать эффективность продаж по этим измерениям. Возможность изучения данных интересными способами зависит от создаваемых измерений и от того, будут ли они связаны с таблицами фактов в источнике данных.

Атрибуты измерения — это именованные элементы в измерении, схожие со столбцами в таблице. В этом примере используются следующие атрибуты измерения «Территория продаж»: «Группа стран» (Европа, Северная Америка, Тихоокеанский регион), «Страна» (Канада, США) и «Регион» (центральный, северо-восточный, северо-западный, юго-восточный и юго-западный).

Каждый атрибут имеет связанный с ним набор значений данных или элементов. В этом примере элементами атрибута «Группа стран» являются Европа, Северная Америка и Тихоокеанский регион. Элементы — это реальные значения данных, принадлежащие атрибуту.

Примечание

Одним из аспектов моделирования данных является оформление шаблонов и отношений, уже существующих в данных. При работе с данными, входящими в естественную иерархию, как в случае со странами-регионами-городами, это отношение можно оформить путем создания связи атрибутов. Связь атрибутов — это связь "один ко многим" между атрибутами, например связь между государством и городом - государство имеет много городов, но город принадлежит только одному штату. Создание связей атрибутов в модели ускоряет производительность запросов, поэтому рекомендуется создавать их, если данные поддерживают его. Связь атрибутов создается в конструкторе измерений в SQL Server Data Tools. См. Define Attribute Relationships.

В приложении Excel модель метаданных отображается в списке полей сводной таблицы. Сравните приведенную выше сводную таблицу с расположенным ниже списком полей. Обратите внимание, что список полей содержит компоненты «Территория продаж», «Группа», «Страна», «Регион» (метаданные), тогда как в сводной таблице находятся только элементы (значения данных). Зная, как выглядит значок, можно без труда соотнести части многомерной модели со сводной таблицей в Excel.

PivotTable field list

Иерархии атрибутов

Нам известно, что при разворачивании и сворачивании уровней по каждой оси значения в сводной таблице изменяются. Почему это происходит? Ответ следует искать в иерархии атрибутов.

Сверните все уровни и обратите внимание на общие итоги для каждого компонента «Группа стран» и «Календарный год». Это значение получено из объекта элемент (Все) в иерархии. Это вычисленное значение всех элементов в иерархии.

  • Значение элемента (Все) для всех групп стран и дат — $80 450 596,98

  • Значение элемента (Все) для 2008 календарного года — $16 038 062,60

  • Значение элемента (Все) для Тихоокеанского региона — $1 594 335,38

Подобные агрегаты предварительно вычисляются и заранее сохраняются. Именно поэтому службам Analysis Services свойственна высокая скорость обработки запросов.

PivotTable with all member called out

Разверните иерархию и вы увидите самый нижний уровень. Он называется конечным элементом. У конечного элемента в иерархии нет дочерних элементов. В этом примере юго-запад является конечным элементом.

PivotTable with leaf member calle dout

Все, что выше этого элемента, называется родительским элементом. США является родительским объектом юго-запада.

Компоненты иерархии атрибута

Все эти компоненты работают на формирование понятия иерархии атрибута. Иерархия атрибута представляет собой дерево элементов атрибута, содержащих следующие уровни.

  • Конечный уровень, содержащий все отдельные элементы атрибута, и все элементы конечного уровня ( конечные элементы).

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

  • Элемент (Все), содержащий совокупное значение всех дочерних атрибутов. При необходимости можно скрыть или отключить уровень (Все), если он не имеет смысла для данных. Например, хотя код продукта является числовым, не имеет смысла суммировать или усреднять или иным образом агрегировать все коды продуктов.

Примечание

Разработчики бизнес-аналитики часто задают свойства в иерархии атрибута, чтобы сформировать определенное поведение в клиентских приложениях или добиться максимальной производительности. Например, можно задать AttributeHierarchyEnabled=False для атрибутов, для которых элемент (All) не имеет смысла. С другой стороны, возможно, вы просто хотите скрыть элемент (Все), поэтому должны задать AttributeHierarchyVisible = False. Дополнительные сведения о свойствах см. в разделе Dimension Attribute Properties Reference .

В сводной таблице (по крайней мере в этом примере) расширение осей строк и столбцов позволяет просмотреть нижние уровни атрибутов. Расширяемая структура достигается за счет навигационных иерархий, создаваемых в модели. В примере модели AdventureWorks измерение «Территория продаж» имеет многоуровневую иерархию, которая начинается с атрибута «Группа стран», затем идет «Страна», а потом — «Регион».

Как видно, иерархии используются для предоставления пути навигации в сводной таблице или других объектов обобщения данных. Существует два основных типа: сбалансированная и несбалансированная.

Сбалансированные иерархии

PivotTable with balanced hierarchy called out

Сбалансированная иерархия — это иерархия, в которой между верхним уровнем и любым из конечных элементов существует одинаковое количество уровней.

Естественная иерархия — это иерархия, которая естественным образом развивается на основе базовых данных. Распространенным примером является "Страна-Регион-Область", "Год-Месяц-День" или "Категория-Подкатегория-Модель", где каждый подчиненный уровень предсказуемо происходит от родительского.

В многомерной модели большинство иерархии являются сбалансированными и многие из них — естественными.

Следует упомянуть еще один связанный термин моделирования, пользовательская иерархия, часто противопоставляемый иерархиям атрибута. Он просто означает иерархию, созданную разработчиком BI, в отличие от иерархий атрибутов, которые автоматически генерируются службами Analysis Services при определении атрибута.

Несбалансированные иерархии

PivotTable with ragged hierarchy called out

Неоднородная или несбалансированная иерархия — это иерархия, в которой между элементами верхнего уровня и конечными элементами существует разное количество уровней. Опять же, это иерархия, созданная разработчиком бизнес-аналитики, но в этом случае есть пробелы в данных.

В примере модели AdventureWorks «Территория продаж» демонстрирует неоднородную иерархию, поскольку США имеют дополнительный уровень («Регионы»), который не существует для других стран в этом примере.

Если клиентское приложение не может надлежащим образом обрабатывать неоднородные иерархии, у разработчиков BI возникают проблемы. В модели служб Analysis Services можно создать иерархию родительских и дочерних элементов , которая явно определяет связь между многоуровневыми данными, исключая любую неоднозначность, касающуюся отношения одного уровня к следующему. Дополнительные сведения см. в статье Измерения "родители-потомки" .

Ключевые атрибуты

Модели представляют собой наборы связанных объектов, которые для создания ассоциаций используют ключи и индексы. Модели служб Analysis Services не отличаются друг от друга. Для каждого измерения (напомним, что оно эквивалентно таблице в реляционной модели) существует ключевой атрибут. Ключевой атрибут используется в отношениях внешнего ключа к таблице фактов (группе мер). Все неключевые атрибуты в измерении связаны (прямую или косвенно) с ключевым атрибутом.

Часто, но не всегда, ключевой атрибут может быть атрибутом гранулярности. Гранулярность — это уровень детализации или точности в данных. Общий пример является самым быстрым способом понять все значения. Рассмотрим следующие значения данных. Для ежедневных продаж требуются значения дат, заданные для дня. Для квот достаточно указать квартал. Но если аналитические данные содержат результаты состязания из спортивного мероприятия, гран следует указать в миллисекундах. Гран будет представлять уровень точности в значениях данных.

Валюта является еще одним примером: финансовое приложение может отслеживать денежные значения до многих десятичных разрядов, в то время как сбор средств местного учебного заведения может нуждаться только в значениях до ближайшего доллара. Чтобы избежать хранения ненужных данных, очень важно понимать смысл грана. Исключение миллисекунд из отметки времени или копеек из суммы объема продаж может сэкономить пространство хранения и время обработки, если подобный уровень детализации не имеет отношения к выполняемому анализу.

Чтобы задать атрибут гранулярности, воспользуйтесь вкладкой «Использование измерений» в конструкторе кубов в SQL Server Data Tools. В примере модели AdventureWorks ключевым атрибутом измерения «Дата» является ключ «Дата». Для компонента «Заказы на продажу» атрибут гранулярности эквивалентен ключевому атрибуту. Для компонента «Цели продаж» уровнем гранулярности является квартал, поэтому атрибуту гранулярности задано значение «Календарный квартал».

Model showing the granularity attribute

Примечание

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

Область запроса (пространство куба)

Область запроса определяется границами, в пределах которых происходит выбор данных. Ее размеры могут варьироваться от куба целиком (куб является крупнейшим объектом запроса) до ячейки.

Пространство куба — это совокупность элементов иерархий атрибутов куба с мерами куба.

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

Ячейка — это пространство на пересечении элемента измерения мер и элемента из каждой иерархии атрибута в кубе.

Другие термины моделирования

Этот раздел представляет собой коллекцию концепций и терминов, которые не легко вписываются в другие разделы, но вам по-прежнему нужно знать о.

Вычисляемый элемент — это элемент измерения, который определяется и вычисляется во время обработки запроса. Вычисляемый элемент может быть определен в пользовательском запросе или в скрипте вычисления многомерного выражения и храниться на сервере. Вычисляемый элемент соответствует строкам в таблице измерения, в котором он определен.

Число различных объектов — это особый тип меры, используемый для элементов данных, которые следует подсчитывать только один раз. В примере модели AdventureWorks можно увидеть меры числа различных объектов для компонентов «Заказы через Интернет», «Заказы торгового посредника» и «Заказы на продажу».

Группы мер — это набор, состоящий из одной или нескольких мер. В основном эти группы определяются пользователями и используются для хранения связанных мер вместе. Меры числа различных объектов являются исключением. Они всегда размещаются в специальной группе мер, содержащей только явные меры. Вы не видите группу мер на иллюстрации примера сводной таблицы, но она отображается в списке полей сводной таблицы в виде именованной коллекции мер.

Измерение мер — это измерение, содержащее все меры в кубе. Он не предоставляется в многомерной модели, которую вы создаете в SQL Server Data Tools, но она существует точно так же. Поскольку оно содержит меры, все элементы измерения мер, как правило, объединены (обычно по сумме или по числу).

Измерения базы данных и измерения куба. В рамках модели можно определить отдельные измерения, которые затем включаются в любое количество кубов в этой модели. При добавлении измерения в куб он называется измерением куба. Само по себе в проекте в качестве автономного элемента в обозреватель объектов это называется измерением базы данных. Зачем проводить различие? Это связано с возможностью независимого задания свойств для каждого из типов измерений. В документации по продукту вы увидите оба термина, поэтому стоит понять, что они означают.

Next Steps

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

См. также:

Пространство куба
Кортежи
автоматическая проверка существования
Работа с элементами, кортежами и наборами (многомерные выражения)
Визуальные и невизуальные итоги
Основные принципы запросов многомерных выражений (службы Analysis Services)
Основные принципы создания скриптов многомерных выражений (службы Analysis Services)
Справка по языку многомерных выражений (многомерные выражения)
Справочник по многомерным выражениям