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


DAX для многомерных моделей

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

В этой статье описывается, как Power BI использует запросы DAX (выражения анализа данных) для создания отчетов по многомерным моделям в SQL Server Analysis Services.

Исторически приложения для создания отчетов использовали многомерные выражения (многомерные выражения) в качестве языка запросов к многомерным базам данных. Многомерные выражения оптимизированы для распространенных визуальных шаблонов, таких как сводные таблицы в Excel и другие приложения для создания отчетов, предназначенные для многомерной бизнес-семантики. Начиная с SQL Server 2012 с пакетом обновления 1 (SP1), службы Analysis Services поддерживают использование DAX и многомерных выражений для многомерных и табличных моделей. Однако DAX изначально был разработан для табличных моделей данных. Хотя DAX считается более простым в использовании, он также больше ориентирован на более простые визуализации данных, такие как таблицы, диаграммы и карты в отчетах и панелях мониторинга. Power BI использует DAX для запроса как табличных, так и многомерных моделей.

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

Совместимость

Power BI использует DAX для запроса многомерных моделей служб Analysis Services в SQL Server выпусках Enterprise или Standard 2016 и более поздних версий. SQL Server выпусков 2012 и SQL Server 2014 Enterprise или Business Intelligence также поддерживаются, однако эти версии теперь не поддерживаются.

Компоненты

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

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

Взаимодействие между многомерным выражением и DAX

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

Синтаксис DAX

Синтаксис формул DAX весьма схож с синтаксисом формул Excel, используется сочетание функций, операторов и значений. Дополнительные сведения о синтаксисе для отдельных функций см. в справочнике по функциям DAX.

Сопоставление многомерного объекта с табличным

Службы Analysis Services поддерживают представление метаданных табличной модели в многомерной модели. Затем объекты в многомерных моделях представляются в Power BI в виде табличных объектов. Это сопоставление предоставляется в Power BI с помощью набора строк схемы DISCOVER_CSDL_METADATA .

Сопоставление объектов

Многомерный объект Табличный объект
Куб Моделирование
Измерение куба Таблица
Атрибуты измерения (ключи, имя) Столбец
Группа мер Таблица
Мера Мера
Мера без группы мер В таблице с именем Measures
Отношение измерения куба группы мер Связь
Перспектива Перспектива
КПЭ КПЭ
Пользовательские иерархии и иерархии «родители-потомки» Иерархия
Папка отображения Папка отображения

Меры, группы мер и ключевые показатели эффективности

Группы мер в многомерном кубе отображаются в списке Поля Power BI в виде таблиц со значком калькулятора.

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

Для упрощения более сложных многомерных моделей авторы модели могут задавать множество мер или ключевые показатели эффективности в кубе, который должен быть расположен в папке отображения. Power BI может отображать папки отображения, а также меры и ключевые показатели эффективности в них.

Меры и ключевые показатели эффективности в группе мер

Меры и ключевые показатели эффективности в списке полей Power BI

Меры как данные variant

Меры в многомерных моделях представляют собой данные variant. Иными словами, меры не являются строго типизированными и могут иметь различные типы данных. Например, на приведенном ниже рисунке мера Amount в таблице "Финансовая отчетность" по умолчанию имеет тип данных Currency, но также имеет строковое значение НС для промежуточных итогов статистических счетов, то есть тип данных String. Power BI распознает определенные меры как варианты и отображает правильные значения и форматирование в различных визуализациях.

Мера как данные variant

Измерение как вариант

Неявные меры

Табличные модели предоставляют пользователям возможность создавать неявные меры, такие как количество, сумма или среднее по полям. Что касается многомерных моделей, то данные атрибутов измерений хранятся по-разному, поэтому выполнение запросов к неявным мерам может потребовать много времени. Из-за этого неявные меры для многомерных моделей недоступны в Power BI.

Измерения, атрибуты и иерархии

