You are on page 1of 59

Construindo um Data Warehouse

Modelagem Dimensional
Você está aqui

3. Arquitetura 5. Seleção de
Warehouse Tecnologia

2. Requisitos 4. Modelagem 7. Área de 8. Manutenção e


1. Definição De negócios Stagging
De Projeto Dimensional Sustentabilidade

6. Aplicação
Usuária

Ciclo de vida simplificado de um Data Warehouse


Agenda

• Fatores chave de sucesso


• Terminologia
• Estruturas da modelagem dimensional
• Nível de detalhamento de um modelo
• Fases da modelagem
• Modelagem de Data Warehouse
• Teste do modelo gerado
Fatores Chave de Sucesso

• Alinhamento com os objetivos estratégicos


da empresa
• Direcionamento ao “Business”
• Prover dados tanto detalhados quanto
sumarizados
• Infra-estrutura robusta para comportar
os diferentes tipos de acessos aos dados
Seu Desafio

• Modelar esquemas lógicos e físicos


que possibilitem rápido e previsível
tempo de resposta aos dados,
suportando a análise não previsível
de grande volumes de dados
históricos
Não Esquecer

• Validade
• Qualidade
• Integração
• Atualidade
• Consistência
• Manutenção
O Problema

• Mudança dos requisitos


de negócio
Essencial

• Extensibilidade

• Flexibilidade
Fatores Chave de Sucesso: Resumo

• TEMPO DE RESPOSTA RÁPIDO E


PREVISÍVEL PARA CONSULTAS AD-HOC

• Validade • Consistência
• Correteza • Manutenção
• Integração • Extensibilidade
• Atualidade • Flexibilidade
Terminologia Básica

Loja
Loja_id
Código Produto
Endereço Produto_id
Cidade Título
Bairro Categoria
Tipo Aluguel Status
Ano
DIMENSÃO Data_id Qtde Cópias
Loja_id
Tempo DIMENSÃO
Produto_id
Data_id
Qtde Aluguel
Data
Custo
Dia da Semana
Lucro
Feriado
Mês FATO
Ano
Terminologia Avançada

Loja
Loja_id Exclusividade
Código Produto
Loja_id Produto_id
Endereço Produto_id
Cidade Título
Bairro Categoria
Tipo Aluguel Status
Ano
Data_id Qtde Cópias
Loja_id
Tempo
Produto_id
Data_id
Qtde Aluguel
Data
Custo Cópia
Dia da Semana
Lucro Produto_id
Feriado
Cópia_id
Mês
Idioma
Ano
SUB-DIMENSÃO
Terminologia

STAR SCHEMA

Dimensão 1

Dimensão 2 Dimensão 5
Fato

Dimensão 3 Dimensão 4
Terminologia

Tabela Auxiliar
SNOWFLAKED

Dimensão 1

Dimensão 2 Dimensão 5
Fato

Tabela Auxiliar Tabela Auxiliar

Dimensão 3 Dimensão 4

Tabela Auxiliar
Terminologia
Mês FATO 1
Mês_id Mês_id
Nome Cliente_id
Cliente Número Telefone_id
Cliente_id Qtde ligações
Nome
Endereço
Cidade RELACIONADAS
Estado Telefone
FATO 2
Telefone_id
Mês_id
Ddd
Cliente_id
Número
Telefone_id
Tipo
Problema_id
Qtde Ocorrências
Problema
Custo Reparo
Problema_id
Nome
Terminologia
Mês FATO 1
Mês_id Mês_id
Cliente Nome Cliente_id
Cliente_id Número Loja_id
Nome
Produto
Endereço
Qtde Venda
Cidade
Valor Venda
Estado
AGREGADAS

Produto FATO 2
Loja Produto_id Mês_id
Loja_id Nome Loja_id
Endereço Produto_id
Depto Qtde Venda
Cidade Valor Venda
Enfoque da Modelagem Dimensional

• Modelagem dos processos essenciais


da Empresa, suas medidas, e
dimensões, através das
quais os negócios
serão analisados
Exemplo: Vídeo Locadora

DIMENSÃO MEDIDAS
Dia da semana Quantidade de locação
Dia do feriado Custo
Loja e Categoria Lucro
Título
Título e Categoria
Título e Idade
Estruturas Dimensionais

• Agrupe as medidas em tabelas “fato”


• Agrupe as dimensões individuais em tabelas
de dimensão
• Determine a granularidade das tabelas
“fato”
• Determine a dimensionalidade
Exemplo: Vídeo Locadora

Dimensão Loja
Loja_id Dimensão Produto
Código Produto_id
Endereço Título
Cidade Categoria
Bairro Status
Aluguel Fact
Tipo Ano
Data_id
Loja_id Qtde Cópias
Dimensão Tempo Produto_id
Data_id Qtde Aluguel
Data Custo
Dia da Semana Lucro
Feriado
Mês
Ano
Tabelas Dimensão

Tabelas Dimensão contém parâmetros


analíticos através dos quais as medidas das
tabelas de fato são analisadas:

• rentabilidade por produto, categoria e loja


