Novidades do SQL Server Analysis Services

Aplica-se a: Power BI Premium SQL Server Analysis Services Azure Analysis Services

Este artigo resume novos recursos e aprimoramentos nas versões mais recentes do SSAS (SQL Server Analysis Services). Para saber mais sobre as alterações na disponibilidade de recursos e no comportamento existentes entre as versões, consulte a compatibilidade com Versões anteriores.

SQL Server 2022 Analysis Services CTP 2.0

Esta versão apresenta a visualização pública do SQL Server Analysis Services 2022. Ele inclui as seguintes melhorias:

Suporte para conjuntos de dados Power BI DirectQuery

Esta versão apresenta suporte para conjuntos de dados Power BI com conexões DirectQuery com SQL Server modelos do Analysis Services 2022. Modeladores de dados e autores de relatório usando as versões de maio de 2022 e posteriores do Power BI Desktop agora podem combinar outros dados importados e directQuery de conjuntos de dados Power BI, Azure Analysis Services e agora SSAS 2022.

Para saber mais, consulte Como usar o DirectQuery para conjuntos de dados e o Analysis Services | Power BI Documentação.

Desempenho da consulta MDX

Introduzido pela primeira vez no Power BI e agora no SSAS 2022, o MDX Fusion inclui a otimização fe (Formula Engine) reduzindo o número de consultas do mecanismo de Armazenamento (ES) por consulta MDX. Os aplicativos cliente que usam MDX (Expressões Multidimensionais) para consultar dados de modelo/conjunto de dados, como Microsoft Excel verão um desempenho de consulta aprimorado. Padrões comuns de consulta MDX agora exigem menos ES consultas em que anteriormente inúmeras consultas ES eram necessárias para dar suporte a granularidade diferente. Menos ES consultas significam menos verificações caras em modelos grandes, o que resulta em ganhos significativos de desempenho, especialmente ao se conectar a modelos tabulares no modo de Consulta Direta.

Para saber mais, consulte Anunciando melhor desempenho de consulta MDX em Power BI | Blog do Microsoft Power BI.

Governança de recursos

Esta versão inclui precisão aprimorada para a propriedade de memória do servidor QueryMemoryLimit e a propriedade de cadeia de conexão DbpropMsmdRequestMemoryLimit.

Introduzida pela primeira vez no SSAS 2019, a propriedade de memória do servidor QueryMemoryLimit aplicada somente a spools de memória em que os resultados intermediários da consulta DAX são criados durante o processamento de consulta. Agora, no SSAS 2022, ele também se aplica a consultas MDX, abrangendo efetivamente todas as consultas. Você pode controlar melhor as consultas caras do processo que resultam em materialização significativa. Se a consulta atingir o limite especificado, o mecanismo cancelará a consulta e retornará um erro ao chamador, reduzindo o impacto sobre outros usuários simultâneos.

Os aplicativos cliente podem reduzir ainda mais a memória permitida por consulta especificando a propriedade de cadeia de conexão DbpropMsmdRequestMemoryLimit . Especificada em Kilobytes, essa propriedade substitui o valor da propriedade de memória do servidor QueryMemoryLimit para uma conexão.

Intercalação de consulta – Viés de consulta curto com cancelamento rápido

Esta versão apresenta um novo valor que especifica o viés de consulta curto com cancelamento rápido para a configuração da propriedade Threadpool\SchedulingBehavior. Essa configuração de propriedade melhora os tempos de resposta de consulta do usuário em cenários de alta simultaneidade. Para saber mais, consulte a intercalação de consulta – Configurar.

Analysis Services SQL Server 2019

SQL Server 2019 Analysis Services CU 5

SQL Server Analysis Services atualizações cumulativas são incluídas com SQL Server atualizações cumulativas. Para saber mais sobre e baixar a atualização cumulativa mais recente, consulte SQL Server atualização cumulativa mais recente de 2019. As páginas de KB de atualização cumulativa resumem problemas conhecidos, melhorias e correções para todos os recursos SQL Server, incluindo o SSAS. Detalhes adicionais para as principais atualizações de recursos do SSAS são descritos aqui.

SuperDAX para modelos multidimensionais (SuperDAXMD)

Com o CU5, os clientes baseados em DAX agora podem usar funções SuperDAX e padrões de consulta em modelos multidimensionais, fornecendo melhor desempenho ao consultar dados do modelo. O SuperDAX introduziu pela primeira vez otimizações de consulta DAX para modelos tabulares com Power BI e SQL Server Analysis Services 2016. O SuperDAXMD agora traz essas melhorias para modelos multidimensionais.

Um anúncio separado no blog Power BI destaca como Power BI usuários podem se beneficiar dessa melhoria de desempenho de modelo multidimensional baixando a versão mais recente do Power BI Desktop. Relatórios interativos existentes no Serviço Power BI podem se beneficiar sem nenhuma etapa adicional, pois Power BI gera as consultas SuperDAX otimizadas automaticamente. Power BI detecta automaticamente conexões com modelos multidimensionais com suporte do SuperDAX e usa as mesmas funções DAX otimizadas e padrões de consulta que ele já usa em modelos tabulares. Embora Power BI possa alternar automaticamente para o SuperDAXMD, em suas próprias soluções de business intelligence, talvez seja necessário otimizar os padrões de consulta DAX manualmente.

