Novedades de SQL Server Analysis Services

Se aplica a: SQL Server 2016 y versiones posteriores Analysis Services Azure Analysis Services Power BI Premium

En este artículo se resumen las nuevas características y mejoras de las versiones más recientes de SQL Server Analysis Services (SSAS). Las nuevas características y mejoras son acumulativas.

SQL Server 2019 Analysis Services CU5

Más información y descarga: Actualización acumulativa 5 para SQL Server 2019.

SuperDAX para modelos multidimensionales (SuperDAXMD)

Con CU5, los clientes basados en DAX ahora pueden usar funciones de SuperDAX y patrones de consulta en modelos multidimensionales, lo que proporciona un rendimiento mejorado al consultar los datos del modelo. SuperDAX introdujo por primera vez optimizaciones de consultas DAX para modelos tabulares con Power BI y SQL Server Analysis Services 2016. SuperDAXMD ahora aporta estas mejoras a los modelos multidimensionales.

Un anuncio independiente en el blog Power BI muestra cómo Power BI los usuarios pueden beneficiarse de esta mejora del rendimiento del modelo multidimensional mediante la descarga de la versión más reciente de Power BI Desktop. Los informes interactivos existentes en Power BI Service pueden beneficiarse sin ningún paso adicional, ya que Power BI genera automáticamente las consultas SuperDAX optimizadas. Power BI detecta automáticamente las conexiones a modelos multidimensionales con compatibilidad con SuperDAX y usa las mismas funciones DAX optimizadas y patrones de consulta que ya usa en los modelos tabulares. Aunque Power BI cambiar automáticamente a SuperDAXMD, en sus propias soluciones de business intelligence, es posible que tenga que optimizar los patrones de consulta DAX manualmente.

Los patrones de consulta optimizados deben usar la función SUMMARIZECOLUMNS para reemplazar la función SUMMARIZE estándar menos eficaz. Use variables DAX, VAR, para calcular expresiones solo una vez en el lugar de definición y, a continuación, reutilice los resultados en cualquier otra expresión DAX sin tener que volver a realizar el cálculo. Otras funciones de SuperDAX, y quizás menos comunes, son SUBSTITUTEWITHINDEX, ADDMISSINGITEMS, así como NATURALLEFTOUTERJOIN y NATURALINNERJOIN, ISONORAFTERy GROUPBY. SELECTCOLUMNS y UNION también son funciones SuperDAX.

Para obtener más información sobre cómo funciona DAX con modelos multidimensionales y patrones y restricciones importantes que se deben tener en cuenta, asegúrese de ver DAX para los modelos multidimensionales.

SQL Server 2019 Analysis Services disponibilidad general (disponible con carácter general)

Nivel de compatibilidad de modelos tabulares

Esta versión presenta el nivel de compatibilidad 1500 para los modelos tabulares.

Intercalación de consultas

La intercalación de consultas es una configuración del sistema en modo tabular que puede mejorar los tiempos de respuesta a las consultas de usuario en escenarios de alta simultaneidad. La intercalación de consultas con un sesgo de consulta corto permite que las consultas simultáneas compartan recursos de CPU. Para obtener más información, vea Intercalación de consultas.

Grupos de cálculo en modelos tabulares

Los grupos de cálculo pueden reducir significativamente el número de medidas redundantes mediante la agrupación de expresiones de medida comunes como elementos de cálculo. Los grupos de cálculo se muestran en los clientes de informes como una tabla con una sola columna. Cada valor de la columna representa un cálculo reutilizable (o elemento de cálculo) que se puede aplicar a cualquiera de las medidas. Un grupo de cálculo puede tener cualquier número de elementos de cálculo. Cada elemento de cálculo se define mediante una expresión DAX. Para obtener más información, vea Grupos de cálculo.

Configuración de gobernanza para las actualizaciones de la caché de Power BI

La configuración de la propiedad ClientCacheRefreshPolicy ahora se admite en SSAS 2019 y versiones posteriores. Esta configuración de propiedad ya está disponible para Azure Analysis Services. El servicio Power BI Live Connect almacena en caché los datos de icono del panel y los datos de informe para la carga inicial de un informe, lo que provoca un número excesivo de consultas de caché que se envían al motor y, en casos extremos, sobrecarga el servidor. La propiedad ClientCacheRefreshPolicy permite invalidar este comportamiento en el nivel de servidor. Para obtener más información, vea Propiedades generales.

Adjunto en línea

Esta característica ofrece la posibilidad de adjuntar un modelo tabular como una operación en línea. Adjunto en línea se puede usar para la sincronización de réplicas de solo lectura en entornos locales de escalabilidad horizontal de consultas. Para realizar una operación de asociación en línea, use la opción AllowOverwrite del comando Attach XMLA.

<Attach xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
  <Folder>C:\Program Files\Microsoft SQL Server\MSAS15\OLAP\Data\AdventureWorks.0.db\</Folder>
  <AllowOverwrite>True</AllowOverwrite>
</Attach>

Esta operación puede requerir el doble de memoria del modelo para mantener la versión anterior en línea mientras se carga la nueva versión.

Un patrón de uso típico podría ser el siguiente:

  1. DB1 (versión 1) ya está adjuntado al servidor B de solo lectura.

  2. DB1 (versión 2) se procesa en el servidor de escritura A.

  3. DB1 (versión 2) se desasocia y coloca en una ubicación accesible para el servidor B (ya sea a través de una ubicación compartida o mediante Robocopy, etc.).

  4. El comando <Attach> con AllowOverwrite = True se ejecuta en el servidor B con la nueva ubicación DB1 (versión 2).

Sin esta característica los administradores, en primer lugar, deben desasociar la base de datos y, después, adjuntar la nueva versión de la base de datos. Esto conduce a tiempo de inactividad cuando la base de datos no está disponible para los usuarios y las consultas que se realicen producirán un error.

Cuando se especifica esta nueva marca, la versión 1 de la base de datos se elimina de forma atómica en la misma transacción sin tiempo de inactividad. Sin embargo, tiene como contrapartida que ambas bases de datos se cargan en memoria de forma simultánea.

Relaciones varios a varios en modelos tabulares

Esta mejora permite relaciones de varios a varios entre tablas en las que ambas columnas no son únicas. Puede definirse una relación entre una tabla de hechos y dimensiones con una granularidad mayor que la columna clave de la dimensión. Esto evita tener que normalizar las tablas de dimensiones y puede mejorar la experiencia del usuario, dado que el modelo resultante tiene un menor número de tablas con columnas agrupadas lógicamente.

Las relaciones de varios a varios requieren que los modelos se encuentra en el nivel de compatibilidad 1500 y superior. Puede crear relaciones de varios a varios mediante Visual Studio 2019 con la actualización 2.9.2 y posteriores de VSIX de proyectos de Analysis Services, la API del modelo de objetos tabulares (TOM), el lenguaje de scripting de modelos tabulares (TMSL) y la herramienta Editor tabular de código abierto.

Configuración de memoria para la gobernanza de recursos

La siguiente configuración de propiedades proporciona una gobernanza mejorada de los recursos:

  • Memory\QueryMemoryLimit: esta propiedad de la memoria puede utilizarse para limitar las colas de memoria generadas por las consultas DAX enviadas al modelo.
  • DbpropMsmdRequestMemoryLimit: esta propiedad de XMLA puede utilizarse para reemplazar el valor de la propiedad del servidor Memory\QueryMemoryLimit de una conexión.
  • OLAP\Query\RowsetSerializationLimit: esta propiedad del servidor limita el número de filas devueltas en un conjunto de filas, lo cual protege los recursos del servidor frente a una exportación masiva de datos. Esta propiedad se aplica a las consultas DAX y a las consultas MDX.

Estas propiedades pueden establecerse mediante la última versión de SQL Server Management Studio (SSMS). Esta configuración ya está disponible para Azure Analysis Services.

SQL Server 2017 Analysis Services

SQL Server 2017 Analysis Services algunas de las mejoras más importantes desde SQL Server 2012. A partir del éxito del modo tabular (introducido por primera vez en SQL Server 2012 Analysis Services), esta versión hace que los modelos tabulares sea más eficaz que nunca.

El modo multidimensional y Power Pivot para SharePoint son un elemento básico para muchas Analysis Services implementación. En el ciclo Analysis Services de vida del producto, estos modos están madurados. No hay nuevas características para ninguno de estos modos en esta versión. Sin embargo, se incluyen correcciones de errores y mejoras de rendimiento.

Las características descritas aquí se incluyen en SQL Server 2017 Analysis Services. Pero para aprovecharlas, también debe usar las versiones más recientes de Visual Studio con proyectos Analysis Services y SQL Server Management Studio (SSMS). Analysis Services proyectos y SSMS se actualizan mensualmente con características nuevas y mejoradas que normalmente coinciden con las nuevas funcionalidades de SQL Server.

Aunque es importante obtener información sobre todas las características nuevas, también es importante saber qué está en desuso y qué se va a dejar de usar en esta versión y versiones futuras. Asegúrese de comprobar si Analysis Services compatibilidad con versiones anteriores.

Echemos un vistazo a algunas de las principales características nuevas de esta versión.

Nivel de compatibilidad 1400 para modelos tabulares

Para aprovechar muchas de las características y funcionalidades nuevas que se describen aquí, los modelos tabulares nuevos o existentes deben establecerse o actualizarse al nivel de compatibilidad 1400. Los modelos con el nivel de compatibilidad 1400 no pueden implementarse en SQL Server 2016 SP1 o versiones anteriores, ni degradarse a niveles de compatibilidad inferiores. Para más información, consulte Nivel de compatibilidad para los modelos tabulares de Analysis Services.

En Visual Studio, puede seleccionar el nuevo nivel de compatibilidad 1400 al crear nuevos proyectos de modelo tabular.

AS_NewTabular1400Project

Para actualizar un modelo tabular existente en Visual Studio, en Explorador de soluciones, haga clic con el botón derecho en Model.bim y, a continuación, en Propiedades , establezca la propiedad Nivel de compatibilidad en SQL Server 2017 (1400).

AS_Model_Properties

Es importante tener en cuenta que, una vez que actualice un modelo existente a 1400, no podrá cambiar a una versión anterior. Asegúrese de mantener una copia de seguridad de la base de datos modelo 1200.

Experiencia moderna de Obtener datos

Cuando se trata de importar datos de orígenes de datos a los modelos tabulares, SSDT presenta la experiencia moderna obtener datos para los modelos en el nivel de compatibilidad 1400. Esta característica nueva se basa en una funcionalidad similar de Power BI Desktop y Microsoft Excel 2016. La experiencia moderna Get Data proporciona enormes funcionalidades de transformación de datos y mashup de datos mediante el generador de consultas Get Data y las expresiones M.

