SQLShack

Recuperar información de una base de datos tabular es fácil, ¡solo tiene que consultarla con algunas funciones básicas de DAX! En este artículo, aprenderemos a consultar un modelo tabular con algunas de las expresiones MDX, examinar los resultados de las consultas DAX y analizar los datos de las tablas.

Requisitos

Los requisitos previos para realizar consultas con MDX son SQL Server Management Studio 2014 o superior con una instancia tabular SSAS instalada y una base de datos de modelos tabulares SSAS implementada.

Preparación del entorno

La consulta de una base de datos de modelos tabulares de SSAS con MDX se realiza en SQL Server Management Studio, en la ventana de consulta MDX.

Descripción general de Expresiones multidimensionales (MDX)

MDX es un lenguaje de expresiones que puede consultar y analizar datos multidimensionales en cubos OLAP (como bases de datos de modelos multidimensionales SSAS, por ejemplo). Aunque está diseñado principalmente para consultar una base de datos de modelos multidimensionales, también puede consultar una base de datos de modelos tabulares. Por otro lado, las funciones DAX no pueden consultar bases de datos de modelos multidimensionales, porque las expresiones de consulta DAX son específicas de bases de datos de modelos tabulares.

Estructuralmente, MDX incorpora sintaxis especificada por XMLA. Dado que es similar a T-SQL, hay presentes algunas sentencias DDL, que pueden administrar y organizar construcciones de datos multidimensionales. Esto se aplica únicamente a las bases de datos de modelos multidimensionales de los SSAS.

En cuanto a la complejidad, los principales tipos de expresiones MDX son: constante (numérica, cadena, etc.), escalar y orientado a objetos. Estos tipos se combinan en expresiones complejas que se corresponden con sentencias y funciones MDX.

Cuando se habla de consultar una base de datos de modelos tabulares de SSAS, las expresiones de este artículo se combinan de tipo escalar/constante, como expresiones cúbicas simples. Estas expresiones solo recuperan datos de un cubo tabular, muestran los resultados en columnas, ordenan los datos y los preparan para un análisis posterior.

Consultar la base de datos de modelos tabulares de SSAS con MDX

Al principio de la mayoría de las consultas MDX está la instrucción SELECT, seguida de una instrucción FROM. Es muy similar a T-SQL (como opuesto al Evaluar declaración en DAX):

1
2
3

seleccione una de

Esta consulta es el más sencillo, y se devuelve el valor 1 («true»). Significa que la base de datos tabular AW está presente.

Al seleccionar el nombre del producto de la tabla de la tabla de productos, la instrucción SELECT en T-SQL se ve así:

1
2
3

SELECT dbo.ProductName DE Producto

La correspondiente declaración escrita en MDX, sería, lógicamente:

1
2
3
4
5

seleccione
{..}
desde

Observe las llaves {}, que son los operadores como el paréntesis en DAX. Encierran las instrucciones y permiten añadir complejidad a la escritura de consultas. Las consultas MDX no distinguen entre mayúsculas y minúsculas, como las consultas DAX.

Esta consulta recuperaría la columna de Nombre de producto y la tabla de productos del cubo tabular AW, pero en lugar de mostrar la columna individual, genera un error de ejecución:

La razón principal está en el tipo del modelo de base de datos y la sintaxis: Las bases de datos de modelos multidimensionales y tabulares tienen dimensiones, como concepto crucial, pero MDX en su sintaxis reconoce columnas, filas y otros elementos (específicos de las bases de datos multidimensionales) como ejes en la consulta, imagínelos como los ejes x, y, z en un modelo de cubo 3D.

Al consultar una base de datos de modelos tabulares de SSAS, MDX debe reconocer al menos dos ejes en ellos: columnas y filas, para mostrar los datos correctamente:

1
2
3
4
5
6

seleccione
{..} en las columnas,
{..} en filas
desde

Ahora, establecemos los ejes en la consulta, y su resultado se muestra:

Como se puede ver, todos los valores de la columna Nombre del producto se muestran en las columnas del resultado, y las filas muestran los años correspondientes (en la columna Año Fiscal) y el número de artículos (en este caso, piezas de bicicleta). Por lo tanto, en lugar de tres ejes en la consulta MDX, al consultar una base de datos de modelos tabulares SSAS, solo dos ejes son suficientes para recuperar datos.

Este ejemplo consulta la misma tabla dentro de ambos ejes:

1
2
3
4
5
6

seleccione
{..} en las columnas,
{..} en filas
desde

El resultado de la consulta muestra:

El valor » 1 «significa» verdadero «en este caso, y el valor» (nulo) » significa que no hay datos relacionados dentro de la columna de Costo estándar.

  1. Ver un valor particular (elemento) de una columna especificada y una función NO VACÍA

    Con MDX, es posible ver el valor único de la columna en la base de datos de modelos tabulares:

    1
    2
    3
    4
    5

    seleccione
    {{..}.Item(53)} on 0
    desde

    En este ejemplo, el resultado muestra el elemento 53 (seleccionado aleatoriamente) de la columna Nombre del modelo. Observe el eje definido «en 0″ – en lugar de definir» columnas «(veremos en más ejemplos) o» filas», ese valor único se coloca en el comienzo inicial de la vista tabular del resultado de la consulta.

    Con inclusión de la función NO VACÍA, valor calculado único de la medida en particular (Ventas totales de Internet) muestra:

    1
    2
    3
    4
    5
    6

    seleccione
    no vacío
    {.} en columnas
    DE

  2. Función de tupla

    La tupla es un conjunto de datos especificado, una combinación de dos o más miembros de dimensión (en este caso, dos valores de la columna Año).

    1
    2
    3
    4
    5

    seleccione {.. : ..} en filas,
    {.} en columnas
    de

    Observe los valores especificados de la columna Año que hace el intervalo de años y los valores correspondientes del Margen Total de Internet en el resultado de la consulta.

  3. Expresión SECUNDARIA y MIEMBRO

    Esta expresión muestra el conjunto de datos que están relacionados con columnas o medidas especificadas. Por lo general, este conjunto de valores se presenta como hijos o miembros, y está relacionado con la jerarquía. Se ordenan jerárquicamente en el resultado de la consulta.

    1
    2
    3
    4
    5

    seleccione . EN COLUMNAS,
    ..NIÑOS EN FILAS
    DE

    En este caso, la medida de la Carga Total de Internet se basa en el cálculo con la columna de Carga, y por lo tanto, se pueden combinar.

    Observe que las llaves no están presentes en la consulta, pero la consulta sigue siendo válida sin ellas.

    Para mostrar sólo los valores de una columna deseada con los NIÑOS de expresión, en correspondencia con un no relacionados con la columna, utilice esta consulta:

    1
    2
    3
    4
    5
    6

    seleccione
    {..} on 0,
    {..niños} en 1
    DESDE

    Nota: En esta expresión, en 0 significa en columnas, y en 1 significa en eje de filas.

    Aquí es un ejemplo más de usar la expresión de MIEMBRO

    1
    2
    3
    4
    5

    Seleccione . en Columnas,
    ..barras en filas
    Desde

  4. Cláusula WHERE

    La adición de la cláusula WHERE es la única forma de filtrar datos específicos de una tabla, y es similar a la cláusula WHERE de T-SQL:

    1
    2
    3
    4
    5
    6
    7

    seleccione
    {..} en las columnas,
    {..} en filas
    de
    donde {..}

    El valor de la columna Nombre de Región del país, «Francia», está relacionado con la columna Ciudad en la tabla Geografía y la consulta incluida en ciudades de Francia de solo resultados.

    La instrucción WHERE es en realidad el eje de la cortadora, que agrega una dimensión adicional tanto en bases de datos de modelos multidimensionales como tabulares.

  5. Expresión de CASO

    Esta expresión es una comparación basada en el orden lógico de los elementos, que devuelve un resultado de consulta.

    En este ejemplo, cree una nueva medida llamada Resumen de la Cantidad de ventas correspondiente a un rango de valores especificado de la medida de Ventas totales de Internet:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15

    con los estados . como caso
    .
    cuando 69712.49 luego ‘Genial’
    cuando 1045.6 luego ‘Malo’
    else ‘(normal)’
    end
    select
    {.
    , .
    } en las columnas
    ,{..miembros} en filas
    desde

Espero que hayan disfrutado de este artículo y estén felices de consultar una base de datos de modelos tabulares de SSAS con MDX.

  • Uso del Cubo y Subcubo Expresiones
  • MDX Lenguaje de Referencia (MDX)
  • Consulta MDX Fundamentos (Analysis Services)

  • Autor
  • mensajes Recientes
Daniel Tikvicki
Daniel es un bibliotecario, quien corrió en un vórtice del mundo, donde está levitando y aprender constantemente. Le gustan los libros, simplemente todas las formas de expresión artística (ser músico/poeta), y es editor clandestino (fanzines y música experimental). Además, los puntos de interés incluyen teología, mitología y pseudociencia.
Daniel trabaja actualmente para ApexSQL LLC como ingeniero de ventas de Software, donde se especializa en el entorno de BI.

Daniel Tikvicki
Últimos mensajes de Daniel Tikvicki (ver todos)
  • Cómo monitorear la base de datos tempdb de SQL Server-6 de julio de 2017
  • Cómo monitorear el tamaño total de los índices de SQL Server-12 de junio de 2017
  • Cómo configurar y usar conexiones cifradas de SQL Server-Mayo 8, 2017

Write a Comment

Tu dirección de correo electrónico no será publicada.