O documento apresenta boas práticas para desenvolvimento em Qlik Sense, incluindo transformações de dados, modelagem, trabalhar com datas e resolução de bugs. Ele discute condicionais, QVD otimizado, join, keep, datas, subrotinas e outras técnicas.
1. BOAS PRÁTICAS DE
DESENVOLVIMENTO
EM QLIK SENSE
Departamento de Monitoramento e
Avaliação do SUS (DEMAS)
Ministério da Saúde
Dia 2
1. Transformação
a. Condicionais
b. QVD Otimizado
2. Modelagem
a. Join
b. Keep
c. Chaves sintéticas
3. Trabalhando com Datas
4. Resolvendo bugs
5. Subrotinas
2. Dia 2
BOAS PRÁTICAS DE
DESENVOLVIMENTO EM QLIK SENSE 23/03/2023
Transformações
9. QVD otimizado
Carga otimizada:
• Renomear campos
• LOAD DISTINCT
• Omitir Campos (OMIT – Section
Access)
• Where Exists Simples
Carga NÃO otimizada:
• Adição de novos campos para a
tabela
• Derivando novos valores a partir de
um campo na QVD
• Recuperando um campo duas
vezes
• Mais condições WHERE
• JOIN em uma tabela de memória
• Carregando dados em uma tabela
de mapeamento (mapping load)
11. LOAD * INLINE
É possível criar dados dentro do próprio script de Qlik, com campos e valores.
É usado principalmente para consertar valores de outras tabelas ou para definir o
que será carregado em um QVD otimizado
Por padrão a separação
de campos no LOAD *
INLINE se dá por meio
da vírgula, porém é
possível alterar
utilizando o seguinte
comando:
(delimiter is ‘|’ )
12. Resident
Utilizado para carregar dados de uma tabela já existente na memória do Qlik.
Útil quando precisa fazer alterações em campos e criação de tabelas derivadas
Pontos de atenção:
Se você copia todos os campos
de uma tabela você terá duas
tabelas iguais e é necessário
atuar na modelagem para que
não existam tabelas duplicadas.
13. Preceding Load
Utilizado para fazer cálculos e edições em campos criados no Load abaixo sem a
necessidade de um Resident
Ponto de atenção:
Ao fazer a carga de diversos
arquivos que serão
concatenados, a função de
Precedind Load pode
apresentar erros, por isso,
nestes casos é
recomendado utilizar o
Resident
15. Tipos de Modelagem
Tabela Única
Mais simples de trabalhar.
Geralmente utilizada para arquivos excel/csv
onde os usuários já fizeram as transformações
dentro do próprio software.
Porém, também é possível criar esse modelo de
dados dentro do Qlik.
Recomendado para quando não existem muitos
dados na tabela.
16. Tipos de Modelagem
Esquema Floco de neve
(SnowFlake schema)
Modelo mais difícil de
trabalhar e também que
apresenta maiores
lentidões para o Engine do
Qlik.
Utilizado em projetos bem
específicos, especialmente
quando a junção de tabelas
pode resultar num grande
aumento de memória.
17. Tipos de Modelagem
Esquema Estrela
(Star schema)
Modelo mais recomendado
para atuar com grandes
números de dados.
Cada tabela dimensão está
a somente uma chave de
ligação com a tabela fato.
Bom tempo de resposta
tanto na carga quanto nas
visualizações
21. NoConcatenate
Tabelas com a mesma quantidade de
campos e os mesmos nomes são
concatenadas automaticamente
Para evitar que essa concatenação ocorra, é
possível usar o comando NoConcatenate.
Isso ocorre muito quando se está utilizando o
Resident para trazer uma tabela já existente.
É importante tomar cuidado para não gerar
duas tabelas iguais e criar chaves sintéticas.
Load
CNES,
UF,
LEITOS
From TabelaA
NoConcatenate
Load
CNES,
UF,
LEITOS
Resident TabelaA
22. Join
Joins são utilizados para combinar diferentes tabelas por meio de uma chave
de associação. Após a associação o resultado é uma única tabela com todas
combinações realizadas.
23. Keep
É utilizado para trabalhar com a
combinação de dados, porém
ele mantém as duas tabelas
separadas, deixando o trabalho
de associação com a engine
do qlik sense
24. ApplyMap
A função ApplyMap é utilizada para mapear a saída de uma expressão com
base em uma tabela de mapeamento previamente carregada
Sintaxe: ApplyMap(‘Nome_da_tabela_de mapeamento’, Campo, ‘Mapeamento_default’)
28. Group By
Load Vendedor, Sum(Valor)
From TabelaA
Group by Vendedor
Tabela A
Vendedor Data Valor
Gustavo 01/01/2018 10
Daniel 01/02/2018 5
Gustavo 01/01/2018 20
Fernando 01/01/2018 15
Fernando 01/02/2018 10
Vendedor Valor
Gustavo 30
Daniel 5
Fernando 25
30. Gráfico de Combinação
Subrotinas
Subrotinas são utilizadas para facilitar a execução de scripts repetitivos, limpar e organizar o
código e encapsular trechos de código.
Premissas:
1. Devem iniciar com o comando [SUB] e finalizar com [END SUB]
2. Devem ser declaradas antes de serem chamadas no código
3. Possuem escopo de declaração (Se declarada em um if, poderá ser usada somente
dentro deste if)
4. Para chamar a função deve-se usar o comando [Call]
Sintaxe
Sub nomeSub()
name [ ( paramlist )] statements
end sub;
Call nomeSub();
33. Chave Sintética
O Qlik Sense cria chaves sintéticas quando duas ou mais tabelas de dados têm
dois ou mais campos em comum. Essas chaves são campos anônimos que
representam todas as combinações ocorridas da chave composta.
34. Como resolver ?
- Usar um Alias ou remover o campo.
- Criar uma chave composta.
- Qualify *
- Concatenate
- Link Table
35. Dia 2
BOAS PRÁTICAS DE
DESENVOLVIMENTO EM QLIK SENSE 23/03/2023
Trabalhando com Datas