La experiencia moderna get data proporciona compatibilidad con una amplia gama de orígenes de datos. En el futuro, las actualizaciones incluirán compatibilidad con incluso más.

AS_Get_Data_in_SSDT

Una interfaz de usuario eficaz e intuitiva facilita más que nunca la selección de los datos y las funcionalidades de transformación de datos y mashup.

Mashup avanzado

Las modernas funcionalidades get data y mashup de M no se aplican a los modelos tabulares existentes actualizados del nivel de compatibilidad 1200 a 1400. La nueva experiencia solo se aplica a los nuevos modelos creados en el nivel de compatibilidad 1400.

Sugerencias de codificación

En esta versión se presentan sugerencias de codificación, una característica avanzada que se usa para optimizar el procesamiento (actualización de datos) de modelos tabulares grandes en memoria. Para comprender mejor la codificación, consulte El ajuste del rendimiento de los modelos tabulares en SQL Server 2012 Analysis Services las páginas del documento para comprender mejor la codificación.

  • La codificación de valores proporciona un mejor rendimiento de las consultas para las columnas que normalmente solo se usan para las agregaciones.

  • La codificación hash es preferible para las columnas agrupadas (a menudo los valores de tabla de dimensiones) y las claves externas. Las columnas de cadena siempre tienen codificación hash.

Las columnas numéricas pueden usar cualquiera de estos métodos de codificación. Cuando Analysis Services empieza a procesar una tabla, si la tabla está vacía (con o sin particiones) o se está realizando una operación de procesamiento de tabla completa, se toman valores de ejemplos para cada columna numérica para determinar si se debe aplicar la codificación de valores o hash. De forma predeterminada, se elige la codificación de valores cuando la muestra de valores distintos de la columna es lo suficientemente grande; de lo contrario, la codificación hash suele proporcionar una mejor compresión. Es posible que Analysis Services método de codificación después de que la columna se procese parcialmente en función de más información sobre la distribución de datos y reinicie el proceso de codificación. sin embargo, esto aumenta el tiempo de procesamiento y es ineficaz. En las instrucciones para la optimización del rendimiento se describe con más detalle la codificación y se describe cómo detectarla mediante SQL Server Profiler.

Las sugerencias de codificación permiten al modelador especificar una preferencia para el método de codificación dado conocimiento previo de la generación de perfiles de datos o en respuesta a la codificación de eventos de seguimiento. Puesto que la agregación en columnas codificadas por hash es más lenta que en las columnas codificadas por valores, la codificación de valores se puede especificar como una sugerencia para dichas columnas. No se garantiza que se aplique la preferencia. Es una sugerencia en lugar de una configuración. Para especificar una sugerencia de codificación, establezca la propiedad EncodingHint en la columna. Los valores posibles son "Default", "Value" y "Hash". El siguiente fragmento de código de metadatos basados en JSON del archivo Model.bim especifica la codificación de valores para la columna Sales Amount.

{
    "name": "Sales Amount",
    "dataType": "decimal",
    "sourceColumn": "SalesAmount",
    "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00",
    "sourceProviderType": "Currency",
    "encodingHint": "Value"
}

Jerarquías desiguales

En los modelos tabulares, puede modelar jerarquías de elementos primarios y secundarios. Las jerarquías con un número diferente de niveles suelen denominarse jerarquías desiguales. De forma predeterminada, las jerarquías desiguales se muestran con espacios en blanco para los niveles situados por debajo del elemento secundario más bajo. Este es un ejemplo de una jerarquía desigual en un organigrama:

AS_Ragged_Hierarchy

En esta versión se incluye la propiedad Ocultar miembros . Puede establecer la propiedad Ocultar miembros de una jerarquía en Hide blank members(Ocultar miembros en blanco).

AS_Hide_Blank_Members

Nota

Los miembros en blanco del modelo se representan mediante un valor DAX en blanco, en lugar de una cadena vacía.

Cuando se establece en Hide blank members(Ocultar miembros en blanco) y se implementa el modelo, se muestra una versión de la jerarquía más fácil de leer en los clientes de informes, como Excel.

AS_Non_Ragged_Hierarchy

Filas de detalles

Ahora puede definir un conjunto de filas personalizado que contribuya a un valor de medida. La opción Filas de detalles es similar a la acción de obtención de detalles predeterminada de los modelos multidimensionales. Permite a los usuarios finales ver la información con más detalle que el nivel agregado.

En la siguiente tabla de dinámica se muestran las ventas totales por Internet por año del modelo tabular de ejemplo de Adventure Works. Para ver las filas de detalles, haga clic con el botón derecho en una celda con un valor agregado de la medida y, después, haga clic en Mostrar detalles .

AS_Show_Details

De forma predeterminada, se muestran los datos asociados en la tabla de ventas por Internet. Este comportamiento limitado no suele ser significativo para el usuario, ya que la tabla podría no tener las columnas necesarias para mostrar información útil, como el nombre del cliente y la información del pedido. Con Filas de detalles, puede especificar una propiedad Expresión de filas de detalles para las medidas.

Propiedad Expresión de filas de detalles para medidas

La propiedad Expresión de filas de detalles para las medidas permite a los autores de modelos personalizar las columnas y las filas que se devuelven al usuario final.

AS_Detail_Rows_Expression_Property

La función DAX SELECTCOLUMNS se usa normalmente en un Expresión de filas de detalles. En el ejemplo siguiente se definen las columnas que se devuelven para las filas de la tabla de ventas por Internet del modelo tabular de ejemplo de Adventure Works:

SELECTCOLUMNS(
    'Internet Sales',
    "Customer First Name", RELATED( Customer[Last Name]),
    "Customer Last Name", RELATED( Customer[First Name]),
    "Order Date", 'Internet Sales'[Order Date],
    "Internet Total Sales", [Internet Total Sales]
)

Una vez que se ha definido la propiedad y se ha implementado el modelo, se devuelve un conjunto de filas personalizado cuando el usuario selecciona Mostrar detalles. Se respeta automáticamente el contexto de filtro de la celda que se ha seleccionado. En este ejemplo, solo se muestran las filas del valor 2010:

AS_Detail_Rows

Propiedad Expresión de filas de detalles predeterminada para tablas

Además de las medidas, las tablas también tienen una propiedad para definir una expresión de filas de detalles. La propiedad Expresión de filas de detalles predeterminada actúa como valor predeterminado para todas las medidas de la tabla. Las medidas que no tienen definida su propia expresión heredan la expresión de la tabla y muestran el conjunto de filas definido para la tabla. Esto permite la reutilización de expresiones y las nuevas medidas agregadas a la tabla más adelante heredan automáticamente la expresión.

AS_Default_Detail_Rows_Expression

Función DAX DETAILROWS

En esta versión se incluye una nueva función DAX DETAILROWS que devuelve el conjunto de filas definido por la expresión de filas de detalles. Funciona de forma similar a la instrucción DRILLTHROUGH en MDX, que también es compatible con las expresiones de filas de detalles definidas en modelos tabulares.

La siguiente consulta DAX devuelve el conjunto de filas definido por la expresión de filas de detalles para la medida o su tabla. Si no se define ninguna expresión, se devuelven los datos de la tabla de ventas por Internet, ya que es la tabla que contiene la medida.

EVALUATE DETAILROWS([Internet Total Sales])

Seguridad de nivel de objeto

Esta versión presenta la seguridad de nivel de objeto para tablas y columnas. Además de restringir el acceso a los datos de tabla y columna, se pueden proteger los nombres de tabla y columna confidenciales. Esto ayuda a impedir que un usuario malintencionado detecte la existencia de una tabla.

La seguridad de nivel de objeto debe establecerse mediante los metadatos basados en JSON, tabular model scripting language (TMSL) o tabular object model (TOM).

Por ejemplo, el código siguiente ayuda a proteger la tabla Product del modelo tabular de ejemplo de Adventure Works. Para ello, establece la propiedad MetadataPermission de la clase TablePermission en None.

//Find the Users role in Adventure Works and secure the Product table
ModelRole role = db.Model.Roles.Find("Users");
Table productTable = db.Model.Tables.Find("Product");
if (role != null && productTable != null)
{
    TablePermission tablePermission;
    if (role.TablePermissions.Contains(productTable.Name))
    {
        tablePermission = role.TablePermissions[productTable.Name];
    }
    else
    {
        tablePermission = new TablePermission();
        role.TablePermissions.Add(tablePermission);
        tablePermission.Table = productTable;
    }
    tablePermission.MetadataPermission = MetadataPermission.None;
}
db.Update(UpdateOptions.ExpandFull);

Vistas de administración dinámica (DMV)

Las DMV son consultas de SQL Server Profiler que devuelven información sobre las operaciones del servidor local y el estado del servidor. Esta versión incluye mejoras en las vistas de administración dinámica (DMV) para los modelos tabulares en los niveles de compatibilidad 1200 y 1400.

DISCOVER_CALC_DEPENDENCY ahora funciona con modelos tabulares 1200 y superiores. Los modelos tabulares 1400 y posteriores muestran dependencias entre particiones M, expresiones M y orígenes de datos estructurados. Para más información, consulte el blog Analysis Services.

MDSCHEMA_MEASUREGROUP_DIMENSIONS mejoras se incluyen para esta DMV, que se usa en varias herramientas de cliente para mostrar la dimensionalidad de la medida. Por ejemplo, la característica Explorar de Excel tablas dinámicas permite al usuario realizar una exploración cruzada de las dimensiones relacionadas con las medidas seleccionadas. Esta versión corrige las columnas de cardinalidad, que anteriormente mostraban valores incorrectos.

Mejoras de DAX

Una de las partes más importantes de la nueva funcionalidad DAX es la nueva función IN Operator/CONTAINSROW para expresiones DAX. Esto es similar al operador TSQL IN que se suele usar para especificar varios valores en una cláusula WHERE .

Antes, lo habitual era especificar filtros de valores múltiples mediante el operador lógico OR , como en la expresión de medida siguiente:

Filtered Sales:=CALCULATE (
        [Internet Total Sales],
                 'Product'[Color] = "Red"
            || 'Product'[Color] = "Blue"
            || 'Product'[Color] = "Black"
    )

Esto se ha simplificado mediante el operador IN :

Filtered Sales:=CALCULATE (
        [Internet Total Sales], 'Product'[Color] IN { "Red", "Blue", "Black" }
    )

En este caso, el operador IN hace referencia a una tabla de una sola columna con tres filas, una para cada uno de los colores especificados. Observe que la sintaxis del constructor de tabla usa llaves.

El operador IN es funcionalmente equivalente a la función CONTAINSROW :

Filtered Sales:=CALCULATE (
        [Internet Total Sales], CONTAINSROW({ "Red", "Blue", "Black" }, 'Product'[Color])
    )

