SlideShare uma empresa Scribd logo
1 de 37
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
Dia 2
BOAS PRÁTICAS DE
DESENVOLVIMENTO EM QLIK SENSE 23/03/2023
Transformações
1. If
2. Pick
3. Match
4. Wildmatch
5. Pick + Match
Condicionais
1. If
2. Pick
3. Match
4. Wildmatch
5. Pick + Match
Condicionais
1. If
2. Pick
3. Match
4. Wildmatch
5. Pick + Match
Condicionais
1. If
2. Pick
3. Match
4. Wildmatch
5. Pick + Match
Ordenação
1. If
2. Pick
3. Match
4. Wildmatch
5. Pick + Match
Condicionais
1. If
2. Pick
3. Match
4. Wildmatch
5. Pick +
Match
Condicionais
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)
Visualizador do Modelo de Dados
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 ‘|’ )
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.
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
Dia 2
BOAS PRÁTICAS DE
DESENVOLVIMENTO EM QLIK SENSE 23/03/2023
Modelagem
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.
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.
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
Tipos de Modelagem
Como fazer relações no Qlik
TABELA ÚNICA
• CONCATENATE
• NOCONCATENATE
JOIN
• OUTER
• INNER
• LEFT
• RIGHT
KEEP
• OUTER
• INNER
• LEFT
• RIGHT
Concatenate
TabelaA TabelaB
Load * From TabelaA
Concatenate(TabelaA)
Load * From TabelaB
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
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.
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
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’)
Qualify
Coloca o nome da Tabela nos Campos
Qualify
Coloca o nome da Tabela no Campo "Nome"
UnQualify
Desativa a qualificação para as próximas tabelas
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
Dia 2
BOAS PRÁTICAS DE
DESENVOLVIMENTO EM QLIK SENSE 23/03/2023
Subrotinas
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();
SubRotina
Essa SubRotina realiza a multiplicação do parâmetro utilizado
SubRotina
Essa subrotina substitui o caractere "@" por "$" em tempo de execução do script.
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.
Como resolver ?
- Usar um Alias ou remover o campo.
- Criar uma chave composta.
- Qualify *
- Concatenate
- Link Table
Dia 2
BOAS PRÁTICAS DE
DESENVOLVIMENTO EM QLIK SENSE 23/03/2023
Trabalhando com Datas
Calendário Mestre
Criação de um calendário
Mestre utilizando variáveis e
AutoGenerate
DÚVIDAS

Mais conteúdo relacionado

Semelhante a Treinamento Qlik - Desenvolvedores - Dia 02.pptx

Alta Disponibilidade TechEd
Alta Disponibilidade TechEdAlta Disponibilidade TechEd
Alta Disponibilidade TechEd
Viviane_ribeiro
 
Maplink - Proposta Processos de Teste_v3.ppt
Maplink - Proposta Processos de Teste_v3.pptMaplink - Proposta Processos de Teste_v3.ppt
Maplink - Proposta Processos de Teste_v3.ppt
Sergio Rubio
 

Semelhante a Treinamento Qlik - Desenvolvedores - Dia 02.pptx (20)

Machine Learning com Vowpal Wabbit
Machine Learning com Vowpal WabbitMachine Learning com Vowpal Wabbit
Machine Learning com Vowpal Wabbit
 
GraphQL na GetNinjas (2017-09-20)
GraphQL na GetNinjas (2017-09-20)GraphQL na GetNinjas (2017-09-20)
GraphQL na GetNinjas (2017-09-20)
 
Integração dados prática ppt
Integração dados prática pptIntegração dados prática ppt
Integração dados prática ppt
 
Tdc2015
Tdc2015Tdc2015
Tdc2015
 
TUTORIAL-QUANTUM-GIS.pdf
TUTORIAL-QUANTUM-GIS.pdfTUTORIAL-QUANTUM-GIS.pdf
TUTORIAL-QUANTUM-GIS.pdf
 
Refactoring Databases
Refactoring DatabasesRefactoring Databases
Refactoring Databases
 
Indicadores de Aderência
Indicadores de AderênciaIndicadores de Aderência
Indicadores de Aderência
 
Pgbr2013
Pgbr2013Pgbr2013
Pgbr2013
 
Apresentação dissertação
Apresentação dissertaçãoApresentação dissertação
Apresentação dissertação
 
MySQL 5.6, o que há de novidade?
MySQL 5.6, o que há de novidade?MySQL 5.6, o que há de novidade?
MySQL 5.6, o que há de novidade?
 