Доступ к измерениям куба предоставляется как к таблицам в табличных метаданных. В списке Поля Power BI атрибуты измерения отображаются в виде столбцов в папках отображения. Атрибуты измерения, для которых свойство AttributeHierarchyEnabled имеет значение False; Например, атрибут "Дата рождения" в измерении Customer или свойство AttributeHierarchyVisible, для значения false, не будут отображаться в списке Поля Power BI. Многоуровневые иерархии или пользовательские иерархии; Например, "География клиента" в измерении "Клиент" отображаются в виде иерархий в списке Полей Power BI. Скрытые элементы UnknownMembers атрибута измерения предоставляются в запросах DAX и в Power BI.

Измерение, атрибуты и иерархии в списке полей SQL Server Data Tools (SSDT) и Power BI

Измерения, атрибуты, иерархии в списке полей SSDT и Power BI

Тип атрибута измерения

Многомерные модели поддерживают связывание атрибутов измерений с конкретными типами атрибутов измерений. На рисунке ниже показано измерение География , где атрибуты измерения City, State-Province, Country и Postal Code имеют связанные с ними типы geography. Доступ к ним предоставляется в табличных метаданных. Power BI распознает метаданные, позволяющие пользователям создавать визуализации карт. На это указывает значок карты рядом со столбцами Город, Страна, Почтовый индекс и State-Province в таблице География в списке полей Power BI.

Измерение географии в списке полей SSDT и Power BI

Тип атрибута dimension в списке полей SSDT и Power BI

Вычисляемые элементы измерения

Многомерные модели поддерживают вычисляемые элементы для дочернего элемента All с одним реальным элементом. Ниже перечислены дополнительные ограничения при предоставлении доступа к вычисляемому элементу этого типа.

  • Должен быть единственным действительным элементом, если измерение имеет несколько атрибутов.
  • Атрибут, содержащий вычисляемые элементы, не может быть ключевым атрибутом измерения, если только он не является единственным атрибутом.
  • Атрибут, содержащий вычисляемые элементы, не может быть атрибутом типа «родители-потомки».

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

элементы по умолчанию;

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

При применении атрибутов Power BI ведет себя так же, как и сводные таблицы Excel. Когда пользователь добавляет столбец в визуализацию Power BI (таблицу, матрицу или диаграмму), содержащую значение по умолчанию, значение по умолчанию не применяется и отображаются все доступные значения. Если пользователь добавляет столбец в фильтр, применяется значение по умолчанию.

безопасность измерения;

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

Атрибуты или иерархии, не допускающие агрегирования

В многомерных моделях атрибутам измерения может быть присвоено значение False для свойства IsAggregatable. Это означает, что автор модели указал приложения отчетов не должны агрегировать данные в иерархиях (атрибуты или многоуровневые) при запросе данных. В Power BI этот атрибут измерения предоставляется в виде столбца, для которого недоступны промежуточные итоги. На следующем рисунке показан пример неагрегатной иерархии Accounts. Самый верхний уровень иерархии Accounts типа «родители-потомки» не допускает агрегирования, а другие уровни допускают. В матрице визуализации иерархии учетных записей (первые два уровня) отображаются промежуточные итоги для уровня учетной записи 02 , но не для самого верхнего уровня , уровня учетной записи 01.

Не агрегируемая иерархия в Power BI

Измерение как вариант

изображения;

Power BI предоставляет возможность отрисовки изображений. В многомерных моделях одним из способов предоставления изображений для отображения в Power BI является предоставление столбцов, содержащих URL-адреса (универсальный указатель ресурсов) изображений. Службы Analysis Services поддерживают добавление тегов к атрибутам измерения в качестве типа ImageURL. Затем этот тип данных предоставляется в Power BI в табличных метаданных. Power BI сможет скачать и отобразить изображения, указанные в URL-адресах в визуализациях.

Тип атрибута измерения ImageURL в SSDT

Измерение ImageURL в SSDT

Иерархии типа «родители-потомки»