El operador IN también se puede usar eficazmente con constructores de tabla. Por ejemplo, la medida siguiente filtra por combinaciones de colores y categorías de producto:

Filtered Sales:=CALCULATE (
        [Internet Total Sales],
        FILTER( ALL('Product'),
              ( 'Product'[Color] = "Red"   && Product[Product Category Name] = "Accessories" )
         || ( 'Product'[Color] = "Blue"  && Product[Product Category Name] = "Bikes" )
         || ( 'Product'[Color] = "Black" && Product[Product Category Name] = "Clothing" )
        )
    )

Con el nuevo operador IN , la expresión de medida anterior ahora es equivalente a la siguiente:

Filtered Sales:=CALCULATE (
        [Internet Total Sales],
        FILTER( ALL('Product'),
            ('Product'[Color], Product[Product Category Name]) IN
            { ( "Red", "Accessories" ), ( "Blue", "Bikes" ), ( "Black", "Clothing" ) }
        )
    )

Mejoras adicionales

Además de todas las nuevas características, Analysis Services, SSDT y SSMS también incluyen las siguientes mejoras:

  • La reutilización de jerarquía y columna se muestra en ubicaciones más útiles en la Power BI de campos.
  • Relaciones de fecha para crear fácilmente relaciones con dimensiones de fecha basadas en campos de fecha.
  • La opción de instalación predeterminada Analysis Services ahora es para el modo tabular.
  • Nuevos orígenes de datos Get Data (Power Query).
  • Editor DAX para SSDT.
  • Los orígenes de datos existentes de DirectQuery admiten consultas M.
  • SSMS, como la visualización, edición y compatibilidad con scripting para orígenes de datos estructurados.

SQL Server 2016 Analysis Services

SQL Server 2016 Analysis Services incluye muchas mejoras nuevas que proporcionan un rendimiento mejorado, una creación de soluciones más sencilla, administración automatizada de bases de datos, relaciones mejoradas con filtrado cruzado bidireccional, procesamiento de particiones en paralelo y mucho más. En el centro de la mayoría de las mejoras de esta versión se encuentra el nuevo nivel de compatibilidad 1200 para bases de datos de modelo tabular.

SQL Server 2016 Service Pack 1 (SP1) Analysis Services

Descargar SQL Server 2016 SP1

SQL Server 2016 Service SP1 Analysis Services proporciona un rendimiento y una escalabilidad mejorados gracias al reconocimiento de Non-Uniform Memory Access (NUMA) y la asignación de memoria optimizada basada en Intel Threading Building Blocks (Intel TBB). Esta nueva funcionalidad ayuda a reducir el costo total de propiedad (TCO) dando cabida a más usuarios en menos servidores empresariales, pero más eficaces.

En concreto, SQL Server 2016 SP1 Analysis Services incluye mejoras en estas áreas principales:

  • Reconocimiento de NUMA : para conseguir una mejor compatibilidad con NUMA, el motor en memoria VertiPaq de Analysis Services ahora mantiene una cola de trabajo independiente en cada nodo NUMA. Esto garantiza que los trabajos de detección de segmentos se ejecuten en el mismo nodo en el que se asigna la memoria para los datos de los segmentos. Tenga en cuenta que el reconocimiento de NUMA solo está habilitado de forma predeterminada en los sistemas que tienen al menos cuatro nodos NUMA. En los sistemas de dos nodos, los costos de acceso a la memoria asignada remota por lo general no garantizan la sobrecarga de administrar las características específicas de NUMA.
  • Asignación de memoria : Analysis Services ahora cuenta con una mayor aceleración gracias a Intel Threading Building Blocks, un asignador escalable que proporciona bloques de memoria independientes para cada núcleo. A medida que aumenta el número de núcleos, el sistema puede escalarse de manera casi lineal.
  • Fragmentación de montón : el asignador escalable basado en Intel TBB también ayuda a mitigar los problemas de rendimiento debido a la fragmentación de montón que se produce con el montón de Windows.

Las pruebas de rendimiento y de escalabilidad muestran unas mejoras considerables en el rendimiento de las consultas al ejecutar SQL Server 2016 SP1 Analysis Services en servidores empresariales de varios nodos.

Aunque la mayoría de las mejoras de esta versión son específicas de los modelos tabulares, también se han realizado varias mejoras en los modelos multidimensionales, como la optimización ROLAP de recuento distintivo para orígenes de datos como DB2 y Oracle, la compatibilidad de selección múltiple detallada con Excel 2016 y las optimizaciones de consultas de Excel.

SQL Server disponibilidad general (GA) de 2016 Analysis Services

Modelado

Rendimiento de modelado mejorado para los modelos tabulares 1200

Para los modelos tabulares 1200, las operaciones de metadatos en SSDT se realizan mucho más rápido que para los modelos tabulares 1100 o 1103. Si se compara, en el mismo hardware, la creación de una relación en un modelo establecido en el nivel de compatibilidad de SQL Server 2014 (1103) con 23 tablas tarda 3 segundos, mientras que la misma relación en un modelo creado que se ha establecido en el nivel de compatibilidad 1200 tarda menos de un segundo.

Plantillas de proyecto agregadas para los modelos tabulares 1200 en SSDT

