Práticas recomendadas para a modelagem de dados

Esta seção descreve várias maneiras diferentes para carregar seus dados para o aplicativo Qlik Sense, dependendo de como os dados são estruturados e de qual modelo de dados você deseja alcançar.

Convertendo colunas de dados em linhas

Provavelmente, meus dados estão parecidos com isso e quero os números de vendas em um campo separado:

Tabela de dados originais
Ano Q1 Q2 Q3 Q4
2013 34 54 53 52
2014 47 56 65 67
2015 57 56 63 71

Proposed action  

Use o prefixo Crosstable ao carregar a tabela.

O resultado será semelhante a este:

Tabela após aplicação de prefixo Crosstable
Year Quarter Sales
2013 Q1 34
2013 Q2 54
2013 Q3 53
2013 Q4 52
2014 Q1 47
... ... ...

Para saber mais sobre crosstables, consulte Trabalhando com tabelas cruzadas no script de carregamento de dados e Crosstable.

Convertendo linhas de dados em campos

Eu tenho uma tabela genérica com três campos semelhantes a isso, e quero que cada atributo seja uma tabela separada:

Tabela genérica com três campos
Object Attribute Value
ball color red
ball diameter 25
ball weight 3
box color 56
box height 30
box length 20
box width 25

Proposed action  

Crie um modelo de dados genérico usando o prefixo de carregamento Generic.

O resultado será um modelo de dados parecido com esse:

Generic data model.

Para saber mais sobre como dados genéricos, consulte Bancos de dados genéricos e Generic.

Carregando dados organizados em níveis hierárquicos, por exemplo, um esquema de organização

Meus dados são armazenados em uma tabela de nós adjacentes parecida com isso:

Tabela de nós adajcentes
NodeID ParentNodeID Title
1 - General manager
2 1 Country manager
3 2 Region manager

Proposed action  

Carregue os dados com o prefixo Hierarchy para criar uma tabela de nós expandidos

Tabela de nós expandidos
NodeID ParentNodeID Title Level1 Level2 Level3
1 - General manager General manager - -
2 1 Country manager General manager Country manager -
3 2 Region manager General manager Country manager Region manager

Para saber mais sobre níveis hierárquicos, consulte Carregando dados da hierarquia e Hierarchy.

Carregando apenas registros novos e atualizados de um grande banco de dados

Tenho um banco de dados com um grande número de registros e não quero carregar todo o banco de dados para atualizar os dados no meu aplicativo. Quero carregar apenas registros novos e atualizados e remover registros excluídos do banco de dados.

Proposed action  

Implemente uma solução de carga incremental usando arquivos QVD.

Para obter mais informações, consulte Carregando registros novos e atualizados com carregamento incremental.

Combinando dados de duas tabelas com um campo comum

O Qlik Sense associará automaticamente tabelas com um campo em comum, mas quero controlar como as tabelas serão combinadas.

Proposed action : Join / Keep

Você pode combinar duas tabelas em uma única tabela interna com os prefixos Join ou Keep.

Para obter mais informações, consulte Combinando tabelas com Join e Keep.

Proposed action : Mapeamento

Um alternativa para fundir tabelas é usar o mapeamento, que automatiza a pesquisa por valores associados em uma tabela de mapeamento. O que pode reduzir a quantidade de dados para carregar.

Para obter mais informações, consulte Usando o mapeamento como uma alternativa à junção.

Combinando um valor discreto com um intervalo

Tenho uma tabela de valores numéricos discretos (Event), e quero combiná-la em um ou mais intervalos (Start e End).

Tabela de valores numéricos discretos (Event)
Time Evento Comentário
00:00 0 Começo do turno 1
01:18 1 Parada de linha
02:23 2 Reinício da linha 50%
04:15 3 Velocidade da linha 100%
08:00 4 Começo do turno 2
11:43 5 Fim da produção
Tabela com intervalos (Start e End)
Iniciar Fim Ordem
01:00 03:35 A
02:30 07:58 B
03:04 10:27 C
07:23 11:43 D

