DAX (lenguaje de consulta)

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 14 de julio de 2021; las comprobaciones requieren 2 ediciones .
DAX
Semántica formulaico, funcional , específico del dominio
clase de idioma lenguaje de consulta
Apareció en 2010
Autor Jeffrey Wang equipo de desarrollo
Desarrollador microsoft
Liberar Septiembre de 2018 (publicaciones mensuales) (2018)
sistema de tipos Dinámica
Implementaciones principales Escritorio de Microsoft Power BI , servicios de análisis de Microsoft , Microsoft Excel
sido influenciado Microsoft Excel
influenciado Microsoft Power BI , Servicios de análisis de Microsoft , Microsoft Excel
Licencia n / A
Plataforma x86-64, x86-32
sistema operativo Microsoft Windows

DAX ( English  Data Analysis eXpressions  - expresiones para el análisis de datos ) es un lenguaje de consulta funcional basado en fórmulas desarrollado y mantenido por Microsoft para construir expresiones y extraer datos que se encuentran en un modelo tabular  , un modelo de representación de datos ideológicamente similar a un modelo OLAP multidimensional . Una consulta o expresión DAX se parece a la sintaxis de las fórmulas de Excel , en las que se llaman ciertas funciones del lenguaje, pero, a diferencia de Excel, funciona con columnas completas de una tabla de datos a la vez o con una parte de estas columnas. A diferencia de Excel, el direccionamiento de datos en cualquier celda de una tabla de datos usando DAX es imposible, lo que acerca el lenguaje a SQL o MDX .

Es uno de los tres elementos clave del concepto de construcción de sistemas de BI según Microsoft, junto con las herramientas ETL Power Query y el  subsistema de visualización Power View . El uso de DAX está libre de regalías.

Sintaxis

Dado que los creadores de DAX se inspiraron en la sintaxis de la fórmula de Excel [1] , cualquier consulta DAX se puede representar como una cadena. Se ignoran los retornos de carro, los espacios y las tabulaciones entre los elementos de la consulta, y las consultas de varias líneas se usan solo para que el código sea más fácil de leer.

Un ejemplo de creación de una nueva medida (análoga a una nueva función en términos de lenguajes de programación), que devuelve la fecha de ayer:

Вчерашняя дата = TODAY () - 1

La implementación de PowerPivot para Excel de DAX usa ":=" como infijo de asignación en lugar de "=" en las definiciones de medida; El resto de la sintaxis permanece sin cambios. La consulta DAX para SSAS está precedida por un archivo EVALUATE. En otras implementaciones (por ejemplo, PowerPivot para Excel, Power BI), la palabra clave EVALUATE, así como otras palabras clave ( DEFINE, MEASURE, GROUP BYy ORDERsimilares) no se usan en la interfaz de usuario y se aplican automáticamente.

Composición funcional

El resultado de una consulta o expresión puede ser una tabla o un único valor escalar. Más de doscientas funciones de lenguaje incorporadas se dividen en los siguientes grupos:

Localización