Con esta versión, ya no necesita dos versiones de SSDT para generar proyectos BI y relacionales. SQL Server Data Tools para Visual Studio 2015 agrega plantillas de proyecto para soluciones de Analysis Services, incluidos los proyectos tabulares de Analysis Services usados para la creación de modelos en el nivel de compatibilidad 1200. Se incluyen otras plantillas de proyecto de Analysis Services para soluciones de minería de datos y multidimensionales, pero al mismo nivel funcional (1100 o 1103) que en versiones anteriores.

Carpetas para mostrar

Ahora hay disponibles carpetas para mostrar para los modelos tabulares 1200. Definidas en SQL Server Data Tools y representadas en aplicaciones cliente como Excel o Power BI Desktop, las carpetas de visualización ayudan organizar grandes cantidades de medidas en carpetas individuales y agregan una jerarquía visual para explorar más fácilmente las listas de campos.

Filtrado cruzado bidireccional

Como novedad de esta versión se ha introducido un enfoque integrado para permitir los filtros cruzados bidireccionales en los modelos tabulares, lo que elimina la necesidad de usar soluciones DAX manuales para propagar el contexto de filtro en las relaciones entre tablas. Los filtros solo se generan automáticamente cuando la dirección se puede establecer con un alto grado de certeza. Si hay ambigüedad en el formulario de varias rutas de consultas en relaciones de tabla, no se creará automáticamente un filtro. Vea Filtros cruzados bidireccionales para modelos tabulares en SQL Server 2016 Analysis Services para obtener más información.

Translations

Ahora puede almacenar metadatos traducidos en un modelo tabular 1200. Los metadatos del modelo incluyen campos para Culture, títulos traducidos y descripciones traducidas. Para agregar traducciones, use el comando Model > Translations de SQL Server Data Tools . Vea Traducciones en modelos tabulares (Analysis Services) para obtener más información.

Tablas pegadas

Ahora es posible actualizar un modelo tabular 1100 o 1103 a 1200 cuando el modelo contiene tablas pegadas. Recomendamos para ello usar SQL Server Data Tools. En SSDT, establezca CompatibilityLevel en 1200 y, a continuación, realice la implementación en una instancia SQL Server 2017 de Analysis Services. Para obtener información detallada, vea Compatibility Level for Tabular models in Analysis Services .

Tablas calculadas en SSDT

Una tabla calculada es una construcción de solo modelo basada en una consulta o una expresión de DAX en SSDT. Cuando se implementa en una base de datos, una tabla calculada no se distingue de las tablas normales.

Existen varios usos para las tablas calculadas, incluida la creación de nuevas tablas para exponer una tabla existente en un rol específico. El ejemplo clásico es una tabla de fechas que funciona en varios contextos (fecha de pedido, fecha de envío etc.). Mediante la creación de una tabla calculada para un rol determinado, ahora puede activar una relación de tabla para facilitar la interacción de datos o consultas con la tabla calculada. Otro uso de las tablas calculadas es combinar partes de las tablas existentes en una tabla completamente nueva que solo existe en el modelo. Consulte Creación de una tabla calculada para obtener más información.

Corrección de fórmula

Con la corrección de fórmula en un modelo tabular 1200, SSDT actualizará automáticamente cualquier medida que haga referencia a una columna o tabla cuyo nombre haya cambiado.

Compatibilidad con el administrador de configuración de Visual Studio

Para admitir varios entornos, como entornos de preproducción y prueba, Visual Studio permite a los desarrolladores crear varias configuraciones de proyecto con el administrador de configuración. Los modelos multidimensionales ya aprovechan esto, pero los modelos tabulares no lo hacían. Con esta versión, ahora puede usar el administrador de configuración para realizar la implementación en servidores diferentes.

Administración de instancias

Administración de modelos tabulares 1200 en SSMS

En esta versión, una instancia de Analysis Services en el modo de servidor tabular puede ejecutar modelos tabulares en cualquier nivel de compatibilidad (1100, 1103 y 1200). La última versión de SQL Server Management Studio se ha actualizado para mostrar las propiedades y proporcionar la administración del modelo de base de datos para los modelos tabulares en el nivel de compatibilidad 1200.

Procesamiento en paralelo para varias particiones de tabla en los modelos tabulares

Esta versión incluye una nueva funcionalidad para el procesamiento en paralelo de las tablas con dos o más particiones, lo que aumenta el rendimiento del procesamiento. No hay valores de configuración para esta característica. Para obtener más información sobre cómo configurar particiones y procesar tablas, vea Particiones de modelos tabulares.

Adición de cuentas de equipo como administradores en SSMS

Los administradores deAnalysis Services ahora pueden usar SQL Server Management Studio para configurar las cuentas de equipo para que sean miembros del grupo de administradores de Analysis Services . En el cuadro de diálogo Seleccionar usuarios o grupos, establezca Ubicaciones para el dominio de equipos y, a continuación, agregue el tipo de objeto Equipos. Para obtener más información, consulte Concesión de derechos de administrador del servidor a una Analysis Services de servidor.

DBCC para Analysis Services.

DBCC (Database Consistency Checker, comprobador de coherencia de base de datos) se ejecuta internamente para detectar posibles problemas de errores de datos en la base de datos de carga, pero también se puede ejecutar a petición si sospecha que hay problemas en los datos o el modelo. DBCC ejecuta comprobaciones diferentes dependiendo de si el modelo es tabular o multidimensional. Vea Comprobador de coherencia de base de datos (DBCC) para bases de datos multidimensionales y tabulares de Analysis Services para obtener más información.

Actualizaciones de eventos extendidos