Многомерные модели поддерживают иерархии "родители-потомки", которые предоставляются в виде иерархии в табличных метаданных. Доступ к каждому уровню иерархии типа «родители-потомки» обеспечивается как к скрытому столбцу. Доступ к ключевому атрибуту измерения типа «родители-потомки» не предоставляется в табличных метаданных.

Иерархии "родители-потомки" в списке полей SSDT и Power BI

Иерархии

Перспективы и переводы

Перспективы — это представления кубов, в которых только определенные измерения или группы мер являются видимыми в клиентских средствах. Имя перспективы можно указать в качестве значения для свойства Куб строка подключения. Например, в следующем строка подключения "Прямые продажи" — это перспектива в многомерной модели:

Data Source=localhost;Initial Catalog=AdventureWorksDW-MD;Cube='Direct Sales'

Кубы могут иметь метаданные и переводы данных, указанные для различных языков в модели. Чтобы просмотреть переводы (данные и метаданные), приложение может добавить необязательное свойство Locale Identifier в строка подключения, например:

Data Source=localhost;Initial Catalog=AdventureWorksDW-MD;Cube='Adventure Works'; Locale Identifier=3084

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

Неподдерживаемые функции

Безопасность на уровне ячеек — не поддерживается в отчетах Power BI.

Действия — не поддерживаются в отчетах Power BI или в запросах DAX к многомерной модели.

Именованные наборы — в многомерных моделях не поддерживаются в Power BI или в запросах DAX к многомерной модели.

Примечание

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

Заметки CSDLBI

Доступ к многомерным метаданным куба предоставляется как к концептуальной модели на основе модели EDM с применением языка определения концептуальных схем (CSDL) с заметками бизнес-аналитики (CSDLBI).

Многомерные метаданные представлены как пространство имен табличной модели в документе CSDLBI или CSDL, если в экземпляр служб Analysis Services передается запрос DISCOVER_CSDL_METADATA.

Пример: запрос DISCOVER_CSDL_METADATA

<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
   <Body>
      <Discover xmlns="urn:schemas-microsoft-com:xml-analysis">
         <RequestType>DISCOVER_CSDL_METADATA</RequestType>
         <Restrictions>
            <RestrictionList>
              <CATALOG_NAME>"catalogname"<CATALOG_NAME>
            </RestrictionList>
         </Restrictions>
         <Properties>
            <PropertyList>
            </PropertyList>
         </Properties>
      </Discover>
   </Body>
</Envelope>

Запрос DISCOVER_CSDL_METADATA имеет следующие ограничения.

Имя Обязательно Описание
CATALOG_NAME Да Имя каталога или базы данных.
PERSPECTIVE_NAME Да, если куб содержит несколько перспектив. Необязательное, если имеется только один куб или перспектива по умолчанию. Имя куба или имя перспективы в многомерной базе данных.
VERSION Да Версия языка CSDL, необходимая для клиента. Многомерные функции и конструкции поддерживаются в версии 2.0.

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

Дополнительные сведения о заметках CSDLBI см. в разделах Технический справочник по заметкам бизнес-аналитики в CSDL и [MS-CSDLBI]: Формат файла определений концептуальной схемы с заметками бизнес-аналитики.

SuperDAXMD

С каждым выпуском SQL Server Analysis Services улучшения поддерживают новые и существующие функции и возможности DAX. В SQL Server 2019 CU5 класс функций DAX, впервые представленный для табличных моделей, неофициально известный как SuperDAX, теперь включен для многомерных моделей.

Хотя некоторые существующие шаблоны запросов DAX может потребоваться изменить, функции SuperDAX обеспечивают значительное улучшение производительности запросов. Современные шаблоны запросов DAX с использованием SuperDAX для многомерных моделей позволяют организациям, использующим Power BI, обновить серверы многомерных источников данных до SQL Server 2019 с накопительным пакетом обновления 5 (CU5). Дополнительные сведения см. в статье SuperDAX для многомерных моделей.

См. также раздел

Справочник по DAX