< Return to Video

EADW CAP05 2024 VA03 MODELAGEM DIMENSIONAL BOAS PRATICAS

  • 0:08 - 0:13
    Modelagem dimensional: as melhores
    práticas e as regras de ouro
  • 0:13 - 0:17
    para que a gente construa
    uma arquitetura precisa e funcional.
  • 0:17 - 0:22
    A gente, agora, vai se atentar
    a alguns fundamentos técnicos
  • 0:22 - 0:27
    para que a sua modelagem seja
    funcional e seja sustentável,
  • 0:27 - 0:30
    para que, à medida que a sua
    empresa vá crescendo,
  • 0:30 - 0:33
    conforme os dados
    vão crescendo junto,
  • 0:33 - 0:37
    eles consigam continuar
    se correlacionando entre si.
  • 0:37 - 0:39
    Então, vamos para a tela
    e eu vou mostrar para vocês
  • 0:39 - 0:41
    quais são essas regras de ouro
  • 0:41 - 0:46
    e como a gente deve construir
    do zero uma modelagem dimensional.
  • 0:46 - 0:51
    Então, olha só, lembra que temos
    aqui a Fato no coração
  • 0:51 - 0:54
    e as dimensões, que são
    as tabelas complementares.
  • 0:54 - 0:59
    Fundamental relembrarmos
    que toda a modelagem dimensional
  • 0:59 - 1:02
    é baseada na linguagem
    não estruturada,
  • 1:02 - 1:06
    então o que a gente entendeu
    no formato de tabela,
  • 1:06 - 1:09
    a gente pode escrever
    de uma forma não estruturada.
  • 1:09 - 1:12
    Então, olha só que importante:
  • 1:12 - 1:18
    nossa tabela Fato sempre vai
    receber a palavra "fato" na frente
  • 1:18 - 1:20
    para identificar
    que ela é uma Fato.
  • 1:20 - 1:24
    Em todas as colunas
    dela vai estar escrito,
  • 1:24 - 1:27
    vão estar identificadas
    como "sk".
  • 1:27 - 1:33
    Todas as dimensões vão
    receber esta seta indicativa
  • 1:33 - 1:38
    mostrando que, aqui, nós
    temos as chaves primárias
  • 1:38 - 1:41
    representadas às vezes
    por aquele pé de galinha,
  • 1:41 - 1:43
    às vezes por esse condensado.
  • 1:43 - 1:48
    E a nossa tabela dimensional
    vai receber essa seta
  • 1:48 - 1:53
    e, aqui, o que era chave primária
    vira chave estrangeira.
  • 1:53 - 1:57
    Então, olha só, em uma
    modelagem fato-dimensão,
  • 1:57 - 2:00
    a gente tem as chaves primárias
    e as chaves estrangeiras,
  • 2:00 - 2:03
    sendo correlacionadas entre si.
  • 2:03 - 2:08
    Outro detalhe fundamental:
    "sk" vai indicar
  • 2:08 - 2:11
    que a gente tem
    uma "surrogate key".
  • 2:11 - 2:12
    O que é isso?
  • 2:12 - 2:15
    É uma chave
    que vai demonstrar
  • 2:15 - 2:20
    que todas as informações
    importantes e fundamentais
  • 2:20 - 2:23
    que estão aqui
    na nossa tabela Fato
  • 2:23 - 2:27
    também estão na nossa
    tabela Dimensão.
  • 2:27 - 2:31
    Então, note que todas
    as nossas tabelas Dimensão
  • 2:31 - 2:35
    vão receber a mesma
    identificação, por quê?
  • 2:35 - 2:37
    Porque conforme eu vou
    construindo a minha Fato,
  • 2:37 - 2:44
    eu vou puxar essa informação
    e vou completar essa informação
  • 2:44 - 2:46
    aqui na minha tabela Fato.
  • 2:46 - 2:50
    Então, eu vou ter sempre
    uma linha que vai se conectar
  • 2:50 - 2:56
    da Fato para a Dimensão e, aí, eu
    consigo fazer as famosas joins,
  • 2:56 - 3:01
    eu consigo juntar
    uma informação na outra
  • 3:01 - 3:05
    para formar o desenho estatístico
    dessa minha correlação.
  • 3:05 - 3:11
    Então, "surrogate key" significa
    a chave mais forte da sua tabela,
  • 3:11 - 3:16
    aquela chave que vai se repetir
    tanto na tabela Fato
  • 3:16 - 3:18
    quanto na tabela Dimensão.
  • 3:18 - 3:23
    É através dessa chave que a gente
    consegue linkar as informações
  • 3:23 - 3:25
    e essas informações
    serem replicadas
  • 3:25 - 3:28
    em qualquer funcionamento
    estatístico
  • 3:28 - 3:32
    que você queira atribuir para a sua
    modelagem dimensional.
  • 3:32 - 3:37
    Além disso, existe também
    a chave natural, ou "natural key",
  • 3:37 - 3:39
    como a gente gosta de falar.
  • 3:39 - 3:41
    Então, vamos entender
    onde ela entra.
  • 3:41 - 3:46
    Natural key é fundamental
    para a auditoria dos dados,
  • 3:46 - 3:51
    são aqueles dados que são
    exclusivos de uma entidade,
  • 3:51 - 3:56
    e elas vão servir para
    a rastreabilidade do meu item.
  • 3:56 - 4:01
    Por exemplo, quando a gente
    tem, no cliente, o CPF dele,
  • 4:01 - 4:06
    com certeza esse dado sempre
    vai ser exclusivo desse cliente.
  • 4:06 - 4:12
    Por isso, essa "sk" do cliente vai
    estar vinculada a uma natural key
  • 4:12 - 4:17
    para que esse dado seja rastreável
    ao longo de todo o processo.
  • 4:17 - 4:20
    Então, vamos imaginar
    que esse cliente
  • 4:20 - 4:25
    seja replicado em outras
    modelagens dimensionais.
  • 4:25 - 4:28
    Eu vou ter a certeza de que ele
    continua sendo o mesmo cliente
  • 4:28 - 4:33
    por causa da identificação
    natural key, ou "nk".
  • 4:33 - 4:37
    Além dos conceitos
    de surrogate key e natural key,
  • 4:37 - 4:41
    a gente também pode se aprofundar
    no conceito de "smart key".
  • 4:41 - 4:45
    E como o próprio nome já diz,
    é uma chave inteligente,
  • 4:45 - 4:47
    porque ela vai ter
    duas funções:
  • 4:47 - 4:51
    a primeira função é de ser
    uma surrogate key, ou seja,
  • 4:51 - 4:53
    ser uma chave forte
  • 4:53 - 4:58
    que vai vincular e linkar todas
    as entidades nas minhas tabelas,
  • 4:58 - 5:00
    mas ela também vai servir
  • 5:00 - 5:04
    para ordenar e organizar
    as minhas informações.
  • 5:04 - 5:07
    Normalmente, isso acontece
    com informações de data
  • 5:07 - 5:10
    e com informações geográficas.
  • 5:10 - 5:12
    Então, vamos ver aqui
    na nossa tabela esse exemplo:
  • 5:12 - 5:20
    olha só, a smart key normalmente vai
    ser representada por essa setinha,
  • 5:20 - 5:22
    por esse triângulo
    para cima ou para baixo,
  • 5:22 - 5:29
    indicando já que essa tabela,
    além de ter uma surrogate key,
  • 5:29 - 5:32
    também pode ser ordenada
    em um formato crescente
  • 5:32 - 5:34
    ou decrescente.
  • 5:34 - 5:38
    Se eu utilizasse, por exemplo,
    para clientes,
  • 5:38 - 5:42
    eu poderia indicar que eu estou
    escrevendo os meus clientes
  • 5:42 - 5:46
    em forma alfabética
    ou em forma geográfica,
  • 5:46 - 5:51
    eu poderia demonstrar que eu estou
    dividindo esses meus clientes
  • 5:51 - 5:55
    por estado, por cidades, enfim.
  • 5:55 - 5:59
    São informações inteligentes
    que vão estar associadas
  • 5:59 - 6:02
    e que, além de mostrar
    qual é a informação,
  • 6:02 - 6:06
    vai conseguir organizar
    melhor a minha tabela.
  • 6:06 - 6:09
    Além de todas essas
    chaves fundamentais,
  • 6:09 - 6:14
    existe também uma chave que a gente
    chama de "degenerada", por quê?
  • 6:14 - 6:18
    Porque são informações importantes
    para cada departamento,
  • 6:18 - 6:21
    mas que não servem
    para fazer uma métrica,
  • 6:21 - 6:24
    uma modelagem
    estatística disso.
  • 6:24 - 6:27
    Só que elas precisam estar
    contidas na nossa tabela,
  • 6:27 - 6:31
    e aí, a gente identifica isso
    como "dd", "degenerate key".
  • 6:31 - 6:34
    Então, olha aqui,
    por exemplo,
  • 6:34 - 6:38
    eu tenho a minha tabela Fato
    e a minha tabela Dimensão.
  • 6:38 - 6:41
    Dentro da minha
    dimensão "produto",
  • 6:41 - 6:44
    eu vou ter a descrição
    do que é esse produto.
  • 6:44 - 6:45
    Vamos supor, se eu
    tenho uma camisa,
  • 6:45 - 6:50
    eu direi: "Ah, é uma camisa
    verde, do tamanho G,
  • 6:50 - 6:53
    feita do material poliéster" etc.
  • 6:53 - 6:57
    Então, é uma informação que eu
    não vou criar estatística sobre,
  • 6:57 - 7:01
    mas que é importante estar
    contida aqui na minha tabela,
  • 7:01 - 7:04
    nas minhas informações
    complementares.
  • 7:04 - 7:07
    E aí, a gente identifica
    isso, ou classifica isso,
  • 7:07 - 7:10
    como "degenerate key".
  • 7:10 - 7:14
    E a gente pode também, para
    incrementar e complementar,
  • 7:14 - 7:17
    colocar o sufixo "dd".
  • 7:17 - 7:21
    Mas, como é uma informação
    que a gente não vai utilizar
  • 7:21 - 7:23
    nas nossas estatísticas,
  • 7:23 - 7:27
    então estar identificado ou não,
    não faz tanta diferença assim.
  • 7:27 - 7:30
    Outra regra de ouro para que a gente
    construa de forma saudável
  • 7:30 - 7:36
    a nossa modelagem dimensional
    é se atentar no conceito do "5W3H".
  • 7:36 - 7:38
    E o que isso significa?
  • 7:38 - 7:43
    É a tradução para "por que,
    quando, onde, para quem,
  • 7:43 - 7:46
    quantos, qual a quantidade".
  • 7:46 - 7:49
    Todas essas informações
    são interessantes
  • 7:49 - 7:52
    para que você se direcione
  • 7:52 - 7:56
    na construção
    de respostas de negócios.
  • 7:56 - 7:58
    Então, no que você
    deve se atentar?
  • 7:58 - 8:04
    Que as suas tabelas Fato e Dimensão
    têm que conter essas respostas.
  • 8:04 - 8:07
    Então, não necessariamente
    você tem que ter sempre
  • 8:07 - 8:09
    todas essas informações,
  • 8:09 - 8:14
    mas quanto mais dessas informações
    você tiver na sua tabela, melhor.
  • 8:14 - 8:19
    Um outro conceito fundamental
    é o conceito de granulometria.
  • 8:19 - 8:22
    Vem exatamente da palavra "grãos",
    o tamanho desses grãos.
  • 8:22 - 8:26
    Então, quanto maior
    esse dimensionamento,
  • 8:26 - 8:28
    menor a minha granulometria.
  • 8:28 - 8:31
    Por exemplo, se a gente
    medir datas:
  • 8:31 - 8:37
    datas, eu posso medir por ano,
    por semestre, por bimestre, por dias.
  • 8:37 - 8:43
    Então, quanto mais refinada for,
    maior é a minha granulometria.
  • 8:43 - 8:45
    Pode ser que,
    para o seu negócio,
  • 8:45 - 8:50
    esse diferente grão não
    faça tanta diferença,
  • 8:50 - 8:53
    mas para uma outra
    pergunta de negócio,
  • 8:53 - 8:56
    essa diferenciação
    seja importante.
  • 8:56 - 8:59
    Então, por exemplo,
    se eu quero identificar
  • 8:59 - 9:02
    qual é o melhor dia para eu
    lançar uma promoção,
  • 9:02 - 9:06
    eu preciso ter a minha
    data bem granular.
  • 9:06 - 9:09
    Se eu quero saber qual é o melhor
    mês, eu não preciso do dia,
  • 9:09 - 9:14
    eu preciso das minhas
    informações agrupadas em mês.
  • 9:14 - 9:16
    Por isso esse conceito
    de granulometria,
  • 9:16 - 9:18
    eu posso ter uma dimensão
  • 9:18 - 9:21
    com uma granulometria
    bastante aguçada,
  • 9:21 - 9:23
    mas, para cada
    modelagem dimensional,
  • 9:23 - 9:26
    eu vou puxar
    uma granulometria diferente.
  • 9:26 - 9:31
    Pode ser que, no seu negócio, essa
    diferença não seja significativa.
  • 9:31 - 9:37
    Por exemplo, se você quiser lançar
    uma promoção para aquele mês,
  • 9:37 - 9:40
    o seu grão tem que ser
    agrupado por mês.
  • 9:40 - 9:45
    Agora, você quer saber o melhor dia
    para você lançar uma promoção,
  • 9:45 - 9:48
    o seu grão tem que ser
    agrupado por dia.
  • 9:48 - 9:50
    Então, vai de acordo
    com a pergunta de negócio.
  • 9:50 - 9:54
    O importante é que você
    tenha uma tabela dimensional
  • 9:54 - 9:58
    com todas as datas definidas
    e, para cada modelagem,
  • 9:58 - 10:02
    você vai agrupando de acordo
    com a sua pergunta de negócio.
  • 10:02 - 10:06
    Outro conceito fundamental é você
    entender quais são as dimensões
  • 10:06 - 10:10
    que se alteram lentamente
    ou rapidamente.
  • 10:10 - 10:14
    Então, por exemplo, quando
    a gente tem data de nascimento,
  • 10:14 - 10:18
    na verdade, o que é sua
    pergunta de negócio se refere
  • 10:18 - 10:20
    é sempre a idade.
  • 10:20 - 10:22
    Então, a gente pega
    a data de nascimento,
  • 10:22 - 10:27
    faz a transformação e demonstra
    a idade na resposta de negócios.
  • 10:27 - 10:31
    Só que essa idade vai
    se alterar ano a ano,
  • 10:31 - 10:35
    então é uma dimensão
    que se altera lentamente.
  • 10:35 - 10:38
    Um outro exemplo disso é,
    por exemplo, o seu endereço.
  • 10:38 - 10:40
    Você não se muda todo dia,
  • 10:40 - 10:43
    então esse endereço
    também é uma dimensão
  • 10:43 - 10:45
    que se altera lentamente.
  • 10:45 - 10:50
    Um exemplo de dimensão que
    se altera rapidamente é a venda.
  • 10:50 - 10:53
    De uma venda para outra,
    alterou o produto,
  • 10:53 - 10:55
    então é uma dimensão
    que a gente tem que se atentar,
  • 10:55 - 10:59
    porque, a cada linha, ela
    vai ter uma interação
  • 10:59 - 11:03
    e uma alteração
    bastante significativa.
  • 11:03 - 11:08
    E, agora, para a gente fechar
    os nossos conceitos fundamentais
  • 11:08 - 11:12
    para montar uma boa arquitetura
    de dados dimensionais,
  • 11:12 - 11:17
    é a gente entender mais quatro
    informações importantes.
  • 11:17 - 11:19
    A primeira delas é
    a "junk dimension".
  • 11:19 - 11:23
    "Junk", "lixo",
    o que significa?
  • 11:23 - 11:26
    São informações
    que você precisa ter,
  • 11:26 - 11:29
    mas são informações
    estruturais do seu modelo,
  • 11:29 - 11:33
    são informações
    que muito raramente
  • 11:33 - 11:36
    o departamento
    de analytics vai utilizar.
  • 11:36 - 11:38
    Só que são fundamentais
    para que você não esqueça
  • 11:38 - 11:41
    como o seu modelo
    foi organizado.
  • 11:41 - 11:44
    Então, além de criar a sua
    modelagem tradicional,
  • 11:44 - 11:48
    você vai criar uma outra tabela
    para indicar todas essas estruturas,
  • 11:48 - 11:53
    e vai ser como um guia, como
    um dicionário para sua modelagem.
  • 11:53 - 11:57
    Outro conceito é
    o conceito de "outrigger".
  • 11:57 - 12:03
    Toda vez que você incrementa
    uma dimensão, uma granulometria,
  • 12:03 - 12:06
    você está criando uma tabela
    denominada "outrigger".
  • 12:06 - 12:09
    Por exemplo, quando
    você tem datas
  • 12:09 - 12:14
    e aí você organiza essas datas
    de forma anual, ou diária,
  • 12:14 - 12:15
    ou semestral,
  • 12:15 - 12:20
    cada uma dessas formas são
    classificadas como "outriggers".
  • 12:20 - 12:24
    Não vai interferir em nada, mas
    é um conceito interessante
  • 12:24 - 12:27
    para você tê-las
    já reservadas
  • 12:27 - 12:29
    para quando você
    criar a sua modelagem
  • 12:29 - 12:32
    específica para aquele
    departamento,
  • 12:32 - 12:36
    você já ter essa tabela
    dimensional separada
  • 12:36 - 12:39
    e pronta para montar
    naquela modelagem.
  • 12:39 - 12:43
    Outro conceito fundamental
    é o conceito de "role playing".
  • 12:43 - 12:46
    Normalmente, a gente não
    sai comentando sobre isso,
  • 12:46 - 12:50
    só que ele é um conceito
    que vai te ajudar na estrutura.
  • 12:50 - 12:52
    São tabelas que vão servir
  • 12:52 - 12:56
    para diversos modelos
    dimensionais que você cria.
  • 12:56 - 12:59
    Então, quando você tem
    uma base de endereços
  • 12:59 - 13:03
    e você vincula essa base
    de endereços a um ID,
  • 13:03 - 13:04
    o que você vai fazer?
  • 13:04 - 13:09
    Essa base de endereços vai
    servir para diversos modelos
  • 13:09 - 13:13
    e, em cada modelo, você
    vai puxar apenas esse ID.
  • 13:13 - 13:16
    Esse ID é sempre puxado
    pela surrogate key.
  • 13:16 - 13:21
    Então esse conceito de "playing"
    é muito interessante
  • 13:21 - 13:24
    porque você já vai construindo
    tabelas dimensionais
  • 13:24 - 13:29
    que vão servir para o apoio
    de diversas modelagens.
  • 13:29 - 13:33
    E isso facilita muito o seu trabalho
    à medida que você estiver criando
  • 13:33 - 13:36
    novas modelagens
    para o seu negócio.
  • 13:36 - 13:40
    E, para finalizar, o conceito
    de "bridge table", ou seja,
  • 13:40 - 13:43
    "tabela ponte",
    o que é isso?
  • 13:43 - 13:46
    Novamente, naquele
    formato de granulometria,
  • 13:46 - 13:51
    à medida que eu tenho que utilizar
    informações de tabelas diferentes,
  • 13:51 - 13:57
    de agrupamentos diferentes,
    eu chamo isso de ponte, por quê?
  • 13:57 - 14:02
    Porque, dentro da minha
    tabela ano, eu vou ter o ano,
  • 14:02 - 14:05
    eu vou ter o semestre,
    o bimestre, o dia.
  • 14:05 - 14:09
    E aí, em vez de eu puxar
    a informação semestral
  • 14:09 - 14:12
    que não vai ser importante,
    eu pulo essa informação
  • 14:12 - 14:16
    e pego somente a informação
    diária para construir o meu modelo.
  • 14:16 - 14:18
    Agora, você está pronto
  • 14:18 - 14:22
    para construir modelagens
    dimensionais de forma saudável,
  • 14:22 - 14:26
    assertiva, e que vai perdurar
    ao longo do tempo.
Title:
EADW CAP05 2024 VA03 MODELAGEM DIMENSIONAL BOAS PRATICAS
Video Language:
Portuguese, Brazilian
Duration:
14:30

Portuguese, Brazilian subtitles

Incomplete

Revisions Compare revisions