Introdução
Fala pessoal!
Neste post eu gostaria de mostrar para vocês como alterar o DeploymentModel da instância entre Multidimensional e Tabular após a instância ter sido criada, sem precisar ter que criar uma nova instância com o modo que você quer.
Isso é útil em casos em que você acabou instalando o modo errado ou quer alterar com o menor esforço possível.
Tabular ou Multidimensional?
Como os cubos criados nos modos Tabular e Multidimensional não são compatíveis entre si, você precisará apagar os cubos existentes antes de realizar essa alteração, então não considere esse post como uma migração.
Caso você queira migrar os cubos de Tabular para Multidimensional ou migrar de Multidimensional para Tabular (altamente recomendável), você precisará realizar essa alteração mencionada nesse post, e com a instância alterada e sem nenhum cubo criado, você precisará criar um novo projeto para cada database/cubo no modo desejado, criar o cubo novamente do zero e publicar.
Não conheço um caminho mais fácil ou rápido para fazer essa migração de cubos sem ter que recriá-lo do zero num projeto que utilize o modo para o qual você deseja migrar.
E aí vai a minha recomendação de sempre utilizar o modo Tabular do Analysis Services, a não ser que haja algum impedimento técnico para não fazê-lo.
Vantagens de utilizar o modo tabular:
- Tecnologia muito mais nova e amplamente suportada pela Microsoft
- É mais fácil para desenvolver
- É mais rápido para desenvolver
- Possui muito mais documentação e material na comunidade técnica
- Utiliza DAX para realizar os cálculos (Multidimensional usa o complexo e pouco documentado MDX)
- Pode utilizar o PowerQuery para fazer transformações
- Comprime os dados cerca de 3x mais que o modo Multidimensional
- Suporta edições com o Tabular Editor
- Suporta criar novas medidas pelo Power BI Desktop quando conectado no modo Live Connection
- Não requer duplicação de dados para utilizar funções de DISTINCT (Multidimensional cria vários grupos de medidas para isso)
- Mesma engine do Azure Analysis Services e Power BI
- É fácil migrar o modelo para o Power BI ou Azure Analysis Services
Caso queira saber mais detalhes sobre Tabular vs Multidimensional, veja um vídeo que eu fiz explicando essas diferenças:
Qual o DeploymentModel da instância atual?
Para identificar qual o deploymentModel da instância atual, abra o SQL Server Management Studio (ssms.exe)
Na tela do Object Explorer, clique em “Connect” e depois em “Analysis Services”
Conecte na instância do Analysis Services que você quer alterar o modo de deployment
Na tela do Object Explorer, clique sobre a instância do Analysis Services, aperte o botão direito do mouse e selecione a opção “Properties”
Na tela de propriedades, basta você olhar para a valor da propriedade “Server mode” para saber se é Tabular ou Multidimensional.
Como alterar o DeploymentModel da instância entre Multidimensional e Tabular
Para alterar o DeploymentModel da instância entre Multidimensional e Tabular, primeiro precisamos remover ou desanexar todos os cubos existentes, uma vez que não há compatibilidade entre os cubos tabulares e multidimensionais. Sugiro realizar um backup de todos os cubos antes.
Após realizar o backup dos cubos e desanexar ou apagar os cubos existentes, acesse a pasta “Config” da instância do Analysis Services que você quer alterar. Geralmente essa pasta é “C:\Program Files\Microsoft SQL Server\MSAS<Versao>.<ID_INSTANCIA>\OLAP\Config”.
No meu caso, o caminho é o “C:\Program Files\Microsoft SQL Server\MSAS16.SQL2022\OLAP\Config”, onde a versão do SQL Server é a 16 (SQL 2022) e o ID da instância é o “SQL2022”.
Copie o arquivo “msmdsrv.ini” para a sua área de trabalho ou outro diretório que você tenha acesso de escrita (ou pode editar nesse caminho mesmo, caso utilize um editor como o Notepad++ e uma extensão de Save as Admin).
Abra o arquivo “msmdsrv.ini” que você copiou e modifique o valor da tag “DeploymentMode” para o tipo que você quer, onde:
- 0 = Multidimensional / Datamining
- 1 = Sharepoint
- 2 = Tabular
No meu caso, eu vou alterar de Tabular para Multidimensional (apenas para demonstração), e por isso, vou alterar o valor de 2 (Tabular) para 0 (Multidimensional).
Agora copie de volta o arquivo que você editou para o diretório original de onde você havia copiado, substituindo o arquivo existente.
O próximo passo é reiniciar o serviço do Analysis Services. Para isso, acesse o “SQL Server Configuration Manager”
Clique no menu “SQL Server Services”, no canto esquerdo, selecione o serviço do SQL Server Analysis Services que está rodando a instância que você irá mover os cubos, clique com botão direito e selecione a opção “Restart”, para reiniciar o serviço.
Pronto! Agora o tipo do Analysis Services foi alterado. Vamos visualizar as propriedades da instância do Analysis Services novamente
E conforme está demonstrado no print abaixo, o modo foi alterado com sucesso.
Vale lembrar que essa solução NÃO é suportada oficialmente pela Microsoft. Use por sua conta e risco.
Caso você tente desanexar o cubo antes da alteração do tipo da instância, faça essa alteração e tente anexar novamente o cubo (que não é compatível), irá ver a mensagem de erro abaixo:
Não conheço um caminho mais fácil ou rápido para fazer essa migração de cubos sem ter que recriá-lo do zero num projeto que utilize o modo para o qual você deseja migrar.
E é isso aí, pessoal!
Espero que tenham gostado dessa dica e até a próxima.