Os padrões de consulta otimizados devem usar a função SUMMARIZECOLUMNS para substituir a função SUMMARIZE padrão menos eficiente. Use variáveis DAX, VAR, para calcular expressões apenas uma vez no local da definição e reutilize os resultados em qualquer outra expressão DAX sem precisar executar o cálculo novamente. Outras funções SuperDAX e talvez menos comuns são SUBSTITUTEWITHINDEX, ADDMISSINGITEMS, bem como NATURALLEFTOUTERJOIN e NATURALINNERJOIN, ISONORAFTER e GROUPBY. SELECTCOLUMNS e UNION também são funções SuperDAX.

Para saber mais sobre como o DAX funciona com modelos multidimensionais e padrões e restrições importantes a serem informados, confira o DAX para modelos multidimensionais.

SQL Server GA do Analysis Services 2019 (disponível em geral)

Nível de compatibilidade do modelo tabular

Esta versão apresenta o nível de compatibilidade 1500 para modelos tabulares.

Intercalação de consulta

A intercalação de consulta é uma configuração do sistema no modo tabular que pode melhorar os tempos de resposta de consulta do usuário em cenários de alta simultaneidade. A intercalação de consulta com o viés de consulta curto permite que consultas simultâneas compartilhem recursos da CPU. Para saber mais, confira Intercalação de consulta.

Grupos de cálculo em modelos tabulares

Os grupos de cálculo podem reduzir significativamente o número de medidas redundantes agrupando expressões de medida comuns como itens de cálculo. Grupos de cálculos são mostrados em clientes de relatório como uma tabela com uma única coluna. Cada valor na coluna representa um cálculo reutilizável ou um item de cálculo que pode ser aplicado a qualquer uma das medidas. Um grupo de cálculos pode ter qualquer número de itens de cálculo. Cada item de cálculo é definido por uma expressão DAX. Para saber mais, confira os grupos de cálculo.

Configuração de governança para atualizações de cache do Power BI

A configuração da propriedade ClientCacheRefreshPolicy agora tem suporte no SSAS 2019 e posterior. Essa configuração de propriedade já está disponível para Azure Analysis Services. O serviço do Power BI armazena em cache os dados do bloco do painel e os dados de relatório para a carga inicial de Live Connect relatório, causando um número excessivo de consultas de cache sendo enviadas ao mecanismo e, em casos extremos, sobrecarregar o servidor. A propriedade ClientCacheRefreshPolicy permite substituir esse comportamento no nível do servidor. Para saber mais, confira Propriedades gerais.

Anexação online

Esse recurso fornece a capacidade de anexar um modelo de tabela como uma operação online. A anexação online pode ser usada para sincronização de réplicas somente leitura em ambientes de expansão de consulta local. Para executar uma operação de anexação online, use a opção AllowOverwrite do comando Anexar 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 operação pode exigir o dobro da memória do modelo para manter a versão antiga online ao carregar a nova versão.

Um padrão de uso típico poderia ser o seguinte:

  1. O DB1 (versão 1) já está anexado ao servidor somente leitura B.

  2. O DB1 (versão 2) é processado no servidor de gravação A.

  3. O DB1 (versão 2) é desanexado e colocado em um local acessível ao servidor B (seja por meio de um local compartilhado ou usando o robocopy, etc.).

  4. O <comando Anexar> com AllowOverwrite=True é executado no servidor B com o novo local do DB1 (versão 2).

Sem esse recurso, os administradores precisam primeiro desanexar o banco de dados e, em seguida, anexar a nova versão do banco de dados. Isso leva a tempo de inatividade quando o banco de dados não está disponível para os usuários e as consultas feitas a ele falharão.

Quando esse novo sinalizador é especificado, a versão 1 do banco de dados é excluída atomicamente dentro da mesma transação, sem tempo de inatividade. No entanto, ele vem com o ônus de ter ambos os bancos de dados carregados na memória simultaneamente.

Relações muitos para muitos em modelos tabulares

Essa melhoria permite relações muitos para muitos entre tabelas em que ambas as colunas não são exclusivas. Uma relação pode ser definida entre uma tabela de dimensões e uma de fatos com uma granularidade maior do que a coluna de chave da dimensão. Isso evita a necessidade de normalizar as tabelas de dimensões e pode melhorar a experiência do usuário, já que o modelo resultante tem um número menor de tabelas com colunas agrupadas logicamente.

Relações muitos para muitos exigem que os modelos estejam no nível de compatibilidade 1500 e superior. Você pode criar relações muitos para muitos usando Visual Studio 2019 com projetos do Analysis Services VSIX atualização 2.9.2 e superior, a API tom (modelo de objeto tabular), linguagem de script de modelo tabular (TMSL) e a ferramenta editor de tabela de software livre.

Configurações de memória para governança de recursos

As seguintes configurações de propriedade fornecem uma governança de recursos aprimorada:

  • Memory\QueryMemoryLimit – essa propriedade de memória pode ser usada para limitar spools memória criados por consultas DAX enviadas para o modelo.
  • DbpropMsmdRequestMemoryLimit – essa propriedade XMLA pode ser usada para substituir o valor da propriedade de servidor Memory\QueryMemoryLimit para uma conexão.
  • OLAP\Query\RowsetSerializationLimit – essa propriedade de servidor limita o número de linhas retornadas em um conjunto de linhas, protegendo os recursos do servidor uso extensivo da exportação de dados. Essa propriedade se aplica a ambas as consultas DAX e MDX.