En esta versión se ha agregado una interfaz gráfica de usuario a SQL Server Management Studio para configurar y administrar los eventos extendidos de Analysis Services . Puede configurar los flujos de datos en directo para supervisar la actividad del servidor en tiempo real, mantener los datos de sesión cargados en memoria para un análisis más rápido o guardar flujos de datos en un archivo para un análisis sin conexión. Para más información, vea Supervisar Analysis Services con SQL Server Extended Events.

Scripting

PowerShell para modelos tabulares

En esta versión se han incluido mejoras de PowerShell para los modelos tabulares en el nivel de compatibilidad 1200. Puede usar todos los cmdlets aplicables y, además, cmdlets específicos del modo tabular, como Invoke ProcessASDatabase y el cmdlet Invoke-ProcessTable.

Operaciones de base de datos de script de SSMS

En la última versión de SQL Server Management Studio (SSMS), el script está ahora habilitado para los comandos de base de datos, que incluyen Create, Alter, Delete, Backup, Restore, Attach y Detach. El resultado es TMSL (Tabular Model Scripting Language, lenguaje de scripting del modelo tabular) en JSON. Vea Tabular Model Scripting Language (TMSL) Reference (Referencia de Tabular Model Scripting Language [TMSL]) para obtener más información.

Tarea Ejecutar DDL de Analysis Services

Latarea Ejecutar DDL de Analysis Services ahora acepta también los comandos de Tabular Model Scripting Language (TMSL).

Cmdlet de PowerShell de SSAS

El cmdlet de PowerShell de SSAS Invoke-ASCmd ahora acepta comandos de Tabular Model Scripting Language (TMSL). Los demás cmdlets de PowerShell de SSAS podrían actualizarse en una versión futura para usar los nuevos metadatos tabulares (las excepciones se indicarán en las notas de la versión). Para obtener información detallada, vea Analysis Services PowerShell Reference .

Tabular Model Scripting Language (TMSL) compatible en SSMS

Con la versión más reciente de SSMS, ahora puede crear scripts para automatizar la mayoría de las tareas administrativas para los modelos tabulares 1200. Actualmente, se pueden crear scripts de las siguientes tareas: proceso en cualquier nivel, además de los comandos CREATE, ALTER y DELETE en el nivel de base de datos.

Funcionalmente, TMSL es equivalente a la extensión ASSL de XMLA que proporciona las definiciones de objetos multidimensionales, salvo que TMSL usa descriptores como model, table y relationship para describir los metadatos tabulares. Vea Tabular Model Scripting Language (TMSL) Reference (Referencia de Tabular Model Scripting Language [TMSL]) para obtener más información sobre el esquema.

Un script basado en JSON generado para un modelo tabular podría ser similar al siguiente:

{
  "create": {
    "database": {
      "name": "AdventureWorksTabular1200",
      "id": "AdventureWorksTabular1200",
      "compatibilityLevel": 1200,
      "readWriteMode": "readWrite",
      "model": {}
    }
  }
}

La carga es un documento JSON que puede ser mínimo, como en el ejemplo anterior, o adornarse mucho con el conjunto completo de definiciones de objetos. En Tabular Model Scripting Language (TMSL) Reference (Referencia de Tabular Model Scripting Language [TMSL]) se describe la sintaxis.

En el nivel de base de datos, los comandos CREATE, ALTER y DELETE darán como resultado un script de TMSL en la ventana de XMLA familiar. Otros comandos, como PROCESS, también pueden incluirse en scripts en esta versión. En una versión futura podría agregarse compatibilidad con scripts para muchas otras acciones.

Comandos con scripts Descripción
create Permite agregar una base de datos, conexión o partición. El equivalente de ASSL es CREATE.
createOrReplace Permite actualizar una definición de objeto existente (base de datos, conexión o partición) sobrescribiendo una versión anterior. El equivalente de ASSL es ALTER con AllowOverwrite establecido en true y ObjectDefinition en ExpandFull.
delete Permite quitar una definición de objeto. El equivalente de ASSL es DELETE.
actualizar Procesa el objeto. El equivalente de ASSL es PROCESS.

DAX

Edición de fórmula DAX mejorada

Las actualizaciones de la barra de fórmulas le ayudan a escribir fórmulas con más facilidad mediante la diferenciación de funciones, campos y medidas mediante el color de sintaxis, proporciona sugerencias de función y campo inteligentes y le indica si partes de la expresión DAX son incorrectas mediante ondulaciones de error. También permite usar varias líneas (Alt + Entrar) y sangría (Tabulador). La barra de fórmulas ahora también permite escribir comentarios como parte de las medidas, simplemente escriba "//" y todo lo que esté después de estos caracteres en la misma línea se considerará un comentario.

Variables de DAX

En esta versión se incluye compatibilidad con variables en DAX. Ahora, las variables pueden almacenar el resultado de una expresión como una variable con nombre, que se pasa después como argumento a otras expresiones de medida. Una vez que se han calculado los valores resultantes de una expresión variable, esos valores no cambian, aunque se haga referencia a la variable en otra expresión. Para obtener más información, vea Función VAR.

Nuevas funciones de DAX

Con esta versión, DAX presenta más de cincuenta funciones nuevas para admitir cálculos más rápidos y visualizaciones mejoradas en Power BI. Para obtener más información, vea New DAX Functions(Funciones DAX nuevas).

Guardado de las medidas incompletas

Ahora puede guardar las medidas DAX incompletas directamente en un proyecto del modelo tabular 1200 y seleccionarlo de nuevo cuando esté listo para continuar.