• quantidade de locações por dia, mês e ano
• frequência de locação por cliente, loja,
título e categoria
Exemplo de Tabelas Dimensão

• período de tempo
• organização
• produto
• cliente
• geografia
Característica de Esquemas
Dimensional

• Tabelas Fato são geralmente “grandes” e


são modeladas visando performance e
manutenção ( são geralmente BASTANTE
normalizadas )

• Tabelas Dimensão são geralmente pequenas


e são modeladas visando análise analítica e
fáceis de usar ( em geral são SUTILMENTE
desnormalizadas )
Tabelas Fato

Tabelas Fato contém medidas relacionadas


com:
• transações
• eventos
• período de atividade
• status
• cobertura
Exemplo de Tabelas Fato

• transações por ponto de venda (loja)


• pedido, atendimento
• títulos mais vendidos
• clientes mais assíduos
• política de locação por status da data
Nível de Detalhamento
de um modelo

Perguntas negociais que requerem dados


detalhados do modelo :

• o que acontece em conjunto ?


• quantos clientes são “temporais” ?
• quantos clientes são regulares ?
• que produtos vendem melhor em
que época do ano ?
Nível de Detalhamento de um
Data Warehouse Dimensional

Dados em nível detalhado devem ser


armazenados em dimensões, para facilitar
drill down e o acesso detalhado aos dados,
assim como à extração, replicação, e
requisitos de data mining.
Nível de Detalhamento de um
Data Warehouse Dimensional

• pessoas precisarão da informação


• dimensionalize-a
• utilize chaves “warehouse”
Fases da Modelagem

cidade bairro loja loja depto


depto

tipo
produto
venda
depto
item produto
vendido

marca categoria
mês dia hora

fornecedor sub-categoria
ESQUEMA NA 3A FORMA NORMAL
Fases da Modelagem
cidade
bairro
Loja
depto
tipo
venda produto
item marca
vendido fornecedor
sub-categoria
categoria
depto
ano
mês
dia
hora
ESQUEMA DIMENSIONAL
Fases da Modelagem

A modelagem pode ter 2


soluções:

• tabelas de fato totalmente


desnormalizadas
• tabelas de fato sutilmente
desnormalizadas
Modelagem Sutilmente Desnormalizada

D mês
F Conta Cliente
mês_id
D cliente
cliente_id
telefone_id
total local
D telefone total interurbano
total serviço
total geral

FASE 1
Criar a conta do cliente
Modelagem Sutilmente Desnormalizada

D serviço

F Conta Cliente
D mês
F Serviço Cliente mês_id
mês_id cliente_id
cliente_id telefone_id
D cliente
telefone_id total local
serviço_id total interurbano
qtde vezes total serviço
D telefone total geral

FASE 2
Adicionar o histórico de serviço
Modelagem Sutilmente Desnormalizada

D serviço

F Conta Cliente
D mês
F Serviço Cliente mês_id
mês_id cliente_id
cliente_id telefone_id
D cliente
telefone_id total local
serviço_id total interurbano
qtde vezes total serviço
D telefone total geral

FASE 3
Adicionar novos atributos às entidades
Modelagem Sutilmente Desnormalizada

D serviço

F Conta Cliente
D mês
F Serviço Cliente mês_id
mês_id cliente_id
cliente_id telefone_id
D cliente
telefone_id total local
serviço_id total interurbano
qtde vezes total serviço
D telefone total geral

FASE 4: P R O B L E M A
Adicionar serviços de internet (granularidade diferente)
Modelagem Sutilmente Desnormalizada
F Conta Cliente
D serviço
mês_id
cliente_id
D mês telefone_id
F Serviço Cliente
total local
mês_id total interurbano
cliente_id D cliente total serviço
telefone_id total geral
serviço_id
qtde vezes
D telefone
F Internet Cliente
FASE 5: S O L U Ç Ã O mês_id
Criar outra tabela fato cliente_id
internet charges
Modelagem Normalizada

D tipo
D mês serviço

F Conta Cliente
D cliente
mês_id
cliente_id
telefone_id
D telefone total

FASE 1
Criar a conta do cliente
Modelagem Normalizada
D tipo
D serviço serviço

D mês
F Serviço Cliente
F Conta Cliente
mês_id
mês_id
cliente_id D cliente cliente_id
telefone_id
telefone_id
serviço_id
total
qtde vezes
D telefone

FASE 2
Adicionar o histórico de serviço
Modelagem Normalizada
D tipo
D serviço serviço

D mês
F Serviço Cliente
F Conta Cliente
mês_id
mês_id
cliente_id D cliente cliente_id
telefone_id
telefone_id
serviço_id
total
qtde vezes
D telefone

FASE 3
Adicionar novos atributos às entidades
Modelagem Normalizada
D tipo
D serviço serviço

D mês
F Serviço Cliente
F Conta Cliente
mês_id
mês_id
cliente_id D cliente cliente_id
telefone_id
telefone_id
serviço_id
total
qtde vezes
D telefone

