top of page

Cubo de dados

  • Foto do escritor: Amanda Nascimento
    Amanda Nascimento
  • 8 de jun.
  • 7 min de leitura

Atualizado: 5 de jul.

Um cubo OLAP (Online Analytical Processing) é uma estrutura de dados que permite consultas rápidas em grandes volumes de dados organizados em fatos (medidas) e dimensões (categorias de análise).


Componentes de um Cubo


  • Fato: Tabela central com as métricas quantitativas (ex: vendas, receita, quantidade).

  • Dimensões: Tabelas auxiliares com atributos de categorização (ex: tempo, produto, cliente).

  • Medidas: Agregações matemáticas aplicadas às colunas da tabela fato (ex: soma de vendas).

  • Hierarquias: Níveis dentro de uma dimensão (ex: Ano > Trimestre > Mês).




Visual Studio e Analysis Service



Precisaremos instalar as ferramentas abaixo antes de iniciar a criação do cubo:


  • SQL Server instalado (com o SQL Server Analysis Services - Multidimensional).

  • Banco de dados relacional pronto (modelo estrela ou floco de neve).

  • Visual Studio instalado com a extensão "SQL Server Data Tools (SSDT)".

  • Permissões para se conectar ao banco de dados e SSAS.



Para instalação do visual studio clique aqui para saber mais.

Para instalação do Native Client, clique aqui

Para instalação de extensões (SSAS) clique aqui para saber mais.



Tipos de cubo



Modelo tabular


O modelo tabular é uma abordagem moderna para análise de dados, mais alinhada ao Power BI e com foco em desempenho e simplicidade. Ele utiliza um modelo relacional em memória com compressão por xVelocity (VertiPaq) e cálculos feitos em DAX, o que facilita o desenvolvimento e a integração com ferramentas de autosserviço. É ideal para projetos novos, onde se busca agilidade, manutenção simplificada e boa performance sem necessidade de estruturas complexas.



Cubos multidimensionais (OLAP)


São mais robustos e indicados para cenários corporativos com grandes volumes de dados históricos, cálculos complexos e hierarquias rígidas. Baseados em MDX, eles oferecem uma modelagem avançada, sendo mais apropriados quando a empresa já possui uma infraestrutura consolidada e demanda alta sofisticação analítica.


A escolha entre os dois depende das necessidades do projeto: simplicidade e velocidade favorecem o modelo tabular, enquanto complexidade e tradição podem justificar o uso de cubos multidimensionais.


Característica

Cubo Multidimensional (OLAP)

Modelo Tabular

Armazenamento

MOLAP (Multidimensional OLAP)

In-memory (VertiPaq) ou DirectQuery

Linguagem de cálculo

MDX (Multidimensional Expressions)

DAX (Data Analysis Expressions)

Modelo de dados

Esquema estrela/floco com tabelas relacionais

Modelo relacional simples (sem hierarquia fixa)

Desempenho

Muito bom em dados históricos complexos

Excelente para cargas em memória e dados recentes

Facilidade de uso

Mais técnico, curva de aprendizado maior

Mais amigável, similar ao Power BI

Ferramenta cliente comum

Excel, SSMS (com suporte a MDX)

Excel, Power BI, SSMS

Atualizações

Menos atualizações e recursos novos

Mais atualizado pela Microsoft

Cenários ideais

Grandes volumes com hierarquias e cálculos complexos

Soluções ágeis, com foco em performance e simplicidade



Criando o projeto tabular


Depois de ter criado nossa instância SSAS_Tabular (clique aqui) e de ter habilitado o SSAS para se conectar com nosso servidor (localhost), podemos seguir o passo a passo abaixo:


Abra o Visual Studio e clique em Criar um projeto...

Seleciono: Projeto de Tabela do Analysis Services



Na próxima tela, dê um nome ao seu projeto, confira o local de armazenamento e sugiro selecionar a opção: "Colocar a solução e o projeto no mesmo diretório"



Workspace Integrado (recomendado para desenvolvimento local):

  • Usa um banco de dados em memória incorporado ao Visual Studio

  • Não requer instância separada do Analysis Services

  • Ideal para desenvolvimento inicial e testes


Servidor do Workspace (para ambientes mais avançados):


  • Requer uma instância dedicada do Analysis Services

  • Necessário para implantação em equipe ou ambientes de produção

  • Oferece mais recursos de gerenciamento



Conferindo o nível de compatibilidade


Para ter certeza em qual opção selecionar, podemos fazer uma pesquisa rápida no nosso banco de dados digitando o script abaixo.

No meu caso retornou versão 16, por este motivo, estou selecionando no visual studio SQL Server 2022.



SELECT 

    SERVERPROPERTY('ProductVersion') AS 'Versão Completa',

    SERVERPROPERTY('ProductLevel') AS 'Nível do Serviço (SP)',

    SERVERPROPERTY('Edition') AS 'Edição';


Versão do SQL Server

Número da Versão

Nível de Compatibilidade Tabular

SQL Server 2022

16.x

1600

SQL Server 2019

15.x

1500

SQL Server 2017

14.x

1400

SQL Server 2016

13.x

1200

SQL Server 2014

