Основные понятия в MDX (Analysis Services)

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

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

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

Сводная таблица с подчеркнутыми мерами и измерениями

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

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

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

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

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

Каждый атрибут имеет коллекцию значений данных или элементов, связанных с ним. В нашем примере члены атрибута Country Group — Европа, Северная Америка и Тихоокеанский регион. Члены относятся к фактическим значениям данных, принадлежащим атрибуту.

Замечание

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

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

Список полей сводной таблицы

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

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

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

  • Общий показатель по всем группам стран и датам составляет 80 450 596,98 долл. США.

  • Показатель (Все) для CY2008 составляет 16 038 062,60 $

  • Член (Все) для Тихого океана составляет $ 1594,335,38

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

Сводная таблица со всеми членами, вызываемыми

Разверните иерархию, и в конечном итоге вы достигнете самого низкого уровня. Это называется конечным элементом. Листовой элемент является членом иерархии без дочерних элементов. В этом примере юго-запад является листовым элементом.

Сводная таблица с листовым элементом, вызывающим dout

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

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

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

  • Листовой уровень, содержащий каждый отдельный элемент атрибута, при этом каждый элемент этого уровня также известен как листовой элемент.

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

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

Замечание

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

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

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

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

Сводная таблица с сбалансированной иерархией, вызываемая

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

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

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

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

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

Сводная таблица с разреженной иерархией выделена

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

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

Неупорядоченные иерархии являются проблемой для разработчиков бизнес-аналитики, если клиентское приложение не обрабатывает неупорядоченные иерархии элегантно. В модели служб Analysis Services можно создать иерархию родитель-потомок, которая явно определяет связь между многоуровневыми данными, устраняя какую-либо неоднозначность в том, как один уровень связан со следующим. Дополнительные сведения см. в измерениях Parent-Child.

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

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

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

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

Чтобы задать атрибут детализации, используйте вкладку "Использование измерений" в конструкторе кубов в SQL Server Data Tools. В образце модели AdventureWorks ключевой атрибут измерения Date — это ключ Date. Для заказов на продажу атрибут детализации эквивалентен ключевому атрибуту. Для целевых показателей продаж уровень детализации установлен как ежеквартальный, поэтому атрибут детализации задан как Календарный квартал.

Модель, показывающая атрибут детализации

Замечание

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

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

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

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

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

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

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

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

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

Число отдельных данных — это особый тип меры, используемой для элементов данных, которые должны учитываться только один раз. Пример модели AdventureWorks включает меры с подсчётом уникальных значений для интернет-заказов, заказов торговых посредников и заказов на покупку.

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

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

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

Дальнейшие шаги

Теперь, когда у вас есть понимание важных понятий и терминологии, вы можете продолжить работу с этими дополнительными разделами, которые подробно объясняют основные понятия в службах Analysis Services:

См. также

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