La sintaxis del idioma está parcialmente localizada: los nombres de las funciones del idioma siempre se escriben en inglés ( ABS, AVERAGE, BLANK, NOW, TODAY, SUMy así sucesivamente), y el separador decimal y el separador de función dependen de la configuración regional del sistema operativo, por ejemplo, en la versión en inglés, un el punto se usa como separador decimal y la coma como separador de funciones (si hay más de una función en la solicitud), y en la localización rusa, se usa una coma por defecto para el separador decimal y un punto y coma ("; ”) se utiliza para separar funciones dentro de la misma solicitud o parámetros de función.

Rendimiento

Una característica del lenguaje es garantizar un alto rendimiento de las consultas de datos y centrarse en la computación residente ( es decir, computación  en memoria ), por lo que se logra la aceleración de la ejecución de consultas y es posible interactuar de forma interactiva con los elementos de los informes de BI . construido sobre estos datos, creando tableros con las funciones de carga interactiva de detalles ( drill-down ), interfaces de preguntas y respuestas y una serie de otras herramientas similares.

Historia

DAX no es un lenguaje de programación. DAX es principalmente un lenguaje de fórmulas, así como un lenguaje de consulta. Puede usar DAX para definir cálculos personalizados para columnas calculadas, medidas, tablas calculadas, grupos de cálculo, cadenas de formato personalizado y expresiones de filtro en seguridad basada en roles en modelos tabulares. El mismo motor de Analysis Services para modelos tabulares también se usa en Power BI y Power Pivot para Excel. Power BI también usa DAX para expresiones de formato condicional y otras propiedades dinámicas de componentes visuales. [3]

Al implementar la tecnología de almacenamiento de datos en columnas en memoria, que se utiliza en los "motores" xVelocity (vertiPaq), se requería un lenguaje de consulta que permitiera manipular los datos almacenados en columnas de datos tabulares (como en las dimensiones MDX). Por otro lado, el lenguaje tendría que ser sintácticamente similar al lenguaje de fórmulas de Excel, que en 2008-2009 era familiar para la gran mayoría de los usuarios empresariales involucrados en el análisis de datos. Sin embargo, la similitud de DAX con el lenguaje de fórmulas de Excel basado en inglés no localizado es más un truco de marketing que una necesidad real de consultas de una sola fila.

Dado que las consultas se realizaron en datos en memoria y no se requirió E/S , el nuevo lenguaje podría ignorar una serie de enfoques de optimización de consultas utilizados en MDX/SQL [4] , lo que da como resultado consultas compactas, un desarrollo más rápido y un rendimiento potencialmente mejor que MDX/SQL.

En 2010, DAX, junto con el modelo de datos tabulares, se integró en SSAS versión 2012 [5] y se lanzó un complemento para Microsoft Excel 2010 Professional, cuya versión se convirtió en Professional Plus.

El experimento fue reconocido como exitoso porque más tarde Microsoft incorporó soporte DAX en todos sus productos de la línea Microsoft Analysis Services de las ediciones Enterprise y Business Intelligence (SQL Server 2014, SQL Server 2016, SQL Server 2017) [6] y versiones extendidas de Microsoft Excel para la plataforma Windows (Excel 2013, Excel 2016), así como implementaciones en la nube en la plataforma Azure [7] [8] .

A principios de 2015, se lanzó el primer producto de la línea Power BI: Power BI Designer, que integró todas las tecnologías "Power" que se incluyeron en forma de complementos o se integraron con Excel: PowerPivot, Power Query, Power View. y mapas de energía. A finales de 2015, este producto integrado cambió su nombre a Power BI Desktop, desde entonces es libre de regalías para uso personal.

Notas

  1. Entrevista con el desarrollador de DAX (Jeffrey Wang) . Consultado el 24 de agosto de 2018. Archivado desde el original el 24 de agosto de 2018. (alemán/inglés)
  2. Tipos de funciones DAX . Consultado el 13 de octubre de 2013. Archivado desde el original el 15 de agosto de 2018.
  3. Alberto Ferrari. Patrones de Dax: la colección más completa de soluciones listas para usar en DAX para Power BI, Anaysis Services y Power Pivot . — 2ª ed. - Las Vegas (NV), copyright 2020. - 1 vol. (xviii-396 pág.) pág. - ISBN 978-1-7353652-0-6 , 1-7353652-0-3.
  4. Exploración de SQL. Servicio de Análisis Extremo (enlace descendente) . Consultado el 15 de agosto de 2018. Archivado desde el original el 15 de agosto de 2018. 
  5. Libros en línea de SQL Server 2012 . microsoft _ Consultado el 14 de agosto de 2018. Archivado desde el original el 14 de agosto de 2018.
  6. Funciones admitidas por diferentes ediciones de SQL Server 2014 (enlace no disponible) . Consultado el 14 de agosto de 2018. Archivado desde el original el 14 de agosto de 2018. 
  7. Crear un modelo en Azure Portal . microsoft _ Consultado el 3 de junio de 2018. Archivado desde el original el 15 de agosto de 2018.
  8. Cómo configurar un modelo de datos tabulares en Azure SSAS . Consultado el 1 de mayo de 2017. Archivado desde el original el 14 de agosto de 2018.

Literatura

Enlaces