Essas propriedades podem ser definidas usando a versão mais recente do SSMS (SQL Server Management Studio). Essas configurações já estão disponíveis para Azure Analysis Services.

SQL Server Analysis Services 2017

SQL Server Analysis Services 2017 confira alguns dos aprimoramentos mais importantes desde SQL Server 2012. Com base no sucesso do modo tabular (introduzido pela primeira vez no SQL Server 2012 Analysis Services), essa versão torna os modelos tabulares mais avançados do que nunca.

O modo multidimensional e o Power Pivot para SharePoint modo são um grampo para muitas implantações do Analysis Services. No ciclo de vida do produto Analysis Services, esses modos são maduros. Não há novos recursos para nenhum desses modos nesta versão. No entanto, correções de bugs e melhorias de desempenho são incluídas.

Os recursos descritos aqui estão incluídos no SQL Server Analysis Services 2017. Porém, para tirar proveito deles, você também deve usar as versões mais recentes do Visual Studio com projetos do Analysis Services e SQL Server Management Studio (SSMS). Os projetos e SSMS do Analysis Services são atualizados mensalmente com recursos novos e aprimorados que normalmente coincidem com novas funcionalidades em SQL Server.

Embora seja importante saber mais sobre todos os novos recursos, também é importante saber o que está sendo preterido e descontinuado nesta versão e versões futuras. Verifique a compatibilidade com versões anteriores do Analysis Services.

Vamos dar uma olhada em alguns dos principais novos recursos nesta versão.

Nível de Compatibilidade 1400 para modelos de tabela

Para aproveitar muitos dos novos recursos e funcionalidades descritos aqui, modelos tabulares novos ou existentes devem ser definidos ou atualizados para o nível de compatibilidade 1400. Os modelos no nível de compatibilidade 1400 não podem ser implantados no SQL Server 2016 SP1 ou anterior nem ter o downgrade para níveis de compatibilidade inferiores. Para saber mais, confira Nível de compatibilidade para modelos de tabela do Analysis Services.

Em Visual Studio, você pode selecionar o novo nível de compatibilidade 1400 ao criar novos projetos de modelo tabular.

AS_NewTabular1400Project

Para atualizar um modelo de tabela existente no Visual Studio, em Gerenciador de Soluções, clique com o botão direito do mouse em Model.bim e, em Propriedades, defina a propriedade Nível de Compatibilidade como SQL Server 2017 (1400).

AS_Model_Properties

É importante ter em mente que, depois de atualizar um modelo existente para 1400, você não poderá fazer downgrade. Mantenha um backup do banco de dados do modelo 1200.

Experiência moderna do recurso Obter Dados

Quando se trata de importar dados de fontes de dados para seus modelos tabulares, o SSDT apresenta a experiência moderna de Obter Dados para modelos no nível de compatibilidade 1400. Esse novo recurso se baseia em uma funcionalidade semelhante no Power BI Desktop e Microsoft Excel 2016. A experiência moderna de Obter Dados fornece funcionalidades imensas de transformação de dados e mashup de dados usando o construtor de consultas Get Data e as expressões M.

A experiência moderna de Obter Dados oferece suporte para uma ampla gama de fontes de dados. Daqui para frente, as atualizações incluirão suporte para ainda mais.

AS_Get_Data_in_SSDT

Uma interface de usuário avançada e intuitiva facilita a seleção de seus recursos de transformação/mashup de dados e dados do que nunca.

Advanced mashup

A experiência moderna de Obter Dados e os recursos de mashup de M não se aplicam a modelos tabulares existentes atualizados do nível de compatibilidade 1200 para 1400. A nova experiência só se aplica a novos modelos criados no nível de compatibilidade 1400.

Dicas de codificação

Esta versão apresenta dicas de codificação, um recurso avançado usado para otimizar o processamento (atualização de dados) de modelos tabulares grandes na memória. Para entender melhor a codificação, consulte o Ajuste de Desempenho de Modelos Tabulares no white paper SQL Server Analysis Services 2012 para entender melhor a codificação.

  • A codificação de valor fornece melhor desempenho de consulta para colunas que normalmente são usadas apenas para agregações.

  • A codificação de hash é preferencial para colunas agrupadas (geralmente valores de tabela de dimensões) e chaves estrangeiras. As colunas de cadeia de caracteres são sempre codificadas em hash.

Colunas numéricas podem usar qualquer um desses métodos de codificação. Quando o Analysis Services inicia o processamento de uma tabela, se a tabela estiver vazia (com ou sem partições) ou uma operação de processamento de tabela completa estiver sendo executada, os valores de exemplo serão obtidos para cada coluna numérica para determinar se a codificação de valor ou hash deve ser aplicada. Por padrão, a codificação de valor é escolhida quando o exemplo de valores distintos na coluna é grande o suficiente - caso contrário, a codificação de hash geralmente fornece melhor compactação. É possível que o Analysis Services altere o método de codificação depois que a coluna é parcialmente processada com base em informações adicionais sobre a distribuição de dados e reinicie o processo de codificação; no entanto, isso aumenta o tempo de processamento e é ineficiente. O whitepaper de ajuste de desempenho discute a recodificação com mais detalhes e descreve como detectá-la usando SQL Server Profiler.