Otras mejoras de DAX

  • Cálculo de valores no vacíos: reduce el número de detecciones necesarias de valores no vacíos.
  • Fusión de medidas: varias medidas de la misma tabla se combinarán en una sola consulta del motor de almacenamiento.
  • Conjuntos de agrupamiento: cuando una consulta solicita medidas en varias granularidades (total/año/mes), se envía una sola consulta en el nivel más bajo y el resto de las granularidades se derivan del nivel más bajo.
  • Eliminación de combinación redundante: una sola consulta al motor de almacenamiento devuelve las columnas de dimensión y los valores de medida.
  • Evaluación estricta de IF/SWITCH: una rama cuya condición sea false ya no producirá consultas del motor de almacenamiento. Antes, las ramas se evaluaban concienzudamente, pero los resultados se descartaban después.

Desarrollador

Espacio de nombres Microsoft.AnalysisServices.Tabular para la programación tabular 1200 en AMO

Los objetos de administración de Analysis Services (AMO) se actualizan para incluir un nuevo espacio de nombres tabular para administrar una instancia del modo tabular de SQL Server 2016 Analysis Services y para proporcionar el lenguaje de definición de datos para la creación o la modificación de modelos tabulares 1200 mediante programación. Visite Microsoft.AnalysisServices.Tabular para obtener información sobre la API.

Actualizaciones de objetos de administración de Analysis Services (AMO)

Se han vuelto a diseñar los objetos de administración de Analysis Services (AMO) para incluir un segundo ensamblado, Microsoft.AnalysisServices.Core.dll. El nuevo ensamblado separa las clases comunes como el servidor, la base de datos y la función que tienen una amplia aplicación en Analysis Services, independientemente del modo de servidor. Anteriormente, estas clases formaban parte del ensamblado Microsoft.AnalysisServices original. Moverlos a un nuevo ensamblado prepara el terreno para futuras ampliaciones a AMO, con una división clara entre las API genéricas y específicas del contexto. Las aplicaciones existentes no se ven afectadas por los nuevos ensamblados. Sin embargo, si decide volver a generar aplicaciones con el nuevo ensamblado AMO por cualquier motivo, asegúrese de agregar una referencia a Microsoft.AnalysisServices.Core. De forma similar, los scripts de PowerShell que cargan y llaman a AMO deben cargar ahora Microsoft.AnalysisServices.Core.dll. Asegúrese de actualizar los scripts.

Editor JSON para archivos BIM

La vista Código en Visual Studio 2015 ahora representa el archivo BIM en formato JSON para los modelos tabulares 1200. La versión de Visual Studio determina si el archivo BIM se representa en JSON a través del editor JSON integrado o como texto simple.

Para usar el editor JSON, con la capacidad de expandir y contraer secciones del modelo, necesitará la versión más reciente de SQL Server Data Tools y Visual Studio 2015 (cualquier edición, incluida la edición Community gratis). Para las demás versiones de SSDT o Visual Studio, el archivo BIM se representa en JSON como texto simple. Como mínimo, un modelo vacío contendrá el siguiente JSON:

  {  
    "name": "SemanticModel",
    "id": "SemanticModel",
    "compatibilityLevel": 1200,
    "readWriteMode": "readWrite",
    "model": {}
  }  

Advertencia

Evite la edición directa de JSON. Esto puede dañar el modelo.

Nuevos elementos en el esquema de MS-CSDLBI 2.0

Se han agregado los siguientes elementos al tipo complejo TProperty definido en el esquema de [MS-CSDLBI] 2.0:

Elemento Definición
DefaultValue Una propiedad que especifica el valor usado al evaluar la consulta. La propiedad DefaultValue es opcional, pero se selecciona automáticamente si no se pueden agregar los valores del miembro.
Estadísticas Un conjunto de estadísticas de los datos subyacentes que está asociado a la columna. Estas estadísticas se definen mediante el tipo complejo de TPropertyStatistics y se proporcionan solo si su generación no es cara a nivel computacional, como se describe en la sección 2.1.13.5 del formato de archivo de definición del esquema conceptual con el documento de anotaciones de Business Intelligence.

DirectQuery

Nueva implementación de DirectQuery

En esta versión se incluyen mejoras considerables en DirectQuery para los modelos tabulares 1200. A continuación, se muestra un resumen:

  • DirectQuery genera ahora consultas más sencillas que proporcionan un mejor rendimiento.
  • Control adicional sobre la definición de conjuntos de datos de ejemplo usados para tareas de prueba y diseño del modelo.
  • La seguridad de nivel de fila (RLS) es ahora compatible con los modelos tabulares 1200 en el modo DirectQuery. Anteriormente, la presencia de RLS impedía implementar un modelo tabular en el modo DirectQuery.
  • Ahora se admiten columnas calculadas en los modelos tabulares 1200 en el modo DirectQuery. Anteriormente, la presencia de columnas calculadas impedía implementar un modelo tabular en el modo DirectQuery.
  • Entre las mejoras de rendimiento se incluye la eliminación de la combinación redundante para VertiPaq y DirectQuery.

Nuevos orígenes de datos para el modo DirectQuery

Los orígenes de datos admitidos para los modelos tabulares 1200 en el modo DirectQuery ahora incluyen Oracle, Teradata y Microsoft Analytics Platform (anteriormente conocido como Parallel Data Warehouse). Para más información, consulte Modo DirectQuery.

Versiones anteriores

SQL Server 2014 Analysis Services