DAX para modelos multidimensionales
Se aplica a: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium
En este artículo se describe cómo Power BI usa consultas DAX (expresiones de análisis de datos) para informar sobre modelos multidimensionales en SQL Server Analysis Services.
Históricamente, las aplicaciones de informes usan MDX (expresiones multidimensionales) como lenguaje de consulta en bases de datos multidimensionales. MDX está optimizado para patrones visuales comunes, como tablas dinámicas en Excel y otras aplicaciones de informes destinadas a la semántica empresarial multidimensional. A partir de SQL Server 2012 SP1, Analysis Services admite el uso de DAX y MDX en modelos multidimensionales y tabulares. Sin embargo, DAX se diseñó originalmente para modelos de datos tabulares. Aunque DAX se considera más fácil de usar, también se centra más en visualizaciones de datos más sencillas, como tablas, gráficos y mapas en informes y paneles. Power BI usa DAX para consultar modelos tabulares y multidimensionales.
Dado que DAX está diseñado principalmente para modelos tabulares, hay algunas asignaciones interesantes y útiles, y restricciones, que se deben entender al usar DAX en modelos multidimensionales.
Compatibilidad
Power BI usa DAX para consultar modelos multidimensionales de Analysis Services en SQL Server 2016 y versiones posteriores Enterprise o Standard. también se admiten las ediciones SQL Server 2012 y SQL Server 2014 Enterprise o Business Intelligence, pero estas versiones ya no son compatibles con el estándar.
Características
DAX no es un subconjunto de MDX. DAX se diseñó inicialmente para ser similar al lenguaje de fórmulas de Excel. En los modelos tabulares, DAX se usa en un almacén de datos relacionales formado por tablas y relaciones. DAX también se usa para crear medidas personalizadas, columnas calculadas y reglas de seguridad de nivel de fila.
Además de ser un lenguaje de cálculo, DAX también se puede usar para ejecutar consultas. En este artículo se describe cómo funcionan las consultas DAX en un modelo multidimensional.
Interacción entre MDX y DAX
Las expresiones DAX solo se admiten en modelos tabulares. No se pueden usar medidas creadas por una expresión DAX en un modelo multidimensional. Una consulta DAX a un modelo multidimensional puede hacer referencia a una medida u otro cálculo definido en ese modelo, pero esos cálculos se deben crear mediante el lenguaje MDX. Las expresiones DAX no se pueden usar cuando se requiere una expresión MDX y viceversa, y algunas funciones DAX, como PATH, no son aplicables en el modelado multidimensional en absoluto.
Sintaxis DAX
La sintaxis de fórmulas DAX es muy similar a la de las fórmulas de Excel y usa una combinación de funciones, operadores y valores. Para obtener más información sobre la sintaxis de las funciones individuales, consulte la referencia de la función DAX.
Asignación de objetos multidimensional o tabular
Analysis Services proporciona una representación de metadatos del modelo tabular de un modelo multidimensional. Los objetos de un modelo multidimensional se representan después como objetos tabulares en Power BI. Esta asignación se expone a Power BI mediante el conjunto de filas de esquema DISCOVER_CSDL_METADATA .
Asignación de objetos
Objeto multidimensional | Objeto tabular |
---|---|
Cubo | Modelo |
Dimensión de cubo | Tabla |
Atributos de dimensión (claves, nombre) | Columna |
Grupo de medida | Tabla |
Measure | Measure |
Medida sin grupo de medida | En una tabla denominada Medidas |
Relación de dimensión de cubo de grupo de medida | Relación |
Perspectiva | Perspectiva |
KPI | KPI |
Jerarquías de usuarios, elementos primarios y secundarios | Hierarchy |
Carpeta para mostrar | Carpeta para mostrar |
Medidas, grupos de medida y KPI
Los grupos de medida de un cubo multidimensional se muestran en la lista Campos de Power BI como tablas con un icono de calculadora.
Las medidas dentro de un grupo de medida aparecen como medidas. Si hay medidas calculadas que no tienen un grupo de medida asociado, se agrupan en una tabla especial denominada Medidas.
Para ayudar a simplificar modelos multidimensionales más complejos, los autores de los modelos pueden definir un conjunto de medidas o KPI en un cubo para que se encuentre dentro de una carpeta de presentación. Power BI puede mostrar carpetas de visualización y las medidas y KPI en ellas.
Medidas y KPI en un grupo de medida
Medidas como variantes
Las medidas en los modelos multidimensionales son variantes. Esto significa que las medidas no tienen establecimiento inflexible de tipos y pueden tener tipos de datos diferentes. Por ejemplo, en la imagen siguiente, la medida Cantidad de la tabla Informes financieros de forma predeterminada es tipo de datos Currency, pero también tiene un valor de cadena NA para el subtotal de Cuentas estadísticas, que es tipo de datos String. Power BI reconoce ciertas medidas como variantes y muestra los valores y el formato correctos en las distintas visualizaciones.
Medida como variante
Medidas implícitas
Los modelos tabulares proporcionan a los usuarios la posibilidad de crear medidas implícitas como recuento, suma o promedio en los campos. En los modelos multidimensionales, dado que los datos de los atributos de dimensión se almacenan de forma diferente, la consulta de medidas implícitas puede tardar mucho. Por este motivo, las medidas implícitas con respecto a los modelos multidimensionales no están disponibles en Power BI.
Dimensiones, atributos y jerarquías
Las dimensiones de cubo se exponen como tablas en los metadatos tabulares. En la lista Campos de Power BI, los atributos de dimensión se muestran como columnas dentro de las carpetas para mostrar. Atributos de dimensión que tienen la propiedad AttributeHierarchyEnabled establecida en False; por ejemplo: El atributo Fecha de nacimiento de la dimensión Customer o la propiedad AttributeHierarchyVisible establecida en false no aparecerán en la lista Campos de Power BI. Jerarquías de varios niveles o jerarquías de usuario; por ejemplo, Customer Geography en la dimensión Customer, se exponen como jerarquías en la lista Campos de Power BI. UnknownMembers ocultos de un atributo de dimensión se exponen en consultas DAX y en Power BI.
Dimensión, atributos y jerarquías en SQL Server Data Tools (SSDT) y lista de campos de Power BI
Tipo de atributo de dimensión
Los modelos multidimensionales permiten asociar atributos de dimensión con tipos de atributos de dimensión específicos. En la imagen siguiente se muestra la dimensión Geography donde los atributos de dimensión City, State-Province, Country y Postal Code tienen tipos de geografía asociados. Se exponen en los metadatos tabulares. Power BI reconoce los metadatos que permiten a los usuarios crear visualizaciones de mapa. Esto se indica mediante el icono de mapa situado junto a las columnas City, Country, Postal Code y State-Province de la tabla Geography de la lista de campos de Power BI.
Dimensión de geografía en la lista de campos de SSDT y Power BI
Miembros calculados de dimensión
Los modelos multidimensionales admiten miembros calculados para elementos secundarios de All con un único miembro real. Las restricciones adicionales al exponer este tipo de miembro calculado son:
- Debe ser un solo miembro real cuando la dimensión tenga más de un atributo.
- Un atributo que contenga miembros calculados no puede ser el atributo clave de la dimensión a menos que sea el único.
- Un atributo que contenga los miembros calculados no puede ser un atributo primario-secundario.
Los miembros calculados de jerarquías de usuario no se exponen en Power BI; sin embargo, los usuarios todavía pueden conectarse a un cubo que contenga miembros calculados en jerarquías de usuario.
Miembros predeterminados
Los modelos multidimensionales admiten miembros predeterminados para los atributos de dimensión. El miembro predeterminado se usa en Analysis Services al agregar datos para una consulta. El miembro predeterminado de un atributo de dimensión se expone como valor predeterminado o filtro para la columna correspondiente en los metadatos tabulares.
Power BI se comporta igual que las tablas dinámicas de Excel cuando se aplican atributos. Cuando un usuario agrega una columna a una visualización de Power BI (tabla, matriz o gráfico) que contiene un valor predeterminado, no se aplicará el valor predeterminado y se mostrarán todos los valores disponibles. Si el usuario agrega la columna a Filtros, se aplica el valor predeterminado.
Seguridad de dimensión
Los modelos multidimensionales admiten la seguridad de celdas y dimensiones a través de roles. Un usuario que se conecta a un cubo mediante Power BI se autentica y evalúa para los permisos adecuados definidos por los roles a los que pertenece el usuario. Cuando se aplica la seguridad de dimensión, el usuario de Power BI no ve los miembros de dimensión respectivos. Sin embargo, si un usuario tiene un permiso de seguridad de celda definido donde determinadas celdas están restringidas, ese usuario no puede conectarse al cubo con Power BI. En algunos casos, los usuarios pueden agregar datos cuando partes de esos datos se calculan a partir de datos protegidos.
Atributos y jerarquías no agregables
En los modelos multidimensionales, los atributos de una dimensión pueden tener la propiedad IsAggregatable establecida en False. Esto significa que el autor del modelo ha especificado aplicaciones de informes no debe agregar los datos entre jerarquías (atributo o varios niveles) cuando consultan los datos. En Power BI, este atributo de dimensión se expone como una columna para la que los subtotales no están disponibles. En la imagen siguiente, verá un ejemplo de una jerarquía no agregable, Cuentas. El nivel superior de la jerarquía primario-secundario Accounts es no agregable mientras que otros niveles son agregables. En una visualización de matriz de la jerarquía Cuentas (primeros dos niveles), verá subtotales para el nivel de cuenta 02 , pero no para el nivel superior, nivel de cuenta 01.
Jerarquía no agregable en Power BI
Imágenes
Power BI proporciona la capacidad de representar imágenes. En los modelos multidimensionales, una de las formas en que puede proporcionar imágenes que se muestran en Power BI es exponer columnas que contengan direcciones URL (localizador uniforme de recursos) de las imágenes. Analysis Services admite el etiquetado de atributos de dimensión como tipo ImageURL. A continuación, este tipo de datos se proporciona a Power BI en los metadatos tabulares. Después, Power BI puede descargar y mostrar las imágenes especificadas en las direcciones URL dentro de las visualizaciones.
Tipo de atributo de dimensión ImageURL en SSDT
Jerarquías de elementos primarios y secundarios
Los modelos multidimensionales admiten jerarquías de elementos primarios y secundarios, que se exponen como una jerarquía en metadatos tabulares. Cada nivel de la jerarquía se expone como una columna oculta. El atributo clave de la dimensión primaria-secundaria no se expone en los metadatos tabulares.
Jerarquías de elementos primarios y secundarios en la lista de campos de SSDT y Power BI
Perspectivas y traducciones
Las perspectivas son vistas de cubos donde solo ciertas dimensiones o grupos de medida son visibles en las herramientas de cliente. Puede especificar un nombre de perspectiva como un valor para la propiedad Cube cadena de conexión. Por ejemplo, en el siguiente cadena de conexión, "Ventas directas" es una perspectiva en el modelo multidimensional:
Data Source=localhost;Initial Catalog=AdventureWorksDW-MD;Cube='Direct Sales'
Los cubos pueden tener metadatos y traducciones de datos especificadas para varios idiomas dentro del modelo. Para ver las traducciones (datos y metadatos), una aplicación puede agregar la propiedad opcional Identificador de configuración regional a la cadena de conexión, por ejemplo:
Data Source=localhost;Initial Catalog=AdventureWorksDW-MD;Cube='Adventure Works'; Locale Identifier=3084
Cuando Power BI Desktop se conecta a un modelo multidimensional, pasa automáticamente la configuración regional del usuario actual identificada al servidor. Sin embargo, esto no se produce para un informe publicado en el servicio Power BI.
Características no admitidas
Seguridad de nivel de celda : no se admite en los informes de Power BI.
Acciones : no se admiten en informes de Power BI ni en consultas DAX en un modelo multidimensional.
Conjuntos con nombre : en modelos multidimensionales, no se admiten en Power BI ni en consultas DAX en un modelo multidimensional.
Nota:
Las acciones no admitidas y los conjuntos con nombre no impiden que los usuarios se conecten y exploren modelos multidimensionales al usar Power BI.
Anotaciones CSDLBI
Los metadatos de cubos multidimensionales se exponen como un Entity Data Model (EDM) basado en un modelo conceptual según el Lenguaje de definición de esquemas conceptuales con anotaciones Business Intelligence (CSDLBI).
Los metadatos multidimensionales se representan como un espacio de nombres de modelo tabular en un documento CSDLBI o CSDL, cuando se envía una solicitud DISCOVER_CSDL_METADATA a la instancia de Analysis Services.
Ejemplo: solicitud de 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>
La solicitud DISCOVER_CSDL_METADATA tiene las siguientes restricciones:
Nombre | Obligatorio | Descripción |
---|---|---|
CATALOG_NAME | Sí | El nombre de la base de datos o catálogo. |
PERSPECTIVE_NAME | Sí, si el cubo contiene más de una perspectiva. Opcional si hay solo un cubo o una perspectiva predeterminada. | El nombre del cubo o de la perspectiva en la base de datos multidimensional. |
VERSION | Sí | Versión CSDL solicitada por el cliente. Las construcciones y características multidimensionales se admiten en la versión 2.0. |
El documento CSDL out devuelto representa el modelo como un espacio de nombres que contiene entidades, asociaciones y propiedades.
Para obtener más información sobre las anotaciones de CSDLBI, consulte Referencia técnica de anotaciones de BI en CSDL y [MS-CSDLBI]: Formato de archivo de definiciones de esquema conceptual con anotaciones de Business Intelligence.
SuperDAXMD
Con cada versión de SQL Server Analysis Services, las mejoras admiten funciones y funcionalidades de DAX nuevas y existentes. En SQL Server 2019 CU5, una clase de funciones DAX introducidas por primera vez para modelos tabulares conocidos informalmente como SuperDAX ahora están habilitados para modelos multidimensionales.
Aunque es posible que algunos patrones de consulta DAX existentes deban rediseñarse, las funciones SuperDAX proporcionan mejoras significativas en el rendimiento de las consultas. Los patrones de consulta DAX modernos que usan SuperDAX para modelos multidimensionales proporcionan un incentivo sólido para que las organizaciones que usan Power BI actualicen sus servidores de origen de datos multidimensionales a SQL Server 2019 con CU5. Para más información, consulte SuperDAX para modelos multidimensionales.
Consulte también
DAX reference (Referencia de DAX)