Académique Documents
Professionnel Documents
Culture Documents
http://www.uniriotec.br/~tanaka/SAIN tanaka@uniriotec.br
Asterio K. Tanaka
Material baseado em originais de Maria Luiza Campos (http://dataware.nce.ufrj.br/) Complementado com referncias atuais de Ralph Kimball (http://www.kimballgroup.com/) Agosto de 2007
Asterio K. Tanaka
Dimenses Degeneradas (dimenses sem tabelas) Extensibilidade do esquema estrela Modelo dimensional normalizado: Esquema Snow Flake Esquemas com muitas dimenses: Esquema Centpodo Campos Chaves de Tabelas de Dimenses Dinmica das Dimenses: Slowly Changing Dimension Dimenses com Papis (Role Playing dimensions) Outros Tipos Especiais de Dimenso
Lixo (Junk Dimension); Dimenses muito grandes: Minidimenses; Dimenses com outrigger; Dimenses Multivaloradas (Bridge table)
Tpicos Especiais sobre Fatos Fatos conformados, Bus Matrix de Implementao, Tipos Clssicos de Fatos Agregados
Asterio K. Tanaka
Diferente das outras dimenses, a tabela pode ser carregada antecipadamente, de uma s vez e no requer fonte de dados
Exemplo: 5 anos passados + 5 anos futuros = 10 anos = 3.650 dias (linhas na tabela)
Asterio K. Tanaka
Tipo de dados SQL (Date, Time) no suportam essa riqueza de descries, da a necessidade de uma dimenso Data explcita.
Asterio K. Tanaka
Date
Date_key
Fact
Date_key ... Time_of_day
Date
Date_key
Fact
Date_key Time_of_Day_key
Time of Day
Time_of_Day_key hour minute
- Permite descries e agregaes teis: (nomes de horas, nomes de turnos, etc ) - Chave Time_of_Day_key pode ter 2 bytes (suficiente para 24 x 60 = 1.440 minutos) ou 4 bytes (suficiente para 1.440 x 60 = 86.400 segundos).
Asterio K. Tanaka
Date
Date_key day month hour minute
Fact
Date_key ... ...
Tabela dimenso muito grande 10 anos = 3.650 x 1.440 minutos = 5.256.000 linhas (525.600 linhas cada ano adicional)
Asterio K. Tanaka
Dimenso Produto
Redundncia custa da 3FN vale a pena, pois as tabelas de dimenses so pequenas em relao s tabelas de fatos. Asterio K. Tanaka
Dimenso Loja
First_Open_Date Last_Remodel_Date
Note os atributos First Open Date e Last Remodel Date, so DATAS. So chaves de juno com cpias da tabela de dimenso Date, declaradas como vises SQL, por exemplo
CREATE VIEW First_Open_Date (FO_day_number, FO_month, ...) AS SELECT day_number, month FROM Date
Asterio K. Tanaka
Uma tabela de fatos, tipicamente sem fatos, que registra todos os produtos que esto em promoo numa determinada loja, independentemente de ser vendidos ou no. Consulta: Quais produtos estavam em promoo mas no venderam?
SELECT Product_Key, ... FROM Promotion_Coverage, ... WHERE ... MINUS SELECT Product_Key. ... FROM POS_Retail_Sales, ... WHERE ...
Asterio K. Tanaka
Ou poderia ter uma medida artificial Registration_Count apenas para tornar mais fcil a consulta
SELECT Faculty, SUM(Registration_Count)... GROUP BY Faculty
Asterio K. Tanaka
Asterio K. Tanaka
O esquema estrela acomoda sem problema novas dimenses desde que o gro definido para a tabela de fatos seja o mais detalhado possvel. A incluso de novas dimenses que se aplicam a esse nvel de granularidade no altera as dimenses e fatos existentes. Para evitar chaves nulas, preciso prever valores do tipo No aplicvel para fatos anteriores incluso da nova dimenso. Todas as consultas e aplicaes existentes continuam a rodar sem nenhuma alterao.
Asterio K. Tanaka
A extensibilidade possvel graas simetria do esquema estrela, contanto que o gro inicial escolhido seja o mais detalhado possvel pelos sistemas transacionais.
Asterio K. Tanaka
Embora aceitvel, a normalizao de dimenses no recomendvel por razes de desempenho e facilidade de uso
A quantidade de tabelas torna a apresentao do modelo mais complexa. Otimizadores do SGBD tm mais dificuldade com esquema complexo. A economia de espao em disco insignificante em relao ao DW completo. Snowflaking diminui a habilidade de usurios de navegar na dimenso. Snowflaking impede o uso de ndices tipo Bit Map, que so usados por SGBD para indexar campos com baixa cardinalidade.
Asterio K. Tanaka
Every join between dimens ion and fact tables in the data warehous e s hould be bas ed on meaning les s integ er s urrog ate keys . You s hould avoid us ing the natural operational production codes . None of the data warehous e keys s hould be s mart, where you can tell s omething about the row jus t by looking at the key.
Asterio K. Tanaka
Vrias alternativas
Tipo 1: Atualizar por cima do valor antigo
simples mas no preserva histrico.
Tipo 2: Adicionar uma nova linha com o novo valor do atributo atualizado, mantendo os demais.
A nova linha particiona o histrico na tabela fato. a tcnica predominante para dimenses que mudam lentamente (slowly changing dimensions).
Tipo 3: Adicionar uma nova coluna, preservando o valor anterior e inserindo o novo valor na nova coluna.
Permite a manuteno de duas vises simultneas do histrico, mas d margem a muitos valores nulos quando as mudanas so lentas.
Solues hbridas, com mltiplas verses (linhas) combinadas ou no com coluna de valor anterior.
Mais flexveis e completas, porm mais complexas.
Asterio K. Tanaka
SCD Tipo 2
SCD Tipo 3
Asterio K. Tanaka
SCD: Exemplo Tipo Hbrido (tambm chamado tipo 6 = 3+2+1) Linha original Requisito: Preservar histrico e ao mesmo tempo suportar consultas a dados histricos de acordo com valores atuais. Primeira mudana
Segunda mudana
Asterio K. Tanaka
CREATE VIEW order_date (order_date_key, order_day_of_week, order_month...) AS SELECT date_key, day_of_week, month, . . . FROM Date CREATE VIEW req_ship_date (req_ship_date_key, req_ship_day_of_week, req_ship_month ...) AS SELECT date_key, day_of_week, month, . . . FROM Date
Asterio K. Tanaka
Fato Viagem Data do Vo Origem do Segmento Destino do Segmento Origem da Viagem Destino da Viagem Vo Tarifa Classe Cliente
c
Dimenso Aeroporto
Dimenso Vo
Dimenso Tarifa
Dimenso Data
Asterio K. Tanaka
Dimenso Provedor
Dimenso Localizao
Asterio K. Tanaka
Minidimenses
Subconjuntos de uma dimenso grande, como Cliente, que so quebrados em dimenses artificiais menores para controlar o crescimento explosivo de uma dimenso grande, com mudana rpida. Os atributos demogrficos continuamente mutveis de um cliente so frequentemente modelados como uma minidimenso separada.
Asterio K. Tanaka
Minidimenses
A melhor abordagem para tratar atributos em dimenses muito grandes quebrar em uma ou mais minidimenses, cada uma contendo atributos que tenham um nmero limitado de valores. Exemplo: dimenso Cliente com milhes de ocorrncias.
Vide tambm o caso de dimenses com alta volatilidade (minidimenso com atributos que mudam rapidamente) Tamanho de cada minidimenso = Produto cartesiano da cardinalidade dos atributos da minidimenso Exemplo acima: 10 x 2 x 10 x 5 x 5 = 5.000 linhas
Asterio K. Tanaka
Asterio K. Tanaka
Outros exemplos de dimenses multivaloradas: titulares de conta bancria, cdigos de classificaes, etc
Asterio K. Tanaka
Tabela ponte conta-cliente para associar mltiplos clientes com fatos de contas.
Asterio K. Tanaka
Fatos agregados
Asterio K. Tanaka
Fatos Conformados
Estabelecer dimenses conformadas para amarrar os data marts representa 90% do esforo de arquitetura de projeto. O restante do esforo consiste em estabelecer definies de fatos conformados. Preos, custos, lucros, medidas de qualidade, medidas de satisfao do cliente e outros KPIs so fatos que devem ser conformados. Em geral, dados de fatos no so duplicados explicitamente em mltiplos data marts. Mas isso pode ocorrer em data marts de primeiro nvel (originrios de um sistema fonte primrio de dados) e data marts consolidados (a partir de mltiplas fontes que podem referenciar mais de um processo de negcio). Se os fatos forem rotulados identicamente, precisam ser definidos no mesmo contexto dimensional e com as mesmas unidades de medida de data mart para data mart. Algumas vezes, um fato tem uma unidade de medida natural em uma tabela de fatos e outra unidade de medida em outra tabela de fatos. Ao invs de prover um fator de converso numa tabela de dimenso, a abordagem correta levar o fato com as duas unidades de medida para para facilitar os relatrios sem preocupao de converso. Por exemplo, produtos medidos em caixas no depsito e em peas na loja.
Asterio K. Tanaka
Artigo The Matrix, Ralph Kimball, Intelligent Enterprise, Dezembro 1999. http://www.intelligententerprise.com/db_area/archives/1999/990712/webhouse.jhtml
Asterio K. Tanaka
Asterio K. Tanaka
Fatos de transaes
O nvel de transao individual representa a viso mais fundamental das operaes do negcio. Essas tabelas de fatos representam um evento que ocorreu num ponto instantneo do tempo.
Asterio K. Tanaka
Asterio K. Tanaka
Representam um tempo indeterminado, que cobre o ciclo de vida da transao ou do produto ou pessoa. Q uase sempre possuem mltiplas datas, representando os mltiplos eventos ou fases que ocorrem durante o curso de um ciclo de vida.
Asterio K. Tanaka
Asterio K. Tanaka
Agregados (1)
Materializar (armazenar) ou no?
Vide sndrome da exploso do volume de dados
Asterio K. Tanaka
Agregados (2)
Combinaes possveis
Ternrias: LOJA X PRODUTO X DIA 2 x 2 x 3 = 12 combinaes Binrias: LOJA X PRODUTO + LOJA X DIA + PRODUTO X DIA 2 x 2 + 2 x 3 + 2 x 3 = 16 combinaes Unrias: LOJA + PRODUTO + DIA 2 + 2 + 3 = 7 combinaes Total = 35 combinaes Quais deveriam ser materializadas e armazenadas? Qual a distribuio de valores agregados por dimenso?
Ex: LOJA SELECT nome-loja, COUNT(*) FROM TFVendas, TDLoja WHERE TFVendas.chave-loja = TDLoja.chave-loja GROUP BY nome-loja
Asterio K. Tanaka
Agregados (3)
Cuidados na definio dos agregados
Valores aditivos Nem todas as mtricas armazenadas nas tabelas granulares so aditivas em todas as dimenses (fatos semi-aditivos ou no aditivos). Isto significa que os atributos das tabelas fatos de agregados podero ser diferentes das tabelas fatos granulares. Preciso Deve-se definir criteriosamente a preciso dos valores aditivos de agregados, que devero ser maiores do que os usados nos respectivos valores das tabelas granulares (para evitar overflow na adio) Fatos e dimenses agregados devem estar em tabelas fisicamente diferentes das tabelas granulares, mesmo que o nmero de tabelas cresa muito. Ferramentas de anlise (OLAP, por exemplo) possuem mecanismo de navegao de agregados que escondem a complexidade da estrutura.
Asterio K. Tanaka
Agregados (4)
Exemplos
Agregao por loja, para todos os produtos, todos os dias.
Asterio K. Tanaka
Agregados (4)
Exemplos
Agregao por loja, para todos os produtos, todos os dias. INSERT INTO AG-LOJA AS SELECT nome-loja, sum(valor-vendido-real), sum(custo-real) FROM TDLoja, TFVendas WHERE TDLoja.chave-loja=TFVendas.chave-loja GROUP BY nome-loja Agregao por loja, por ms, para todos os produtos. INSERT INTO AG-LOJA-MS AS SELECT nome-loja, ms, sum(valor-vendido-real), sum(custo-real) FROM TDLoja, TFVendas, TDDia WHERE TDLoja.chave-loja=TFVendas.chave-loja AND TFVendas.chave-dia=TDDia .chave-dia GROUP BY nome-loja, ms
Asterio K. Tanaka
Agregados (5)
Exemplos
Agregao por regiao de venda, por ms, por categoria. INSERT INTO AG-REG-CAT-MES AS SELECT regiao, ms, categoria, sum(valor-vendido-real), sum(custo-real) FROM TDLoja, TFVendas.TDProduto, TDDia WHERE TDLoja.chave-loja=TFVendas.chave-loja AND TFVendas.chave-dia=TDDia .chave-dia AND TFVendas.chave-produto=TDProduto.chave-produto GROUP BY regiao, ms, categoria
Cuidados operacionais
Modelos separados (agregados e granulares) para evitar contenes mtuas no momento de carga ou atualizao. Carga total versus Atualizao incremental: Tempo de processamento versus Complexidade de programas Carga/atualizao pode requerer processamento paralelo, para otimizao
Utilizao de agregados
Navegador de agregados: camada de interface entre a ferramenta OLAP e o servidor de DW. O navegador realiza transparentemente a converso de comandos SQL granulares nos equivalentes que trabalham informaes agregadas.
Asterio K. Tanaka
Asterio K. Tanaka
Asterio K. Tanaka