Modelagem Estrela

Quanto falamos de um ambiente OLTP, ou seja, aquele ambiente, aquela instancia, aquelas tabelas, que são utilizadas para procedimento normais do dia-a-dia, estamos falando de um ambiente normalizado, mais comum na terceira ou quarta normal formal, uma vez que chegar até a quinta possa ser exagero.
Porem, realizar analise de dados em um ambiente OLTP pode ser muito custoso, pois ficar fazendo o relacionamento de muitas tabelas pode ser um custo talvez desnecessario para essa instancia SQL Server, ai que entra os ambientes OLAP e modelagem desnormalizada.
Um ambiente OLAP é um ambiente preparado para analise de dados, então basicamente temos 2 operações nesse ambiente
– Inserção de dados em massa
– Muitos selects
Ja em um ambiente OLTP:
– Muitas pequenas inserções de dados
– Alterações
– Deleções
Todos sabemos que operações DML sofrem com o abuso de indices que algumas tabelas possuem, portanto, com certeza teremos muitos mais indices em nosso ambiente OLAP (Que sera para select basicamente) do que em nosos ambiente OLTP.
Algumas dicas para melhora de performance na inserção de dados em ambiente OLAP:
– Uma tecnica que traz muita performance mas se torna inviavel em um ambiente OLTP, é a utilização de discos em RAID0, cujo qual não te da nenhuma garantia dos dados, ja em um ambiente OLAP, é possivel sim, vamos supor um exemplo:
Em um ambiente OLAP, nenhum dado é novo, todos ja vem de nosso ambiente OLTP, portanto, podem-se teoricamente perder os dados, basta se reprocessar, e na pior das hipoteses, um ambiente OLAP por algumas horas (Restore de um backup previo ao crash) não é tão critico quanto o ambiente OLTP fora.
– Antes da inserção: Desabilitar os indices e depois reabilita-los
– Não colocar valores muito pequenos no auto-growth do seu arquivo de dados e de log, pois toda vez que uma inserção for feita, o SQL Server precisara pedir ao sistema operacional mais disco, o que pode causar uma imensa queda de performance.

Voltando ao assunto principal do post: o Ambiente estrela.
Se formos pensar literalmente em uma estrela temos basicamente um centro e suas pontas, ou seja, temos um ponto unico e central que esta ligando todas as pontas, porem, uma ponta não possui ligação com a outra.
Nessa linha de pensamento, temos nossas tabelas FATO e nossas TABELAS DIMENSÕES, no caso, nossa tabela central, que liga todas as outras, são nossa tabela fato, ja as tabelas que seriam a ponta da estrela, são nossas tabelas dimensões.

Como explicação das tabelas fatos e dimensões:
FATO: Uma tabela FATO possui a menor granularidade necessaria para um relatorio, ela é constituida de muitas chaves estrangeiras, nenhuma chave primaria, e representam uma verdade em seu negocio, como por exemplo uma venda.
DIMENSÕES: Uma tabela DIMENSAO possui uma chave primaria unica, e muitos atributos e linhas, elas são uma extensão de alguns dados de sua tabela FATO, vamos supor: uma venda, ocorreu em algum lugar, por alguem, só aqui podemos ter uma dimensão de Loja e uma de Clientes.

Voces talvez percebam que em uma modelagem estrela de BI, havera sim muitas repetições de dados, e isso não é ruim, com certeza voce tera uma maior utilização de seu espaço em disco, em compensação, sua querys trarão um retorno de forma mais rapida.

Indices em modelagem estrela
Como ja era de se imaginar, em um ambiente de relatorio, usamos muitos indices, porem, temos que tomar cuidado, pois não é simplismente colocar indices em todas as suas tabelas e pronto, como ponto inicial, eu diria que alem do indice Cluster em suas tabelas DIMENSÕES devido a primary key, sera necessario um indice em cada chave de negocio, ou seja, Bussiness Key, aquele campo que é constantemente utilizado por seus usuarios de negocio, por exemplo:
Um indices cluster na coluna ID de loja, porem um usuario de negocio, não sabe o ID da loja, e sim o nome dela, ou o numero da filial, enfim, é necessario criar um indice no campo, pelo qual um usuario de negocio saiba realmente pesquisar.

Anúncios
Post a comment or leave a trackback: Trackback URL.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: