Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
junior_ehlke
Creator III
Creator III

Duvida, melhor estrutura de dados

Bom dia, preciso de uma opinião para estruturar uma carga.

hoje eu tenho 4 tabelas com movimentação detalhada dos produtos, "FatoPerdaDetalhe", "FatoDevolucao",FatoDevolucoesVenda" e "VendaDetalhe". Nelas eu tenho algunas campos como unidade e codigo do produto. Agora eu preciso saber o nome do produtos e outras informações, portanto eu criei uma tabela DimProdutos, onde no final ta tabela tem o mes e ano que foi gravada, a ideia é ter um cadastro de produtos por mes para que se alguma informação seja alterada no cadastro, eu consiga ver como estava antes.

Para interligar a tabela "VendaDetalhe" com a "DinProdutos" eu usei AutoHash128 com os campos id_data e codigo do produto.

O Problema é quando eu faço isso para as outras tabelas, o sistema vai criar chave sintéticas e usa toda a memoria do servidor na caga, acredito que seja pela quantidade de dados que eu tenho dentro de cada tabela (+ 10 mi ). Quero uma ajuda para resolver isso, pensei até em criar uma tabela "DimProdutos" para cada tabela Fato.

Labels (1)
1 Solution

Accepted Solutions
fernando_tonial
Partner - Specialist
Partner - Specialist

Olá Hamilton,

Realmente o modelo estrela é o mais indicado para o Qlik.

Essa imagem mostra um modelo estrela, onde temos uma tabela central com as métricas e suas dimensões associadas a ela.

03-07-2014 13-32-49.png

Você pode concatenar essas tabelas em apenas uma. Fazendo assim:

Fato:

LOAD *

From FatoPerdaDetalhe;

Concatenate(Fato)

LOAD *

From FatoDevolucao;

Concatenate(Fato)

LOAD *

From FatoDevolucoesVenda;

Concatenate(Fato)

LOAD *

From VendaDetalhe;

Qlikfique-se.

Tonial.

Don't Worry, be Qlik.

View solution in original post

11 Replies
junior_ehlke
Creator III
Creator III
Author

Mesma coisa com a tabela "DimDifVenda"

rphpacheco
Creator III
Creator III

Hamilton.

Acredito que no seu caso o ideal é implementar o conceito estrela. Nele, você cria uma tabela central com os campos comuns entre as tabelas (Ex: id_tempo, id_unidade) e suas respectivas chaves.

Todos os campos que estão na estrela você os dropa das tabelas secundárias. Assim você eliminará a ocorrência de chaves sintéticas sem ter que renomear os campos.

Abraço!

junior_ehlke
Creator III
Creator III
Author

Raphael, você tem algum exemplo desse modelo Estrela para eu dar uma olhada?

Achei esse artigo

dicasqlikview.blogspot.com.br/2013/07/modelo-de-dados-no-qlikview.html

porém gostaria de ver alguma estrutura pronta.

Pq eu acho que a minha estrutura não esta legal.

fernando_tonial
Partner - Specialist
Partner - Specialist

Olá Hamilton,

Realmente o modelo estrela é o mais indicado para o Qlik.

Essa imagem mostra um modelo estrela, onde temos uma tabela central com as métricas e suas dimensões associadas a ela.

03-07-2014 13-32-49.png

Você pode concatenar essas tabelas em apenas uma. Fazendo assim:

Fato:

LOAD *

From FatoPerdaDetalhe;

Concatenate(Fato)

LOAD *

From FatoDevolucao;

Concatenate(Fato)

LOAD *

From FatoDevolucoesVenda;

Concatenate(Fato)

LOAD *

From VendaDetalhe;

Qlikfique-se.

Tonial.

Don't Worry, be Qlik.
junior_ehlke
Creator III
Creator III
Author

Fernando, Obrigado, concatenando elas eu reduzi consideravelmente o numero de tabelas, só vou conferir os valores para ver se confere, apesar que eu tenho mais de uma tabela fato no sistema e a dimensão tempo esta criando chaves entre elas, o que me sugere?

fernando_tonial
Partner - Specialist
Partner - Specialist

Concatene todas as fatos em apenas uma tabela fato, assim você buscará um modelo estrela.

Qlikfique-se

Tonial.

Don't Worry, be Qlik.
junior_ehlke
Creator III
Creator III
Author

A diferença na estrutura esta gigantesca mas acredito que eu tenha feito algo errado,

a carga esta demorando muito mais do que antes.

fernando_tonial
Partner - Specialist
Partner - Specialist

Realmente será bem diferente, você deve sempre evitar as chaves sintéticas, que geram as tabelas $Syn 1 Table.

Sempre procurando fazer a chave entre as tabelas por apenas um campo, no seu caso são mais de um.

Qlikfique-se

Tonial.

Don't Worry, be Qlik.
junior_ehlke
Creator III
Creator III
Author

É, vou ter que estudar melhor minha estrutura, a carga anterior demorava 1,2 minutos, agora esta demorando 6 minutos. Os valores estão todos corretos, porém ficou muito lento para trabalhar no sistema. Achei estranho.