Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:
SQL Server Analysis Services
Azure Analysis Services
Fabric/Power BI Premium
В этой статье описывается, как Power BI использует запросы DAX (выражения анализа данных) для отчета о многомерных моделях в службах SQL Server Analysis Services.
Исторически в приложениях для отчетности используется MDX (Multidimensional Expressions) в качестве языка запросов к многомерным базам данных. MDX оптимизирован для типичных визуальных шаблонов, таких как сводные таблицы в Excel и другие приложения для отчетности, ориентированные на многомерную бизнес-семантику. Начиная с SQL Server 2012 с пакетом обновления 1 (SP1), службы Analysis Services поддерживают использование DAX и MDX для многомерных и табличных моделей. Однако DAX изначально был разработан для табличных моделей данных. Хотя DAX считается проще использовать, он также более ориентирован на более простые визуализации данных, такие как таблицы, диаграммы и карты в отчетах и панелях мониторинга. Power BI использует DAX для запроса табличных и многомерных моделей.
Так как DAX в основном предназначен для табличных моделей, существуют некоторые интересные и полезные сопоставления и ограничения, которые необходимо понимать при использовании DAX для многомерных моделей.
Compatibility
Power BI использует DAX для запросов к многомерным моделям служб Analysis Services, начиная с SQL Server 2016 в редакциях Enterprise или Standard и более поздних версий. Выпуски SQL Server 2012 и SQL Server 2014 Enterprise или Business Intelligence также поддерживаются, однако эти версии теперь не поддерживаются.
Функции
DAX не является подмножеством MDX. DAX изначально был разработан так же, как язык формул Excel. В табличных моделях DAX используется для реляционного хранилища данных, состоящего из таблиц и связей. DAX также используется для создания пользовательских измерений, вычисляемых столбцов и правил безопасности на уровне строк.
Помимо языка вычислений, DAX также можно использовать для выполнения запросов. В этой статье описывается, как запросы DAX работают с многомерной моделью.
Взаимодействие между MDX и DAX
Выражения DAX поддерживаются только в табличных моделях. Нельзя использовать меры, созданные выражением DAX в многомерной модели. Запрос DAX к многомерной модели может ссылаться на меру или другое вычисление, определенное в этой модели, но эти вычисления необходимо создать с помощью языка многомерных выражений. Выражения DAX нельзя использовать там, где требуется выражение MDX, и наоборот, некоторые функции DAX, такие как PATH, совершенно не применимы в многомерном моделировании.
Синтаксис DAX
Синтаксис формул DAX очень похож на формулы Excel и использует сочетание функций, операторов и значений. Дополнительные сведения о синтаксисе отдельных функций см. в справочнике по функциям DAX.
Отображение многомерных объектов в табличные объекты
Службы Analysis Services предоставляют табличную модель в виде метаданных многомерной модели. Затем объекты в многомерных моделях представлены в виде табличных объектов в Power BI. Это сопоставление предоставляется Power BI с помощью набора строк схемы DISCOVER_CSDL_METADATA .
Сопоставление объектов
| Многомерный объект | Табличный объект |
|---|---|
| Куб | Модель |
| Измерение куба | Таблица |
| Атрибуты измерения (ключи, имя) | колонна |
| Группа мер | Таблица |
| Мера | Мера |
| Измерение вне группы измерений | В таблице под названием Меры |
| Отношение измерения между группой мер и измерением куба | Relationship |
| Перспектива | Перспектива |
| Ключевой показатель эффективности | Ключевой показатель эффективности |
| Иерархии пользователей или иерархии родитель-потомок | Hierarchy |
| Отображаемая папка | Отображаемая папка |
Меры, группы мер и ключевые показатели эффективности
Группы мер в многомерном кубе отображаются в списке полей Power BI в виде таблиц со значком калькулятора.
Меры в группе мер отображаются как меры. Если существуют вычисляемые меры, не имеющие связанной группы мер, они группируются в специальную таблицу с именем "Меры".
Чтобы упростить более сложные многомерные модели, авторы моделей могут определить набор мер или ключевых показателей эффективности в кубе, расположенных в папке отображения. Power BI может отображать отображаемые папки, а также метрики и ключевые показатели эффективности в них.
Меры и ключевые показатели эффективности в группе мер
Меры в качестве вариантов
Меры в многомерных моделях являются вариантами. Это означает, что меры не строго типизированы и могут иметь разные типы данных. Например, на рисунке ниже мера "Сумма " в таблице "Финансовые отчеты" по умолчанию является типом данных "Валюта", но также имеет строковое значение NA для промежуточных итогов статистических счетов, который является типом данных String. Power BI распознает определенные меры как варианты и показывает правильные значения и форматирование в различных визуализациях.
Мера как вариант
Неявные меры
Табличные модели предоставляют пользователям возможность создавать неявные меры, такие как количество, сумма или среднее значение полей. Для многомерных моделей, так как данные атрибута измерения хранятся иначе, запрос неявных мер может занять много времени. Из-за этого неявные меры против многомерных моделей недоступны в Power BI.
Измерения, атрибуты и иерархии
Измерения куба предоставляются в виде таблиц в табличных метаданных. В списке полей Power BI атрибуты измерения отображаются как столбцы в папках отображения. Атрибуты измерения, которые имеют свойство AttributeHierarchyEnabledравное False, например: атрибут Дата рождения в измерении Customer, или свойство AttributeHierarchyVisible, равное false, не будут отображаться в списке полей Power BI. Многоуровневые иерархии или иерархии пользователей; Например, "География клиентов" в измерении "Клиент" предоставляется в виде иерархий в списке полей Power BI. Скрытые неизвестные члены атрибута измерения отображаются в запросах DAX и в Power BI.
Измерение, атрибуты и иерархии в списке полей SQL Server Data Tools (SSDT) и Power BI
Тип атрибута измерения
Многомерные модели поддерживают связывание атрибутов измерения с определенными типами атрибутов измерения. На рисунке ниже показано измерение Geography, где атрибуты измерения Город, Провинция, Страна и Почтовый код связаны с географическими типами. Они предоставляются в табличных метаданных. Power BI распознает метаданные, позволяющие пользователям создавать визуализации карт. Это обозначается значком карты рядом со столбцами "Город", "Страна", "Почтовый индекс" и "Штат-Провинция" в таблице "География" в списке полей Power BI.
Географическое измерение в списке полей SSDT и Power BI
Вычисляемые элементы измерения
Многомерные модели поддерживают вычисляемые элементы для дочернего элемента All, который имеет единственный реальный элемент. Дополнительные ограничения при открытии этого типа вычисляемого элемента:
- Должен быть одним реальным элементом, если измерение имеет несколько атрибутов.
- Атрибут, содержащий вычисляемые члены, не может быть ключевым атрибутом измерения, если он не является единственным атрибутом.
- Атрибут, содержащий вычисляемые элементы, не может быть атрибутом родительского-дочернего элемента.
Вычисляемые члены иерархий пользователей не предоставляются в Power BI, однако пользователи по-прежнему могут подключаться к кубу, содержающим вычисляемые члены в иерархиях пользователей.
Члены по умолчанию
Многомерные модели поддерживают элементы по умолчанию для атрибутов измерения. Элемент по умолчанию используется службами Analysis Services при агрегации данных для запроса. Элемент по умолчанию атрибута измерения предоставляется как значение по умолчанию или фильтр для соответствующего столбца в табличных метаданных.
Power BI работает так же, как и сводные таблицы Excel при применении атрибутов. Когда пользователь добавляет столбец в визуализацию Power BI (таблица, матрица или диаграмма), содержащую значение по умолчанию, значение по умолчанию не будет применено, и отображаются все доступные значения. Если пользователь добавляет столбец в фильтры, применяется значение по умолчанию.
Безопасность аналитик
Многомерные модели поддерживают безопасность на уровне измерений и ячеек с помощью ролей. Пользователь, подключающийся к кубу через Power BI, проходит проверку подлинности и оценивается для соответствующих разрешений, определенных ролями, к которым принадлежит пользователь. При применении безопасности измерений соответствующие элементы измерения не отображаются пользователем в Power BI. Однако если у пользователя есть разрешение на безопасность ячеек, определенное, где определенные ячейки ограничены, то этот пользователь не может подключиться к кубу с помощью Power BI. В некоторых случаях пользователи могут видеть статистические данные, когда части этих данных вычисляются из защищенных данных.
Неугрегируемые атрибуты и иерархии
В многомерных моделях атрибуты измерения могут иметь свойство IsAggregatable со значением False. Это означает, что автор модели указал, что приложения отчетов не должны агрегировать данные по иерархиям (атрибутам или несколькими уровнями) при запросе данных. В Power BI этот атрибут измерения предоставляется в виде столбца, для которого промежуточные итоги недоступны. На следующем рисунке вы увидите пример неугрегируемой иерархии учетных записей. Высший уровень иерархии "Родитель-дочерний учетных записей" не является агрегируемым, в то время как другие уровни поддаются агрегированию. В матрице визуализации иерархии учетных записей (первые два уровня) вы увидите промежуточные итоги для уровня учетной записи 02 , но не для верхнего уровня уровня 01.
Неугрегируемая иерархия в Power BI
Изображения
Power BI предоставляет возможность отрисовки изображений. В многомерных моделях одним из способов отображения изображений в Power BI является предоставление столбцов, содержащих URL-адреса (единый указатель ресурсов) изображений. Службы Analysis Services поддерживают маркировку атрибутов измерений как тип ImageURL. Затем этот тип данных предоставляется Power BI в табличных метаданных. Затем Power BI может скачать и отобразить изображения, указанные в URL-адресах в визуализациях.
Тип атрибута измерения ImageURL в SSDT
Иерархии типа "родитель-дитя"
Многомерные модели поддерживают иерархии родительско-дочерних элементов, которые предоставляются в виде иерархии в табличных метаданных. Каждый уровень родительско-дочерней иерархии представлен в виде скрытого столбца. Ключевой атрибут иерархии родитель-потомок не отображается в табличных метаданных.
Иерархии родитель-потомок в списке полей SSDT и Power BI
Перспективы и переводы
Перспективы — это представления кубов, где видны только лишь отдельные измерения или группы метрик в клиентских инструментах. Можно указать имя перспективы как значение свойства строки подключения Cube. Например, в следующей строке подключения "Direct Sales" — это перспектива в многомерной модели.
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 модель (модель данных сущности) с помощью языка определения концептуальной схемы с аннотациями бизнес-аналитики (CSDLBI).
Многомерные метаданные представляются в виде пространства имен табличной модели в документе CSDLBI или csDL out, когда запрос DISCOVER_CSDL_METADATA отправляется в экземпляр служб Analysis Services.
Пример: запрос 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 имеет следующие ограничения:
| Имя | Обязательно | Description |
|---|---|---|
| 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 с CU5. Дополнительные сведения см. в статье SuperDAX для многомерных моделей.