pgDay Campinas 2013 - PostgreSQL XC in Cloud IaaS
pgDay Campinas 2013 - PostgreSQL XC in Cloud IaaSpgDay Campinas 2013 - PostgreSQL XC in Cloud IaaS
pgDay Campinas 2013 - PostgreSQL XC in Cloud IaaS
 
PGDay Campinas 2013 - Postgres XC @ Cloud
PGDay Campinas 2013 - Postgres XC @ CloudPGDay Campinas 2013 - Postgres XC @ Cloud
PGDay Campinas 2013 - Postgres XC @ Cloud
 
Apresentação proposta de processo e estrutura técnica para implantação de tes...
Apresentação proposta de processo e estrutura técnica para implantação de tes...Apresentação proposta de processo e estrutura técnica para implantação de tes...
Apresentação proposta de processo e estrutura técnica para implantação de tes...
 
Alta Disponibilidade TechEd
Alta Disponibilidade TechEdAlta Disponibilidade TechEd
Alta Disponibilidade TechEd
 
Indo para o proximo nivel: MCSM e MCA em SQL Server 2012
Indo para o proximo nivel:  MCSM e MCA em SQL Server 2012Indo para o proximo nivel:  MCSM e MCA em SQL Server 2012
Indo para o proximo nivel: MCSM e MCA em SQL Server 2012
 
Arquitetura de sistemas web
Arquitetura de sistemas webArquitetura de sistemas web
Arquitetura de sistemas web
 
Geração de Energia (Thiago Cesar-EPE) OPENDAY PUC-RIO
Geração de Energia (Thiago Cesar-EPE) OPENDAY PUC-RIOGeração de Energia (Thiago Cesar-EPE) OPENDAY PUC-RIO
Geração de Energia (Thiago Cesar-EPE) OPENDAY PUC-RIO
 
TDC2016SP - SparkMLlib Machine Learning na Prática
TDC2016SP -  SparkMLlib Machine Learning na PráticaTDC2016SP -  SparkMLlib Machine Learning na Prática
TDC2016SP - SparkMLlib Machine Learning na Prática
 
Ténicas de Database Refactoring para ambientes 24x7
Ténicas de Database Refactoring para ambientes 24x7Ténicas de Database Refactoring para ambientes 24x7
Ténicas de Database Refactoring para ambientes 24x7
 
Maplink - Proposta Processos de Teste_v3.ppt
Maplink - Proposta Processos de Teste_v3.pptMaplink - Proposta Processos de Teste_v3.ppt
Maplink - Proposta Processos de Teste_v3.ppt
 

Treinamento Qlik - Desenvolvedores - Dia 02.pptx

  • 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
  • 3. 1. If 2. Pick 3. Match 4. Wildmatch 5. Pick + Match Condicionais
  • 4. 1. If 2. Pick 3. Match 4. Wildmatch 5. Pick + Match Condicionais
  • 5. 1. If 2. Pick 3. Match 4. Wildmatch 5. Pick + Match Condicionais
  • 6. 1. If 2. Pick 3. Match 4. Wildmatch 5. Pick + Match Ordenação
  • 7. 1. If 2. Pick 3. Match 4. Wildmatch 5. Pick + Match Condicionais
  • 8. 1. If 2. Pick 3. Match 4. Wildmatch 5. Pick + Match Condicionais
  • 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
  • 14. Dia 2 BOAS PRÁTICAS DE DESENVOLVIMENTO EM QLIK SENSE 23/03/2023 Modelagem
  • 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
  • 19. Como fazer relações no Qlik TABELA ÚNICA • CONCATENATE • NOCONCATENATE JOIN • OUTER • INNER • LEFT • RIGHT KEEP • OUTER • INNER • LEFT • RIGHT
  • 20. Concatenate TabelaA TabelaB Load * From TabelaA Concatenate(TabelaA) Load * From TabelaB
  • 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’)
  • 25. Qualify Coloca o nome da Tabela nos Campos
  • 26. Qualify Coloca o nome da Tabela no Campo "Nome"
  • 27. UnQualify Desativa a qualificação para as próximas tabelas
  • 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
  • 29. Dia 2 BOAS PRÁTICAS DE DESENVOLVIMENTO EM QLIK SENSE 23/03/2023 Subrotinas
  • 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();
  • 31. SubRotina Essa SubRotina realiza a multiplicação do parâmetro utilizado
  • 32. SubRotina Essa subrotina substitui o caractere "@" por "$" em tempo de execução do script.
  • 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
  • 36. Calendário Mestre Criação de um calendário Mestre utilizando variáveis e AutoGenerate