As dicas de codificação permitem que o modelador especifique uma preferência pelo método de codificação dado conhecimento prévio da criação de perfil de dados e/ou em resposta a eventos de rastreamento de recodificação. Como a agregação em colunas codificadas por hash é mais lenta do que sobre colunas codificadas em valor, a codificação de valor pode ser especificada como uma dica para essas colunas. Não é garantido que a preferência seja aplicada. É uma dica em vez de uma configuração. Para especificar uma dica de codificação, defina a propriedade EncodingHint na coluna. Os valores possíveis são "Default", "Value" e "Hash". O snippet a seguir de metadados baseados em JSON do arquivo Model.bim especifica a codificação de valor para a coluna Valor de Vendas.

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

Hierarquias desbalanceadas

Em modelos de tabela, você pode modelar hierarquias pai-filho. Hierarquias com um número diferente de níveis costumam ser chamadas de hierarquias desbalanceadas. Por padrão, as hierarquias desbalanceadas são exibidas com espaços em branco para níveis abaixo do filho mais baixo. Este é um exemplo de uma hierarquia desbalanceada em um organograma:

AS_Ragged_Hierarchy

Essa versão introduz a propriedade Ocultar Membros . É possível definir a propriedade Ocultar Membros de uma hierarquia como Ocultar membros em branco.

AS_Hide_Blank_Members

Observação

Os membros em branco no modelo são representados por um valor em branco do DAX, não por uma cadeia de caracteres vazia.

Quando é definida como Ocultar membros em branco, e o modelo é implantado, uma versão da hierarquia mais fácil de ser lida é mostrada em clientes de relatório como o Excel.

AS_Non_Ragged_Hierarchy

Linhas de Detalhes

Agora é possível definir um conjunto de linhas personalizadas que contribui com um valor de medida. Linhas de Detalhes são semelhantes à ação de detalhamento padrão em modelos multidimensionais. Isso permite que os usuários finais exibam informações mais detalhadamente do que o nível de agregação.

A Tabela Dinâmica a seguir mostra o Total de Vendas pela Internet por ano com base no modelo de tabela de exemplo do Adventure Works. Clique com o botão direito do mouse em uma célula com um valor de agregação na medida e clique em Mostrar Detalhes para exibir as linhas de detalhes.

AS_Show_Details

Por padrão, os dados associados na tabela Vendas pela Internet são exibidos. Normalmente, esse comportamento limitado não é significativo para o usuário, pois a tabela poderá não ter as colunas necessárias para mostrar informações úteis, como nome do cliente e informações de pedido. Com as Linhas de Detalhes, você poderá especificar uma propriedade Expressão de Linhas de Detalhes para medidas.

Propriedade Expressão de Linhas de Detalhes para medidas

A propriedade Expressão de Linhas de Detalhes para medidas permite que os autores do modelo personalizem as colunas e as linhas retornadas ao usuário final.

AS_Detail_Rows_Expression_Property

A função SELECTCOLUMNS DAX é comumente usada em uma Expressão de Linhas de Detalhes. O seguinte exemplo define as colunas a serem retornadas para as linhas na tabela Vendas pela Internet no modelo de tabela de exemplo do 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]
)

Com a propriedade definida e o modelo implantado, um conjunto de linhas personalizadas é retornado quando o usuário seleciona Mostrar Detalhes. Ele respeita automaticamente o contexto de filtro da célula selecionada. Neste exemplo, somente as linhas do valor 2010 são exibidas:

AS_Detail_Rows

Propriedade Expressão de Linhas de Detalhes Padrão para tabelas

Além de medidas, as tabelas também têm uma propriedade para definir uma expressão de linhas de detalhes. A propriedade Expressão de Linhas de Detalhes Padrão atua como o padrão para todas as medidas na tabela. Medidas que não têm sua própria expressão definida herdam a expressão da tabela e mostram o conjunto de linhas definido para a tabela. Isso permite a reutilização de expressões e novas medidas adicionadas à tabela mais tarde herdam automaticamente a expressão.

AS_Default_Detail_Rows_Expression

Função DETAILROWS DAX

Uma nova função DAX DETAILROWS que retorna o conjunto de linhas definido pela expressão de linhas de detalhes é incluída nessa versão. Ela funciona da mesma forma que a instrução DRILLTHROUGH no MDX, que também é compatível com as expressões de linhas de detalhes definidas em modelos de tabela.

A consulta DAX a seguir retorna o conjunto de linhas definido pela expressão de linhas de detalhes para a medida ou tabela. Se nenhuma expressão for definida, os dados da tabela Vendas pela Internet serão retornados, pois eles são a tabela que contém a medida.

EVALUATE DETAILROWS([Internet Total Sales])

Segurança em nível de objeto

Esta versão apresenta a segurança no nível do objeto para tabelas e colunas. Além de restringir o acesso a dados de tabela e coluna, nomes confidenciais de tabela e coluna podem ser protegidos. Isso ajuda a impedir que um usuário mal-intencionado descubra uma tabela desse tipo.

A segurança no nível do objeto deve ser definida usando os metadados baseados em JSON, a TMSL (Linguagem de Script de Modelo Tabular) ou o TOM (Modelo de Objeto Tabular).

Por exemplo, o código a seguir ajuda a proteger a tabela Produtos no modelo de tabela de exemplo Adventure Works, definindo a propriedade MetadataPermission da classe TablePermission como Nenhum.

//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);

DMVs (exibições de gerenciamento dinâmico)

As DMVs são consultas em SQL Server Profiler que retornam informações sobre operações de servidor local e integridade do servidor. Esta versão inclui melhorias nas Exibições de Gerenciamento Dinâmico (DMV) para modelos tabulares nos níveis de compatibilidade 1200 e 1400.