12.x

1100


É possível fazer esta consulta pelo Power Shell também, digitando:

Invoke-Sqlcmd -Query "SELECT SERVERPROPERTY('ProductVersion')" -ServerInstance "nome servidor"


Via TMSL (Tabular Model Scripting Language)

Execute no SSMS conectado ao SSAS:


{

"explore": "Databases",

"context": {

"database": "NomeDoSeuBanco"

}

}


Após criar o projeto, será aberto o arquivo model.bin (é o designer do modelo tabular) no visual studio, e na pasta, automaticamente serão criados estes arquivos:


Com o arquivo model.bin aberto (para abrir dê duplo clique em "Gerenciador de Soluções")


Se a guia "gerenciador de soluções", não estiver aparecendo no canto superior direito, clique na guia Exibir e selecione (não esqueça de fixar). Recomendo também já deixar fixado as guias: Gerenciador de Modelos Tabular e Propriedades pois usaremos bastante.


Clico com o botão direito em Fonte de Dados e clico em Nova Fonte de Dados...


Posso me conectar com arquivos em Excel, csv, xml, json, Banco de dados SQL Server, Banco de dados SQL do Azure, SharePoint, Acess, MySQL, Oracle database, etc. Neste exemplo, vou me conectar no meu banco local do sql server e por isso, preciso habilitar o usuário da minha instância (clique aqui para saber mais).



Criando o projeto multidimensional


Depois de ter criado nossa instância SSAS_Mult (clique aqui) e de ter habilitado o SSAS para se conectar com nosso servidor (localhost), podemos seguir o passo a passo abaixo:


Abra o Visual Studio e clique em Criar um projeto...

Seleciono: Projeto multidimensional do Analysis Services




Em "gerenciador de soluções", não estiver aparecendo no canto superior direito, clique na guia Exibir e selecione (não esqueça de fixar). Recomendo também já deixar fixado as guias: Gerenciador de Modelos Tabular e Propriedades pois usaremos bastante.


Clico com o botão direito em Fonte de Dados e clico em Nova Fonte de Dados...

Na tela abaixo o meu já apareceu localhost.amanda, mas mesmo se tiver aparecendo em branco no seu, clique em Nova...



Se você não estiver instalado o Native Client, ele não irá aparecer nesta lista...

Para instalação do Native Client, clique aqui

Insira o nome do seu servidor SQL Server e o nome da database que tenha criado com as tabelas que deseja carregar para o cubo.


Após preencher com seus dados e testar a conexão, clique em Ok, e agora sim em Next



Insira seu usuário windows e senha para logar


Veja que o nosso arquivo .ds foi criado.

Agora, clico com o botão direito em "Exibições da Fonte de Dados" e em Nova Exibição da Fonte de Dados...



Aqui definimos como serão criados os relacionamentos lógicos


Selecione as dimensões e fatos que irão compor esse cubo e clique no botão marcado para adicionar as tabelas físicas no Cubo.



Digite o nome da visualização que você deseja para finalizar a criação



Criando relacionamento entre as tabelas fato e dimensão


Com o arquivo .dsv criado. Dê dois cliques para abrir.

O arquivo .dsv não armazena dados, ele apenas desenha a estrutura lógica do modelo analítico com base na fonte de dados conectada. Ele funciona como um intermediário entre a fonte de dados real (Data Source) e o cubo multidimensional que será criado.

Se você já usou Power BI ou SSAS Tabular, pode pensar nele como o "model view" do Power BI Desktop, onde você vê e organiza as tabelas e relacionamentos antes de criar medidas e visualizações.



Diferente do Power bi que cria os relacionamentos automáticos, aqui precisaremos criar os relacionamentos de forma manual.

Você pode criar os relacionamentos lógicos clicando na coluna da Foreign Key na Fato e arrastando para a coluna da Primary Key na dimensão. Após concluir a ação, caso não exista uma Foreign Key criada na base de dados, você verá essa mensagem de alerta, apenas clique em ok.





Criando um cubo


Clique com o botão direito em Cubos, Novo Cubo...


Selecione a nossa tabela fato e clique em Next


Depois clique em Next, Next e em Concluir...




Processando o cubo


Antes de iniciar o processamento do Cubo, precisamos definir a URL do Deploy do nosso Cubo. Para isso, clique com o botão direito na solução (teste_site) e seleciona a opção propriedades, em Implantação (deploy) confirme se o nome do servidor esta correto.


Veja que o nome do servidor deverá ser a instância no SSAS que criei, e esta instância tem que ser multidimensional. (clique aqui para saber mais).


Clique com o botão direito no arquivo .cube e clique em processar



Tipos 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



Qualquer alteração que seja feita no Cubo, precisará que ele seja reprocessado. Se você fizer um Process Full em uma dimensão, você precisará obrigatoriamente executar um Process Full no Cubo também.



Abrindo o cubo de dados no SSMS


Clique em conectar, selecione a opção Analysis Service e coloque o nome da instância que criou no SSAS.



© 2017-2025  Criado e desenvolvido por Amanda Nascimento

  • Discord
  • GitHub
  • youtube
  • LinkedIn Amanda
bottom of page