Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
junior_ehlke
Contributor 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.

Tags (1)
1 Solution

Accepted Solutions
fernando_tonial
Valued Contributor

Re: Re: Duvida, melhor estrutura de dados

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.

11 Replies
junior_ehlke
Contributor III

Re: Duvida, melhor estrutura de dados

Mesma coisa com a tabela "DimDifVenda"

rphpacheco
Contributor III

Re: Duvida, melhor estrutura de dados

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
Contributor III

Re: Duvida, melhor estrutura de dados

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
Valued Contributor

Re: Re: Duvida, melhor estrutura de dados

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.

junior_ehlke
Contributor III

Re: Duvida, melhor estrutura de dados

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
Valued Contributor

Re: Duvida, melhor estrutura de dados

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

Qlikfique-se

Tonial.

junior_ehlke
Contributor III

Re: Duvida, melhor estrutura de dados

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
Valued Contributor

Re: Duvida, melhor estrutura de dados

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.

junior_ehlke
Contributor III

Re: Duvida, melhor estrutura de dados

É, 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.