terça-feira, 22 de abril de 2014

BI: Introdução a Snowflake e Star Schema

Antes de criar um Data Warehouse, você precisa conhecer alguns padrões de designer comumente utilizados para DW, chamados “Star” e “Snowflake” Schema. Criados na década de 80, particularmente o Star Schema é largamente utilizado e se tornaram um padrão informal para todos os tipos de aplicações BI.


Imagine uma aplicação de negócios comum, onde você precise criar um relatório de vendas, que contenha produtos, fornecedores, endereço dos fornecedores, clientes e alguns outros detalhes. Geralmente este tipo de aplicação terá um banco normalizado e para um relatório simples como esse, você precisará de relacionar várias tabelas, criar múltiplos Joins. Pense agora nesse cenário, sabendo que muitas vezes este banco de dados terá tabelas com nomes confusos e muitas vezes não explicativos.

Bancos normalizados são muito bem vindos para aplicações com muitas transações, porem quando precisamos criar relatórios, isso pode tornar em um pesadelo. Uma query que faça a junção de 10 tabelas por exemplo, pode custar muito ao servidor quando são executadas.
Pense em outro fato, geralmente em uma empresa, os dados para obter um relatório podem estar armazenado em sistemas distintos, o que exige que seu relatório extraia dados de múltiplas fontes, o que é mais um custo para consulta. Além de que, muitas vezes precisamos fazer uma análise profunda das informações que estamos consultando, por exemplo, a sexo de uma pessoa pode ser armazenada em uma base como letras “M”, “F” e em outra como números “0”, “1”.


Por estes problemas citados e por muitos outros, uma solução de Business Inteligence tende a buscar uma forma mais explicativa de construção do seu Data warehouse, este tipo de designer Star e Snowflake tende a ser narrativo e menos normalizado, justamente focando em relatórios e análise de dados.

Star Schema

Em uma modelagem “Star Schema” temos uma tabela central, chamada de Fato. A tabela Fato serve de ligação entre as dimensões. No modelo Star, as dimensões se ligam unicamente a Fato.
Como você pode ver na imagem abaixo, é fácil identificar porque este modelo ganhou o nome de “Star Schema”:




Geralmente vamos conseguir visualizar uma “Star Schema” por área de negócio. Nesse tipo de modelagem, pode perceber que algumas dimensões serão compartilhadas entre as Fatos. Este tipo de dimensão é conhecida como “Shared” ou “Conformed”. Durante muito tempo, um tabu muito grande entre criar ou não este tipo de dimensão existiu entre os analistas de BI, porem hoje já se chegou à conclusão que é uma boa pratica manter este tipo de dimensão compartilhada.
Um modelo “Star Schema” é uma forma desnormalizada de organização dos dados, porem bem mais eficiente para grandes volumes de dados do que as formas normais.

Snowflake Schema

O designer Snowflake é menos utilizado atualmente, porem ele pode ser mesclado com o modelo “Star Schema” utilizando uma forma hibrida.
Em um modelo Snowflake, temos dimensões normalizadas. Veja na imagem abaixo:



Veja como em “DimProduto”, temos uma ligação com “DimCategoria”, então a fato não é a única tabela de ligação. Isto pode ser eficiente para tratarmos dimensões que se repetem, porem deve ser utilizado com cuidado quando estamos falando de BI. Uma ligação entre dimensões pode custar vários ciclos de leituras ao disco, o que causa perca de performance e IO desnecessário.

;) até mais

Nenhum comentário:

Tags

Microsoft (82) Google (33) Windows (23) Internet (20) Windows 7 (15) Internet Explorer (13) Segurança (12) Games (11) Gmail (5) Jogos (5) Mobile (5) Mozila Firefox (5) Visual Studio 2010 (5) Banco de Dados (4) Kinect (4) Orkut (4) Video Game (4) Videos (4) 3D (3) Chrome Os (3) Twitter (3) Web Designer (3) YouTube (3) Acessibilidade (2) Adobe (2) Analise (2) Artigos (2) Asp.Net (2) HTML5 (2) Internet Explorer 9 (2) Live Messenger (2) SqlServer (2) Steve Jobs (2) Sun (2) Telefonia (2) Wifi (2) Yahoo (2) blizzard (2) .Net (1) 3G (1) 4G (1) App Store (1) CEO (1) Cinema (1) Firefox (1) IBM (1) Java (1) Mozilla (1) Música (1) Nuvem (1) PS3 (1) PSN (1) Steve Ballmer (1) Televisor (1) Visual Studio 11 (1) Web 2.0 (1) eBook (1) w3c (1)