DISCOVER_CALC_DEPENDENCY Agora funciona com modelos tabulares 1200 e superiores. Modelos tabulares 1400 e superiores mostram dependências entre partições M, expressões M e fontes de dados estruturadas. Para saber mais, consulte o blog do Analysis Services.

MDSCHEMA_MEASUREGROUP_DIMENSIONS Melhorias são incluídas para essa DMV, que é usada por várias ferramentas de cliente para mostrar a dimensionalidade da medida. Por exemplo, o recurso Explorar em Excel Tabelas Dinâmicas permite que o usuário faça uma busca cruzada para dimensões relacionadas às medidas selecionadas. Essa versão corrige as colunas de cardinalidade, que anteriormente mostravam valores incorretos.

Melhorias do DAX

Uma das partes mais importantes da nova funcionalidade DAX é a nova função OPERADOR IN/CONTAINSROW para expressões DAX. Isso é semelhante ao operador TSQL IN geralmente usado para especificar vários valores em uma cláusula WHERE .

Anteriormente, era comum especificar filtros de vários valores usando o operador lógico OR , como na seguinte expressão de medida:

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

Isso é simplificado com o operador IN :

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

Nesse caso, o operador IN se refere a uma tabela de coluna única com três linhas: uma para cada uma das cores especificadas. Observe que a sintaxe do construtor de tabela usa chaves.

O operador IN é funcionalmente equivalente à função CONTAINSROW :

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

O operador IN também pode ser usado de modo efetivo com construtores de tabela. Por exemplo, a medida a seguir filtra por combinações de cor e categoria do produto:

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" )
        )
    )

Usando o novo operador IN , a expressão de medida acima agora é equivalente à mostrada abaixo:

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

Melhorias adicionais

Além de todos os novos recursos, o Analysis Services, o SSDT e o SSMS também incluem os seguintes aprimoramentos:

  • A hierarquia e a reutilização de coluna surgiram em locais mais úteis na lista de campos Power BI.
  • Relações de data para criar facilmente relações para dimensões de data com base em campos de data.
  • A opção de instalação padrão do Analysis Services agora é para o modo tabular.
  • Novas fontes de dados obter dados (Power Query).
  • Editor DAX do SSDT.
  • Suporte a fontes de dados do DirectQuery existentes para consultas M.
  • SSMS melhorias, como exibição, edição e suporte a scripts para fontes de dados estruturadas.

SQL Server 2016 Analysis Services

SQL Server 2016 Analysis Services inclui muitos novos aprimoramentos que fornecem melhor desempenho, criação de solução mais fácil, gerenciamento automatizado de banco de dados, relações aprimoradas com filtragem cruzada bidirecional, processamento de partição paralela e muito mais. O cerne da maioria dos aprimoramentos para esta versão é o novo nível de compatibilidade 1200 para bancos de dados de modelo tabular.

SQL Server Service Pack 1 (SP1) Analysis Services 2016

Baixe o SQL Server 2016 SP1

O SQL Server 2016 Service SP1 Analysis Services oferece melhor desempenho e escalabilidade por meio de reconhecimento NUMA (acesso não uniforme a memória) e otimização de alocação de memória com base no Intel Threading Building Blocks (Intel TBB). Essa nova funcionalidade ajuda a reduzir o custo total de propriedade (TCO), oferecendo suporte a mais usuários em servidores corporativos em menor quantidade e mais potentes.

Em particular, o SQL Server 2016 SP1 Analysis Services apresenta melhorias nas principais áreas a seguir:

  • Reconhecimento NUMA – para o melhor suporte ao NUMA, o mecanismo na memória (VertiPaq) no Analysis Services agora mantém uma fila de trabalho separada em cada nó NUMA. Isso garante que os trabalhos de verificação de segmento sejam executados no mesmo nó no qual a memória é alocada para os dados do segmento. Observe que o reconhecimento NUMA é habilitado por padrão somente nos sistemas com, pelo menos, quatro nós NUMA. Em sistemas de dois nós, os custos de acesso à memória alocada remota geralmente não garantem a sobrecarga de gerenciamento de especificações numa.
  • Alocação de memória – o Analysis Services foi acelerado com o Intel Threading Building Blocks, um alocador escalonável que fornece pools de memória separados para cada núcleo. À medida que aumenta o número de núcleos, o sistema pode ser dimensionado de forma quase linear.
  • Fragmentação de heap – o alocador escalonável com base no Intel TBB também ajuda a reduzir problemas de desempenho devido à fragmentação de heap que notadamente têm ocorrido com o Heap do Windows.

Teste de desempenho e escalabilidade mostraram ganhos significativos na taxa de transferência de consulta durante a execução do SQL Server 2016 SP1 Analysis Services em servidores corporativos de grande porte com vários nós.

Embora a maioria dos aprimoramentos nesta versão sejam específicos para modelos tabulares, uma série de melhorias foram desenvolvidas para modelos multidimensionais; por exemplo, a otimização da contagem distinta ROLAP para fontes de dados como DB2 e Oracle, suporte a seleção múltipla de drillthrough com Excel 2016 e otimizações em consultas do Excel.

SQL Server Serviços de Análise de DISPONIBILIDADE Geral (GA) de 2016

Modelagem

Desempenho de modelagem aprimorado para modelos de tabela 1200

Para modelos tabulares 1200, as operações de metadados no SSDT são muito mais rápidas do que os modelos tabulares 1100 ou 1103. Em comparação, no mesmo hardware, a criação de uma relação em um modelo definido para o nível de compatibilidade do SQL Server 2014 (1103) com 23 tabelas leva 3 segundos, enquanto a mesma relação em um modelo criado definido para o nível de compatibilidade 1200 leva pouco menos de um segundo.

Modelos de projeto adicionados para modelos de tabela 1200 em SSDT

Nesta versão, você não precisa mais de duas versões do SSDT para compilar projetos do BI e relacionais. OSQL Server Data Tools para Visual Studio 2015 adiciona modelos de projeto para soluções do Analysis Services, incluindo Projetos de Tabela do Analysis Services , usado para compilar modelos no nível de compatibilidade 1200. Outros modelos de projeto do Analysis Services para soluções multidimensionais e de mineração de dados também estão incluídos, mas no mesmo nível funcional (1100 ou 1103) como nas versões anteriores.

Pastas de exibição

As pastas de exibição agora estão disponíveis para modelos de tabela 1200. Definidas no SQL Server Data Tools e renderizadas nos aplicativos cliente como Excel ou Power BI Desktop, as pastas de exibição ajudam a organizar grandes números de medidas em pastas individuais, adicionando uma hierarquia visual para facilitar a navegação em listas de campos.

Filtragem cruzada bidirecional

Uma novidade nesta versão é a abordagem interna para habilitar filtros cruzados bidirecionais em modelos de tabela, o que elimina a necessidade de soluções alternativas manuais de DAX para a propagação de contextos de filtro em relações da tabela. Os filtros são gerados automaticamente apenas quando a direção pode ser estabelecida com um alto grau de certeza. Caso haja ambiguidade na forma de vários caminhos de consulta entre relações de tabela, um filtro não será criado automaticamente. Consulte Filtros cruzados bidirecionais para modelos de tabela no SQL Server 2016 Analysis Services para obter detalhes.

Translations

Agora você pode armazenar metadados traduzidos em um modelo tabular 1200. Metadados do modelo incluem campos para Culture, legendas traduzidas e descrições traduzidas. Para adicionar traduções, use o comando Conversões de Modelo> em SQL Server Data Tools. Consulte traduções em modelos tabulares (Analysis Services) para obter detalhes.

Tabelas coladas

Agora é possível atualizar um modelo de tabela 1100 ou 1103 para 1200 quando o modelo contém tabelas coladas. É recomendável usar SQL Server Data Tools. No SSDT, defina CompatibilityLevel como 1200 e implante em uma instância SQL Server 2017 de SQL Server Analysis Services. Para obter detalhes, consulte Compatibility Level for Tabular models in Analysis Services .

Tabelas calculadas no SSDT

Uma tabela calculada é uma construção exclusivamente de modelos com base em uma expressão DAX ou consulta no SSDT. Quando implantada em um banco de dados, não é possível distinguir uma tabela calculada de tabelas comuns.

Há vários usos para tabelas calculadas, incluindo a criação de novas tabelas para expor uma tabela existente em uma função específica. O exemplo clássico é uma tabela de data que opera em vários contextos (data do pedido, data de remessa e assim por diante). Criando uma tabela calculada para uma determinada função, agora você pode ativar uma relação de tabela para facilitar consultas ou a interação de dados usando a tabela calculada. Outro uso de tabelas calculadas é combinar partes de tabelas existentes em uma tabela totalmente nova, que existe somente no modelo. Consulte Criar uma tabela calculada para saber mais.

Correção de fórmulas

Com a correção de fórmula em um modelo tabular 1200, o SSDT atualizará automaticamente todas as medidas que estiverem fazendo referência a uma coluna ou tabela que foi renomeada.

Suporte para o Visual Studio Configuration Manager

Para dar suporte a vários ambientes, como os ambientes de Teste e de Pré-produção, o Visual Studio permite aos desenvolvedores criar várias configurações de projeto usando o configuration manager. Modelos multidimensionais já tiram proveito disso, mas modelos de tabela não. Nessa versão, agora você pode usar o Configuration Manager para implantar em servidores diferentes.

Gerenciamento de instância

Administrar modelos tabulares 1200 no SSMS

Nessa versão, uma instância do Analysis Services no modo de servidor de tabela pode executar modelos de tabela em qualquer nível de compatibilidade (1100, 1103, 1200). O SQL Server Management Studio mais recente é atualizado para exibir as propriedades e fornecer administração de modelos de banco de dados para modelos de tabela no nível de compatibilidade 1200.

Processamento paralelo para várias partições de tabela em modelos de tabela

Essa versão inclui uma nova funcionalidade de processamento paralelo para tabelas com duas ou mais partições, aumentando o desempenho de processamento. Não há nenhuma configuração para esse recurso. Para obter mais informações sobre como configurar partições e tabelas de processamento, consulte partições de modelo de tabela.

Adicionar contas de computador como Administradores no SSMS

SQL Server Analysis Services administradores agora podem usar SQL Server Management Studio para configurar contas de computador para serem membros do grupo de administradores SQL Server Analysis Services. Na caixa de diálogo Selecionar Usuários ou Grupos , defina os Locais para o domínio dos computadores e, em seguida, adicione o tipo de objeto Computers . Para obter mais informações, confira Conceder direitos de administrador de servidor a uma instância de Analysis Services.