FASE 4: P R O B L E M A
Adicionar serviços de internet (granularidade diferente)
Modelagem Normalizada
D tipo
D serviço serviço

F Conta Cliente
D mês mês_id
F Serviço Cliente
cliente_id
mês_id telefone_id
cliente_id D cliente total
telefone_id
serviço_id F Internet Cliente
qtde vezes
D telefone mês_id
cliente_id
internet charges
FASE 5: S O L U Ç Ã O
Adicionar serviços de internet (granularidade diferente)
Fases da Modelagem: Resumo

Lembretes:

• modele o DW direcionado ao business


• tenha uma arquitetura para DW bem
estruturada
• facilite o acesso tanto detalhado quanto
resumido
• implemente em partes, mas seja cauteloso,
modelando de modo corporativo todas as
dimensões
Modelagem de Data Warehouse

Os 9 pontos de decisão para uma modelagem


dimensional completa são:

1. Os processos e por consequência, a


identidade das tabelas fato

2. A granularidade de cada fato

3. As dimensões de cada tabela fato


Modelagem de Data Warehouse

4. Os fatos, incluindo fatos pré-calculados

5. Atributos das dimensões

6. Como tratar acompanhamento de


mudanças em tabelas dimensão

7. Armazenamento físico: agregações,


dimensões heterogêneas, sub-dimensões,
mini-dimensões
Modelagem de Data Warehouse

8. Tempo de retenção de histórico

9. Urgência com que o dado é extraído e


disponibilizado em um Data Warehouse
Modelagem de Data Warehouse

Chaves artificiais:
• maior nível de isolamento dos sistemas
operacional
• melhora significativa na performance
de queries
• reduz significativamente o tamanho do
data warehouse como um todo
• possibilita armazenamento de mais
linhas por bloco de I/O em tabelas fato
Modelagem de Data Warehouse

Linhas artificiais:

Armazenamento de uma linha


com dados virtuais

• permite a implementação de integridade


referencial de forma simplificada no modelo
• permite o rastreio da correção da informação
no decorrer do tempo
• simplifica as queries
Dirty dimension
Tratamento de Histórico: Fato

Mês
Mês_id
Cliente Nome
Cliente_id Ano
Nome
Endereço
Fluxo Financeiro
Cliente_id
Mês_id
Valor Renda
Gasto Saúde
Gasto Supermercado
Gasto Combustível
Tratamento de Histórico: Dimensão

Cliente
Cliente_id
Nome
Endereço
Bairro
Salário Atual
Salário Anterior
Data Alteração Salário
Tratamento de Histórico

Histórico Cliente
Cliente_id
Data
Endereço Anterior

Fluxo Financeiro
Cliente Cliente_id Mês
Cliente_id Mês_id Mês_id
Nome Valor Renda Nome
Endereço Gasto Saúde Ano
Gasto Supermercado
Gasto Combustível
Modelagem de Data Warehouse

• promova a reutilização das dimensões


• permita uma análise integrada e consistente
através do Data Warehouse
• crie pequenas colunas para chave
primária das dimensões
• crie uma única coluna como
chave de dimensões (chave
artificial)
Modelagem de Data Warehouse

• não crie chave artificial para tabelas fato


• avalie a necessidade de criação de tabelas
sumarizadas
• avalie cuidadosamente a necessidade
de criação de tabela relacionada
• revise a solução adotada
para armazenamento de dados
históricos
Princípios de um Modelo
Dimensional

1) o primeiro passo da modelagem é decidir


que processos negociais modelar,
entendendo quais dados
estão disponíveis
Princípios de um Modelo
Dimensional

2) O segundo passo é decidir a granularidade


das tabelas

3) Tabelas fato, numa modelagem dimensional,


são naturalmente normalizadas a extremo
Princípios de um Modelo
Dimensional

4) Um Data Warehouse geralmente requer os


dados no nível mais baixo de granularidade, não
porque as queries querem ver esses
registros individualmente, mas
porque as queries precisam
visualizar os dados de forma
precisa e por diversas
maneiras
Princípios de um Modelo
Dimensional

5) O esforço de normalização de
qualquer uma das tabelas dimensão,
visando minimizar espaço em
disco, será uma perda de tempo
Princípios de um Modelo
Dimensional

6) Tabelas dimensão não devem ser


normalizadas com o risco de dificultar a
recuperação das informações. O espaço em
disco ganho é geralmente menos de 1% do
total do espaço necessário para o modelo todo
Princípios de um Modelo
Dimensional

7) Não modele as dimensões como snowflake,


mesmo se ela for extensa. Caso o faça,
prepare-se para administrar baixa
performance de recuperação
de dados
Teste do Modelo Gerado

• organize as perguntas da fase de definição


de escopo
• enumere a quantidade de DIMENSÕES
acessados para solução daquela query
• enumere a quantidade de FATOS acessados
para solução daquelas queries
Teste do Modelo Gerado

• verifique se todas as tabelas criadas são


realmente necessárias para responder às
perguntas feitas
• verifique a frequência das queries
• verifique a necessidade de criação de tabelas
agregadas ou relacionadas

You might also like