-
Modelagem dimensional
-
As melhores práticas e as regras de ouro
-
para que a gente construa uma arquitetura
precisa e funcional.
-
A gente agora vai se atentar a
alguns fundamentos técnicos
-
para que a sua modelagem seja funcional
e seja sustentável, para que a medida
-
que a sua empresa vá crescendo,
conforme os dados vão crescendo juntos,
-
eles consigam continuar
se correlacionando entre si.
-
Então vamos para a tela e eu vou mostrar
para vocês quais são essas regras de ouro
-
e como que a gente deve construir do zero
uma modelagem dimensional.
-
Então, olha só.
-
Lembra que temos aqui um fato no coração?
-
E as dimensões que são as tabelas
complementares?
-
fundamental relembrarmos
que toda modelagem dimensional
-
ela é baseada na linguagem
não estruturada.
-
Então, o que a gente entendeu
no formato de tabela,
-
a gente pode escrever de uma forma
não estruturada.
-
Então olha só que importante nossa tabela.
-
Fato.
-
Ela sempre vai receber a palavra
-
fato na frente
para identificar que ela é uma fato.
-
Todas as colunas dela vai estar escrito
-
vai estar identificado como S,
K Todas as dimensões
-
vão receber esta seta indicativa,
-
mostrando que aqui nós temos
-
as chaves primárias representadas vezes
-
por aquele pé de galinha,
as vezes por esse condensado
-
e a nossa tabela dimensional
vai receber essa seta.
-
E aqui o que era chave primária
vira chave estrangeira.
-
Então olha só, numa modelagem,
fato, dimensão a gente tem as chaves
-
primárias e as chaves estrangeiras
e sendo correlacionadas entre si.
-
Outro detalhe fundamental SK
-
vai indicar que a gente tem uma sua.
-
Roguei que o que é isso?
-
É uma chave que vai demonstrar
-
que todas as informações importantes
e fundamentais
-
que estão aqui na nossa tabela fato
-
também estão na nossa tabela dimensão.
-
Então note
que todas as nossas tabelas dimensão
-
vai receber a mesma identificação.
-
Por quê?
-
Porque conforme eu vou
construindo a minha fato,
-
eu vou puxar essa informação
-
e vou completar essa informação
aqui na minha tabela.
-
Fato.
-
Então eu vou ter sempre uma linha
que vai se conectar
-
da fato para a dimensão e aí
-
eu consigo fazer as famosas joins.
-
Eu consigo juntar uma informação na outra
-
para formar o desenho estatístico
dessa minha correlação.
-
Então sou foguete, que significa a chave
mais forte da sua tabela,
-
aquela chave que ela vai
se repetir tanto na tabela
-
fato quanto na tabela dimensão.
-
É através dessa chave
que a gente consegue linkar as informações
-
e essas informações serem replicadas
em qualquer funcionamento estatístico
-
que você queira atribuir
para a sua modelagem dimensional.
-
Além disso, existe
-
também a chave natural ou natural, que,
-
como a gente gosta de falar,
Então vamos entender onde ela entra.
-
Net O que é fundamental
para a auditoria dos dados
-
são aqueles dados
que são exclusivos de uma entidade
-
e que elas vão servir
para rastreabilidade do meu item.
-
Por exemplo,
quando a gente tem no cliente o CPF dele,
-
com certeza esse dado sempre
vai ser exclusivo desse cliente.
-
Por isso que essa ética do cliente
-
vai estar vinculada a uma network
para que esse dado
-
seja rastreável
ao longo de todo o processo.
-
Então vamos imaginar que é esse cliente
-
ele seja replicado
em outras modelagens dimensionais.
-
Eu vou ter certeza que ele continua
sendo o mesmo cliente
-
por causa da identificação
network ou n tal.
-
Além do conceito de surra, gente
que é natural que a gente também pode
-
se aprofundar no conceito de smart,
que é como o próprio nome já diz,
-
é uma chave inteligente,
porque ela vai ter duas funções.
-
A primeira função é de ser uma sockets,
que eu seja ser uma chave forte
-
que vai vincular e linkar
todas as entidades nas minhas tabelas.
-
Mas ela também vai servir para ordenar
e organizar as minhas informações.
-
Normalmente isso acontece
com informações de data e com informações
-
geográficas, então vamos ver aqui
na nossa tabela esse exemplo.
-
Olha só a Smart que ela normalmente
-
vai ser representada por esse,
por essa setinha, por esse triângulo
-
para cima ou para baixo, indicando
já que essa tabela além de ter uma surra,
-
alguém que ela também pode ser ordenada
-
num formato crescente ou decrescente.
-
Se eu utilizasse, por exemplo,
para clientes, eu poderia estar
-
indicando que eu estou escrevendo
os meus clientes em forma.
-
A Alphabet Dica ou em forma geográfica,
eu poderia estar demonstrando que eu estou
-
dividindo esses meus clientes por estado,
por cidades.
-
Enfim, são informações inteligentes
que vão estar associadas
-
e que, além de mostrar qual a informação,
-
vai conseguir organizar melhor
a minha tabela.
-
Além de todas essas chaves fundamentais,
-
existe também uma chave
que a gente chama de degenerada.
-
Por quê?
-
Porque são informações importantes
para cada departamento.
-
Acho que elas não servem para fazer
uma métrica, uma modelagem estatística
-
disso.
-
Só que elas precisam estar contidas
na nossa tabela.
-
E aí a gente identifica isso
como DDD Generation, que então olha aqui.
-
Por exemplo, eu tenho a minha tabela fato
e a minha tabela dimensão
-
dentro da minha dimensão produto
-
eu vou ter a descrição do que é esse
produto.
-
Vamos, força!
-
Tem uma camisa, Você está dizendo Ah,
é uma camisa verde do tamanho G,
-
feita de material poliéster e etc.
-
Então é uma informação que eu
não vou criar a estatística sobre ela,
-
mas que é importante, está contida aqui
-
na minha tabela,
nas minhas informações complementares.
-
E aí a gente identifica isso
ou classifica isso
-
como desde inerente que é,
a gente pode também
-
para incrementar
e complementar e colocar o sufixo aqui.
-
DD Mas como é uma informação que a gente
-
não vai utilizar nas nossas estatísticas,
-
então estar identificado ou não,
não faz tanta diferença assim.
-
Outra regra de ouro para que a gente
construa de forma saudável
-
a nossa modelagem dimensional
-
e se atentar no conceito do 5W3HO
e o que isso significa?
-
É a tradução para.
-
Que Quando? Onde?
-
Para Quem?
-
Quantos? Qual a quantidade?
-
Todas essas informações.
-
Elas são interessantes
para que você se direcione
-
na construção de respostas de negócios.
-
Então, o que você deve se atentar
de que só as duas tabelas, fato e dimensão
-
têm que conter essas respostas,
-
Então não necessariamente você tem que ter
sempre todas essas informações,
-
mas quanto mais dessas informações
você tiver na sua tabela, melhor.
-
Um outro conceito fundamental
é o conceito de granulometria.
-
Vem exatamente da palavra grãos.
-
Tamanho desses grãos.
-
Então, quanto maior esse dimensionamento,
menor a minha granulometria.
-
Por exemplo, se a gente medir
datas, datas, eu posso medir por ano,
-
por semestre, por bimestre, por dias.
-
Então quanto mais refinada for, maior
é a minha granulometria.
-
Pode ser que para o seu negócio
-
esse diferente grão
não faça tanta diferença,
-
mas para uma outra pergunta de negócio,
essa diferenciação seja importante.
-
Então, por exemplo,
se eu quero identificar
-
qual é o melhor dia
para lançar uma promoção,
-
eu preciso ter a minha data bem granular.
-
Se eu quero saber qual é o melhor mês,
eu não preciso do dia,
-
Eu preciso das minhas informações
agrupadas em mês.
-
Por isso
esse conceito de granulometria dia.
-
Eu posso ter uma dimensão
com uma granulometria bastante aguçada,
-
mas para cada modelagem dimensional
eu vou puxar uma granulometria diferente,
-
Pode ser que no seu negócio
essa diferença não seja significativa.
-
Por exemplo, se você quiser
lançar uma promoção para aquele mês,
-
o seu grão tem que ser agrupado por mês.
-
Agora você quer saber o melhor dia
para você lançar uma promoção?
-
O seu grão tem que ser agrupado por dia,
-
então vai
de acordo com a pergunta de negócio.
-
O importante é que você tenha uma tabela
dimensional com todas as datas definidas
-
e para cada modelagem você vai agrupando
-
de acordo com a sua pergunta de negócio.
-
Outro conceito fundamental
é você entender quais são as dimensões
-
que se alteram lentamente ou rapidamente.
-
Então, por exemplo,
quando a gente tem data de nascimento,
-
Na verdade,
o que é sua pergunta de negócio se refere?
-
É sempre a idade.
-
Então a gente pega a data de nascimento
que faz a transformação
-
e demonstra
a idade na resposta de negócios.
-
Só que essa idade
ela vai se alterar ano a ano.
-
Então é uma dimensão
que se altera lentamente.
-
Um outro exemplo disso é, por exemplo,
o seu endereço.
-
Você não se muda todo dia,
então esse endereço
-
também é uma dimensão
que se altera lentamente.
-
Um exemplo de dimensão
que se altera rapidamente
-
é a venda de uma venda para outra.
-
Alterou o produto?
-
Então é um dimensão
que a gente tem que se atentar, porque
-
a cada linha ela vai ter uma interação
-
e uma alteração bastante significativa.
-
E agora, para a gente
-
fechar os nossos conceitos fundamentais
-
para montar uma boa arquitetura
de dados dimensional
-
e a gente entender mais quatro informações
importantes,
-
A primeira delas é a junk
dimensional de lixo, que significa?
-
São informações que você precisa ter,
-
mas são informações estruturais
do seu modelo.
-
São informações que muito raramente
-
o departamento de Analytics vai utilizar.
-
Só que é fundamental para que você não
esqueça como seu modelo foi organizado.
-
Então você além de criar a sua modelagem
tradicional,
-
você vai criar uma outra tabela
para indicar todas essas estruturas
-
e vai ser como um guia,
como um dicionário para sua modelagem.
-
Outro conceito é o conceito de Al Tigre.
-
Toda vez que você incrementa
-
uma dimensão, uma granulometria,
-
você está criando uma tabela denominada
-
como o tigre, por exemplo,
quando você tem datas
-
e aí você organiza essas datas
de forma anual ou diária, ou semestral,
-
Cada uma dessas formas
ela é classificada como al Tigres.
-
Não vai interferir em nada,
mas é um conceito interessante
-
para você ter elas já reservado
para quando você criar a sua modelagem
-
específica para aquele departamento,
você já tem essa tabela dimensional
-
separada
e pronto para montar naquela modelagem.
-
Outro conceito fundamental
é o conceito de role playing.
-
Normalmente a gente
não sai comentando sobre isso,
-
só que ele é um conceito
que vai te ajudar na estrutura.
-
São tabelas que vão servir para diversos
modelos dimensionais que você cria.
-
Então,
quando você tem uma base de endereços
-
e você vincula essa
base de endereços a um ID,
-
o que você vai fazer?
-
Essa base de endereços
vai servir para diversos modelos
-
e em cada modelo
você vai puxar apenas e de.
-
Esse é dia
sempre puxado pela sua corrente que.
-
Então esse conceito de playing
é muito interessante
-
porque você já vai
construindo tabelas dimensionais
-
que vai servir para o apoio
de diversas modelagens.
-
Isso facilita muito o seu trabalho.
-
A medida que você estiver criando
novas modelagens para o seu negócio.
-
E para finalizar, o conceito de bridge
table, ou seja, tabela ponte.
-
O que é isso?
-
Novamente,
naquele formato de granulometria,
-
a medida que eu
tenho que utilizar informações de tabelas
-
diferentes, de agrupamentos diferentes,
eu chamo isso de ponte.
-
Por quê?
-
Porque dentro da minha tabela ano
-
eu vou ter o ano,
vou ter o semestre, bimestre o dia.
-
E aí ao invés de eu puxar a informação
semestral que não vai ser importante,
-
eu pingo essa informação
e pego somente a informação diária
-
para construir o meu modelo.
-
Agora você está pronto para construir
modelagens dimensionais
-
de forma saudável, assertiva
e que vai perdurar ao longo do tempo.