DBCC para Analysis Services

O DBCC (verificador de consistência de banco de dados) é executado internamente para detectar possíveis problemas de dados corrompidos no banco de dados de carga, mas também pode ser executado sob demanda caso você suspeite de problemas em seus dados ou modelo. O DBCC executa verificações diferentes dependendo do modelo ser tabular ou multidimensional. Consulte o DBCC (Verificador de Consistência de Banco de Dados) para obter detalhes sobre bancos de dados tabulares e multidimensionais do Analysis Services .

Atualizações de Eventos Estendidos

Esta versão adiciona uma interface gráfica do usuário a SQL Server Management Studio para configurar e gerenciar SQL Server Analysis Services Eventos Estendidos. Você pode configurar fluxos de dados ativos para monitorar a atividade do servidor em tempo real, manter os dados de sessão carregados na memória para análise mais rápida ou salvar fluxos de dados em um arquivo para análise offline. Para obter mais informações, consulte Monitorar o Analysis Services com Eventos Estendidos do SQL Server.

Scripting

PowerShell para modelos de tabela

Esta versão inclui aprimoramentos do PowerShell para modelos de tabela no nível de compatibilidade 1200. Você pode usar todos os cmdlets aplicáveis, além de cmdlets específicos para o modo Tabular: Invoke-ProcessASDatabase e Invoke-ProcessTable.

Operações de banco de dados de script de SSMS

No SSMS (SQL Server Management Studio) mais recente, o script agora está habilitado para comandos de banco de dados, inclusive Create, Alter, Delete, Backup, Restore, Attach e Detach. A saída é em TMSL (linguagem de script de modelo de tabela) em JSON. Consulte a Referência de TMSL (Linguagem de Script de Modelo Tabular) para obter mais informações.

Tarefa Executar DDL do Analysis Services

ATarefa Executar DDL do Analysis Services agora também aceita comandos de TMSL (linguagem de script de modelo de tabela).

Cmdlet do PowerShell do SSAS

O cmdlet do PowerShell do SSAS Invoke-ASCmd agora aceita comandos de TMSL (linguagem de script de modelo de tabela). Outros cmdlets do PowerShell do SSAS serão atualizados em uma versão futura para usar os novos metadados de tabela (exceções serão indicadas nas notas de versão). Para obter detalhes, consulte Analysis Services PowerShell Reference .

A TMSL (linguagem de script de modelo de tabela) tem suporte no SSMS

Usando a versão mais recente do SSMS, agora você pode criar scripts para automatizar a maioria das tarefas administrativas para modelos de tabela 1200. Atualmente, as seguintes tarefas podem ser incluídas no script: Process em qualquer nível, além de CREATE, ALTER e DELETE no nível do banco de dados.

Funcionalmente, TMSL é equivalente à extensão de ASSL XMLA que fornece definições de objeto multidimensional, exceto pelo fato de que o TMSL usa descritores nativos como model, tablee relationship para descrever metadados tabulares. Consulte a Referência de TMSL (Linguagem de Script de Modelo Tabular) para obter detalhes sobre o esquema.

Um script gerado com base em JSON para um modelo de tabela pode ter a seguinte aparência:

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

O conteúdo é um documento JSON que pode ser tão mínimo quanto o exemplo mostrado acima ou altamente embelezado com o conjunto completo de definições de objeto. A Referência de TMSL (Linguagem de Script de Modelo Tabular) descreve a sintaxe.

No nível do banco de dados, os comandos CREATE, ALTER e DELETE produzirão o script TMSL de saída na janela XMLA familiar. Outros comandos, como o Process, também podem ser com script nesta versão. O suporte a scripts para muitas outras ações pode ser adicionado em uma versão futura.

Comandos programáveis Descrição
create Adiciona um banco de dados, conexão ou partição. O equivalente no ASSL é CREATE.
createOrReplace Atualiza uma definição de objeto existente (banco de dados, conexão ou partição), substituindo uma versão anterior. O equivalente no ASSL é ALTER com AllowOverwrite definido para true e ObjectDefinition para ExpandFull.
excluir Remove uma definição de objeto. O equivalente no ASSL é DELETE.
refresh Processa o objeto. O equivalente no ASSL é PROCESS.

DAX

Edição de fórmula do DAX aprimorada

As atualizações na barra de fórmulas ajudam você a escrever fórmulas com mais facilidade diferenciando funções, campos e medidas usando a coloração de sintaxe, ela fornece sugestões inteligentes de função e campo e informa se partes da expressão DAX estão erradas usando alternâncias de erro. Ele também permite que você use várias linhas (Alt + Enter) e recuo (Tab). A barra de fórmulas agora também permite que você escreva comentários como parte de suas medidas, basta digitar "//" e tudo depois desses caracteres na mesma linha será considerado um comentário.

Variáveis DAX

Esta versão agora inclui suporte a variáveis em DAX. As variáveis agora podem armazenar o resultado de uma expressão como uma variável nomeada, que pode ser passada como um argumento para outras expressões de medida. Depois que os valores resultantes tiverem sido calculados para uma expressão variável, esses valores não serão alterados, mesmo que a variável seja referenciada em outra expressão. Para obter mais informações, consulte Função VAR.

Novas funções do DAX

Nessa versão, o DAX apresenta mais cinquenta novas funções para dar suporte a cálculos mais rápidos e visualizações aprimoradas no Power BI. Para saber mais, consulte Novas funções DAX.