Proposed action  

Use o prefixo IntervalMatch para vincular o campo Time com o intervalo definido pelo Start e End.

Para obter mais informações, consulte Correspondendo intervalos a dados discretos.

Se o intervalo não for explicitamente definido com início e término, apenas com uma mudança na data e hora como na tabela abaixo, será preciso criar uma tabela de intervalos.

Tabela com carimbo de data/hora de alteração
Moeda Alterar dados Rate
EUR - 8.59
EUR 28/01/2013 8.69
EUR 15/02/2013 8.45
Dólar americano - 6.50
Dólar americano 10/01/2013 6.56
Dólar americano 03/02/2013 6.30

Para obter mais informações, consulte Criando um intervalo de datas a partir de uma única data.

Manuseando valores de campo inconsistentes

Meus dados contêm valores de campo em tabelas diferentes que não têm o mesmo nome. Por exemplo, uma tabela contém o valor US em País, enquanto outra tabela contémUnited States. Essa situação impedirá associações.

Tabela 1
País Região
US Maryland
US Idaho
US Nova York
US Califórnia
Table 2
Country Population
United States 304
Japan 128
Brazil 192
China 1333

Proposed action  

Limpe os dados usando uma tabela de mapeamento, que compara valores de campo e permite associações corretas.

Para obter mais informações, consulte Limpeza de dados.

Manuseando capitalização de valor de campo inconsistente

Meus dados contêm valores de campo em tabelas diferentes que não têm o mesmo formato. Por exemplo, uma tabela contém o valor single em Type enquanto outra tabela contém Single no mesmo campo. Essa situação impedirá associações, pois o campo Type conterá ambos os valores single e Single, diferenciando a capitalização.

Tabela 1
Tipo Preço
único 23
duplo 39
Tabela 2
Tipo Cor
Única Vermelho
Única Azul
Duplo Branco
Duplo Preto

Proposed action  

Se você carregou os dados com Adicionar dados, pode corrigir isso no gerenciador de dados.

Faça o seguinte:

  1. No gerenciador de dados, abraTable2 no editor de tabela.
  2. Renomeie o campo Type para Table2.Type.

    Se você tiver acabado de adicionar a tabela com Adicionar dados com a análise de dados habilitada, o campo já pode ter sido nomeado como Table2.Type para impedir associação automática. Nesse caso, esse procedimento associará as duas tabelas.

  3. Crie um campo calculado usando a expressão Lower(Table2.Type)Lower(Table2.Type) e chame-o de Type.
  4. Clique em Carregar dados.

Table1 e Table2 agora devem ser associados pelo campo Type, que só contém valores em minúscula, como single e double.

Se quiser usar uma capitalização diferente, também é possível usar procedimentos semelhantes, mas lembre-se que as tabelas serão associadas usando os campos com o mesmo nome.

  • Para que todos os valores estejam em maiúscula, como Single, crie o campo calculado Type em Table1 em vez disso e use a expressão Capitalize(Table1.Type).
  • Para que todos os valores estejam em maiúsculas, como SINGLE, crie o campo calculado Type em ambas as tabelas e use as expressões Upper(Table1.Type) e Upper(Table2.Type), respectivamente.

Para saber mais sobre campos calculados, consulte Usando campos calculados.

Para saber mais sobre capitalização, consulte Capitalize – função de script e gráfico, Lower – função de script e gráfico e Upper – função de script e gráfico.

Carregando dados geoespaciais para visualizar dados com um mapa

Tenho dados que gostaria de visualizar usando um mapa, por exemplo, dados de vendas por país ou por loja. Para usar a visualização em mapa, preciso carregar dados de área ou ponto.

Proposed action  

Você pode carregar os dados de área ou ponto que combinem locais de valor de dados de um arquivo KML ou um arquivo Excel. Além disso, você precisa carregar o verdadeiro mapa de fundo.

Para obter mais informações, consulte Carregando seus próprios dados de mapa.