Clique no banner para conhecer e adquirir o meu treinamento de Bancos de Dados no Azure

Analysis Services – Como utilizar XLMA ou Powershell para processar cubos e dimensões via linha de comando (T-SQL) ou Job do SQL Agent

Post Views 2,528 views
Reading time 7 minutes

Olá pessoal,
Como vocês estão hoje ?

Neste post, vou demonstrar como utilizar a linguagem XLMA (XML for Analysis) para conseguir processar cubos e dimensões do Analysis Services através de queries Transact-SQL (T-SQL), que podem ser utilizadas em um job do SQL Agent para automatizar esse processamento, que, em conjunto com cargas ETL para geração dos dados da dimensões e fatos, permitem que você automatize todo o processo de carga e atualização de seus cubos do Analysis Services.

Para que seja possível realizar as rotinas descritas neste post, você precisará ter criado um Linked Server de integração entre o SQL Server e o Analysis Services (Aqui no exemplo, eu chamo esse objeto de INTERFACE_CUBOS).

Caso você não tenha criado esse Linked Server e não saiba como fazer isso, acesse o post Analysis Services (SSAS) – Como consultar informações e processar comandos via linha de comando (XLMA) pelo SQL Server e siga o passo a passo para criá-lo.

Caso você não esteja muito familiarizado com o SQL Server Analysis Services (SSAS) e gostaria de aprender como criar seu primeiro Cubo Multidimensional, saiba mais acessando o post Analysis Services – Como criar seu primeiro cubo multidimensional no modelo estrela (Star schema).

Tipos de Processamento

Antes de demonstrar como realizar o processamento de cubos e dimensões via linha de comando, preciso explicar o que é cada tipo de processamento.

Process Default: Realiza o menor esforço possível (com a menor quantidade de tarefas) para processar a estrutura e os dados. O servidor converte esta opção na mais adequada à necessidade do seu ambiente, neste momento.
Aplicável: Todos Objetos

Process Full: Processa toda a estrutura e os dados, excluindo e recriando os objetos. Isso significa que o processamento discarta tudo o que existe e cria novamente a estrutura analítica e depois processa os dados para esta estrutura. Se algum novo atributo é adicionado à dimnensão, deve rolar um process full.
Aplicável: Todos Objetos

Process Update: Quando acontece alguma alteração de atributos na dimensão, seja adicionando apagando ou atualizando, este processo deve ser executado. Tem inteligência suficiente para processar somente o diferencial da estrutura e dos dados que são novos, porém é mais lento (para aplicar a “inteligência”).
Aplicável: Dimensão

Process Data: Descarta todos os dados armazenados e processa todos os dados novamente, ignorando se houve alteração na estrutura e também nos índices. O foco são só os dados.
Aplicável: Dimensão, Cubo, Measure e Partição

Process Add (Incremental): Processa somente os novos dados, ignorando os dados que já existem e também qualquer alteração nova na estrutura ou índices.
Aplicável: Dimensão e Partição

Como gerar o XLMA para processar Cubos e Dimensões do Analysis Services pelo Management Studio (SSMS)

Uma forma muito simples de se conseguir gerar scripts XLMA para automatizar o processamento de dimensões, cubos, databases e particições, é através do SQL Server Management Studio, como vou mostrar abaixo:

1) Clique em “Connect” > “Analysis Services…” e digite os dados de conexão do Analysis Services

2) Expanda a pasta “Dimensions” (como na figura abaixo) e aperte a tecla F7 (Object Explorer Details) para expandir os detalhes dos objetos.

3) Selecione as dimensões que você deseja processar, clique com o botão direito e selecione a opção “Process”.

4) Selecione o modo de processamento que você deseja para cada uma de suas partições. No exemplo, escolhi o modo Process Full para as 3 dimensões.

5) Após configurar o modo de processamento de cada dimensão, clique no botão “Script” para gerar o XLMA para essa ação.

6) Pronto. Seu XLMA foi gerado. Você também pode repetir isso para processamento de cubos, partições, databases, etc.

7) Agora você pode criar Jobs utilizando o seu XLMA para automatizar o processamento do Analysis Services.

8) Após o job ter sido criado, basta executá-lo para processar os dados.

Processando Cubos e Dimensões do Analysis Services via linha de comando utilizando T-SQL (XLMA)

Por muitas vezes na vida de um analista de BI, ele vai precisar automatizar o processamento de informações de cubos e dimensões, de modo que as informações fiquem sempre atualizadas. Para isso, você pode utilizar Tasks do Integration Services (SSIS) ou o XLMA, que permite criar e executar scripts pelo SQL Server, permitindo que você crie jobs com esses comandos facilmente e com um poder de personalização da rotina muito maior que o SSIS.

Caso você não saiba como executar scripts XLMA pelo SQL Server, dê uma lida no post Analysis Services (SSAS) – Como consultar informações e processar comandos via linha de comando (XLMA) pelo SQL Server.

Como processar uma dimensão de um cubo por linha de comando

Como processar várias dimensões de um cubo por linha de comando

Como processar um cubo por linha de comando

Como processar cubos do Analysis Services utilizando PowerShell

Caso você seja fã do criar scripts shell, vou apresentar também uma solução que encontrei neste link para processar cubos e dimensões usando PowerShell.

Como processar todas as dimensões de um cubo utilizando PowerShell

Como processar um cubo utilizando Powershell

Automatizando o processamento dos cubos do Analysis Services com Powershell

Para conseguir automatizar o processamento dos Cubos utilizando PowerShell, basta criar um Step num job do SQL Server Agent conforme demonstro abaixo e colar o script Powershell no campo “Command”:

And that's it, folks!
Espero que tenham gostado do post e até mais!