Salvar medidas incompletas

Agora você pode salvar medidas DAX incompletas diretamente em um projeto de modelo de tabela 1200 e abri-lo novamente quando você estiver pronto para continuar.

Aprimoramentos DAX adicionais

  • Cálculo de não vazio: reduz o número de verificações necessárias para não vazio.
  • Fusão de medida: várias medidas da mesma tabela são combinados em um único mecanismo de armazenamento (consulta).
  • Agrupar conjuntos: quando uma consulta pede medidas em diversas granularidades (Total/Ano/Mês), uma única consulta é enviada no nível mais baixo e o restante das granularidades são derivadas do nível mais baixo.
  • Eliminação de junção redundante: uma consulta única para o mecanismo de armazenamento retorna as colunas de dimensão e os valores de medida.
  • Avaliação estrita de IF/SWITCH: uma ramificação cuja condição é falsa não resultará em consultas do mecanismo de armazenamento. Anteriormente, as ramificações foram avaliadas adiantadamente, mas os resultados eram descartados posteriormente.

Desenvolvedor

Namespace Microsoft.AnalysisServices.Tabular para programação de 1200 tabular no AMO

O AMO (Analysis Services Management Objects) é atualizado para incluir um novo namespace tabular para gerenciar uma instância do Modo Tabular do SQL Server 2016 Analysis Services, bem como fornecer a linguagem de definição de dados para a criação ou modificação de modelos de tabela 1200 programaticamente. Visite Microsoft.AnalysisServices.Tabular para ler sobre a API.

Atualizações do AMO (Objetos de Gerenciamento do Analysis Services)

O AMO (Objetos de Gerenciamento do Analysis Services) foi fatorado novamente para incluir um segundo assembly, Microsoft.AnalysisServices.Core.dll. O novo assembly separa as classes comuns como Server, Database e Roles que têm ampla aplicação no Analysis Services, independentemente do modo de servidor. Anteriormente, essas classes eram parte do assembly Microsoft.AnalysisServices original. Movê-las para um novo assembly abre caminho para extensões futuras para o AMO, com divisão clara entre as APIs genéricas e as de contexto específico. Os aplicativos existentes não são afetados pelos novos assemblies. No entanto, se você optar por recompilar os aplicativos que usam o novo assembly do AMO por qualquer motivo, certifique-se de adicionar uma referência ao Microsoft.AnalysisServices.Core. De modo similar, os scripts do PowerShell que carregam e chamam o AMO agora devem carregar o Microsoft.AnalysisServices.Core.dll. Não se esqueça de atualizar os scripts.

Editor de JSON para arquivos BIM

A Exibição de Código no Visual Studio 2015 agora renderiza o arquivo BIM no formato JSON para modelos de tabela 1200. A versão do Visual Studio determina se o arquivo BIM é renderizado em JSON por meio do Editor de JSON interno ou como texto simples.

Para usar o editor de JSON, com a capacidade de expandir e recolher seções do modelo, será necessária a versão mais recente do SQL Server Data Tools e o Visual Studio 2015 (qualquer edição, incluindo a Community edition gratuita). Para todas as outras versões do SSDT ou Visual Studio, o arquivo BIM é renderizado em JSON como texto simples. No mínimo, um modelo vazio conterá o seguinte JSON:

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

Aviso

Evite editar o JSON diretamente. Fazer isso pode corromper o modelo.

Novos elementos no esquema MS-CSDLBI 2.0

Os elementos a seguir foram adicionados ao tipo complexo TProperty definido no esquema [MS-CSDLBI] 2.0:

Elemento Definição
DefaultValue Uma propriedade que especifica o valor usado ao avaliar a consulta. A propriedade DefaultValue é opcional, mas ela será selecionada automaticamente se os valores do membro não puderem ser agregados.
Estatísticas Um conjunto de estatísticas dos dados subjacentes que está associado à coluna. Essas estatísticas são definidas pelo tipo complexo TPropertyStatistics e serão fornecidas apenas se elas não forem computacionalmente caras para gerar, conforme descrito na seção 2.1.13.5 do documento Formato de Arquivo de Definição de Esquema Conceitual com Anotações de Business Intelligence.

DirectQuery

Nova implementação do DirectQuery

Esta versão traz melhorias significativas no DirectQuery para modelos de tabela 1200. Segue um resumo:

  • O DirectQuery agora gera consultas mais simples, que fornecem um melhor desempenho.
  • Controle extra sobre a definição de conjuntos de dados de exemplo usados para design e teste de modelo.
  • A RLS (segurança em nível de linha) agora tem suporte em modelos 1200 no modo DirectQuery. Anteriormente, a presença da RLS evitava a implantação de um modelo de tabela no modo DirectQuery.
  • As colunas calculadas agora têm suporte em modelos tabulares 1200 no modo DirectQuery. Anteriormente, a presença de colunas calculadas evitava a implantação de um modelo de tabela no modo DirectQuery.
  • Otimizações de desempenho incluem a eliminação de junções redundantes para VertiPaq e DirectQuery.

Novas fontes de dados para o modo DirectQuery

As fontes de dados com suporte para modelos tabulares 1200 no modo DirectQuery agora incluem Oracle, Teradata e Microsoft Analytics Platform (anteriormente conhecida como Parallel Data Warehouse). Para saber mais, consulte o Modo DirectQuery.

Versões anteriores

SQL Server 2014 Analysis Services