Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Qlik Sense
2.0.2
Copyright 1993-2015 QlikTech International AB. Todos os direitos reservados.
Contedo
1 Sobre este documento
11
12
12
12
13
13
13
14
14
14
15
15
16
16
17
17
18
18
18
19
20
20
20
20
20
21
21
22
23
24
24
24
24
Visualizando recomendaes
Duas fontes de dados contm um campo com dados relacionados, mas com nomes
25
diferentes
Duas fontes de dados contm campos com o mesmo nome, mas dados no relacionados
Duas tabelas contm mais de um campo em comum
Carregando dados
Ignorando recomendaes
Retornando etapa anterior (Add data)
3 Carregando dados com o script de carga de dados
25
26
26
26
26
27
28
28
30
Contedo
Conectar s fontes de dados
Criando uma nova conexo de dados
Excluindo uma conexo de dados
Editando uma conexo de dados
Inserindo uma string de conexo
Selecionando dados de uma conexo de dados
Fazendo referncia a uma conexo de dados no script
Onde a conexo de dados armazenada?
Conexes de dados ODBC
Criando uma nova conexo de dados ODBC
Editando uma conexo de dados ODBC
Melhores prticas ao usar conexes de dados ODBC
Conexes de dados OLE DB
Criando uma nova conexo de dados OLE DB
Editando uma conexo de dados OLE DB
Aspectos de segurana ao conectar-se com conexes de dados OLE DB baseadas
30
30
31
31
32
32
32
33
33
33
34
34
34
34
35
em arquivos
Conexes de dados de pasta
Criando uma nova conexo de dados de pasta
Editando uma conexo de dados de pasta
Conexes de dados de arquivo da Web
Criar uma nova conexo de dados de arquivo da Web
Editando uma conexo de dados de arquivo da Web
Carregando dados de arquivos
Selecionando dados de uma conexo de dados
Carregando dados de um arquivo escrevendo um cdigo de script
Como preparar arquivos do Excel para o carga com o Qlik Sense
Carregando dados de bancos de dados
Carregando dados de um banco de dados ODBC
ODBC
OLE DB
Lgica nas bases de dados
Selecionar dados para carregar
Selecionando dados de um banco de dados
Selecionando o banco de dados
Selecionando tabelas e visualizaes
Selecionando campos
Renomeando campos
Visualizando o script
Incluindo o comando LOAD
Inserindo no script
Selecionando dados de um arquivo de tabela delimitado
Configurando as opes do arquivo
Selecionando campos
Renomeando campos
Visualizando o script
36
36
36
37
37
37
37
38
38
38
39
40
40
40
41
41
42
42
42
42
42
43
44
44
44
44
44
45
45
46
Contedo
Inserindo o script
Selecionando dados de um arquivo do Microsoft Excel
Selecionando tabelas
Selecionando campos
Renomeando campos
Visualizando o script
Inserindo o script
Selecionando dados de um arquivo de tabela de registro fixo
Configurando as opes do arquivo
Configurando as posies de interrupo de campo
Selecionando campos
Renomeando campos
Visualizando o script
Inserindo o script
Selecionando dados de um arquivo QVD ou QVX
Selecionando campos
Renomeando campos
Visualizando o script
Inserindo o script
Selecionando dados de um arquivo HTML
Selecionando tabelas
Selecionando campos
Renomeando campos
Visualizando o script
Inserindo o script
Selecionando dados de um arquivo XML
Selecionando tabelas e campos
Renomeando campos
Visualizando o script
Inserindo o script
Selecionando dados de um arquivo KML
Selecionando tabelas e campos
Renomeando campos
Visualizando o script
Inserindo o script
Editar o script de carga de dados
Organizando o cdigo de script
Criando uma nova seo de script
Excluindo uma seo de script
Renomeando uma seo de script
Reorganizando sees de script
Comentando no script
Comentando
Removendo o comentrio
Pesquisando no script de carregamento
Pesquisando
46
46
46
47
47
47
48
48
48
49
49
49
49
49
50
50
50
50
51
51
51
51
52
52
53
53
53
53
54
54
54
54
54
55
55
55
57
57
57
57
57
58
58
58
58
59
Contedo
Substituindo
Desbloqueando seo autogerada
Salvando o script de carregamento
Depurar o script de carga de dados
Barra de ferramentas da depurao
Sada
Variveis
Definindo uma varivel como favorita
Filtrando variveis
Pontos de interrupo
Adicionando um ponto de interrupo
Excluindo pontos de interrupo
Ativando e desativando pontos de interrupo
Executar o script para carregar os dados
Barras de ferramentas do editor da carga de dados
Barra de ferramentas principal
Barra de ferramentas do editor
3.2 Compreendendo os tipos de dados
59
59
60
60
61
61
61
62
62
62
62
62
63
63
63
63
64
64
64
65
65
65
65
66
66
66
66
67
67
68
68
69
70
70
71
71
71
72
73
73
73
73
74
74
75
77
Contedo
Diretrizes para a quantidade de dados carregados
Limites superiores para tabelas de dados e campos
Limite recomendado para sees de script de carga
Convenes para formatos de nmero e hora
Formatos numricos
Formatos numricos especiais
Datas
Horas
Data/hora
3.4 Entendendo as referncias circulares
77
77
77
77
77
78
79
80
81
81
82
83
84
Concatenao automtica
Concatenao forada
Evitando a concatenao
3.7 Carregando dados de uma tabela carregada anteriormente
84
84
85
85
86
86
87
88
89
89
89
90
90
90
90
90
91
91
91
91
92
O smbolo de asterisco
OtherSymbol
3.11 Tratamento do valor NULL
92
92
93
93
94
94
94
95
95
97
97
Contedo
Aumentando a velocidade de carga
Diminuindo a carga nos servidores de base de dados
Consolidando dados de vrios aplicativos
Carga incremental
Criando arquivos QVD
Lendo os dados de arquivos QVD
4.2 Gerenciando a segurana com seo de acesso
Sees no script
Campos do sistema de seo de acesso
Reduo dinmica de dados
Restries de acesso herdadas
4.3 Acessando grandes conjuntos de dados com Direct Discovery
Diferenas entre os dados em memria e os dados do Direct Discovery
Modelo na memria
Direct Discovery
Diferenas de desempenho entre os campos da memria e os campos do Direct
Discovery
Diferenas entre os dados da memria e os dados do banco de dados
Armazenamento em cache e o Direct Discovery
Tipos de campo do Direct Discovery
Campos DIMENSION
Campos MEASURE
Campos DETAIL
Fontes de dados suportadas no Direct Discovery
SAP
Google Big Query
MySQL e Microsoft Access
Limitaes no uso do Direct Discovery
Tipos de dados suportados
Segurana
Funcionalidades do Qlik Sense no suportadas
Suporte a vrias tabelas no Direct Discovery
Vinculando tabelas do Direct Discovery com uma clusula Where
Vinculando tabelas do Direct Discovery com clusulas Join On
Usando subconsultas com o Direct Discovery
Cenrio 1: Cardinalidade baixa
Cenrio 2: Usando subconsultas
Registrando em log o acesso ao Direct Discovery
5 Visualizando o modelo de dados
97
97
97
98
98
98
98
99
99
101
102
102
102
102
104
106
107
108
109
109
109
110
110
110
110
110
111
111
111
112
112
112
113
114
115
116
116
118
5.1 Exibies
118
119
Movendo tabelas
Redimensionando tabelas
5.3 Visualizao de tabelas e campos no visualizador do modelo de dados
119
119
119
120
Contedo
Mostrando uma visualizao de um campo
5.4 Criando uma dimenso principal a partir do visualizador do modelo de dados
120
121
121
122
123
123
123
124
125
125
125
126
127
127
128
Anexar apenas
Inserir apenas (sem atualizar nem excluir)
Inserir e atualizar (sem excluir)
Inserir, atualizar e excluir
6.11 Combinando tabelas com Join e Keep
129
129
129
130
131
131
132
132
132
133
134
136
137
139
141
142
142
144
6.17 Hierarquias
146
147
147
149
149
151
151
Tabelas de mapeamento
151
Contedo
Regras:
Usando uma tabela de mapeamento
152
152
10
Quando um aplicativo Qlik Sense for criado, o primeiro passo adicionar alguns dados para explorar e
analisar. Este documento descreve como adicionar e gerenciar dados, como criar um script de carga de
dados para modelos de dados mais avanados, como visualizar o modelo de dados resultante no
visualizador do modelo de dados e apresenta as melhores prticas para a modelagem de dados no Qlik
Sense.
Existem duas maneiras de adicionar dados ao aplicativo.
l
Gerenciador de dados
Voc pode adicionar dados de suas prprias fontes de dados ou de outras fontes, tais como Qlik
DataMarket, sem aprender uma linguagem de script. Selees de dados podem ser editadas, e voc
pode obter assistncia para a criao das associaes de dados em seu modelo de dados.
Data load editor
Voc pode criar um modelo de dados com os processos ETL (Extract, Transform & Load) usando a
linguagem de script de carga de dados do Qlik Sense. A linguagem de script poderosa e permite a
realizao de transformaes complexas e a criao de um modelo de dados expansvel.
Lembre-se de consultar o guia do Conceitos no Qlik Sense para aprender mais sobre os conceitos bsicos
relacionados aos diferentes tpicos apresentados.
Para obter referncia detalhada sobre funes de script e funes de grfico, consulte o Guia
de sintaxe de script e funes do grfico.
Este documento baseia-se na ajuda on-line do Qlik Sense. Ele destinado para aqueles que desejar ler
partes da ajuda off-line ou pginas de impresso com facilidade e no incluir quaisquer informaes
adicionais comparadas com a ajuda on-line.
Use a ajuda on-line ou os outros documentos para saber mais.
Os seguintes documentos esto disponveis:
l
Criando visualizaes
Descobrindo e analisando
11
O Gerenciador de dados onde voc adiciona e gerencia dados de suas prprias fontes de dados ou do
Qlik DataMarket, para poder us-los em seu aplicativo. As Tabelas de dados contm todas as tabelas que
voc carregou usando Adicionar dados. Cada tabela exibida com o nome da tabela, o nmero dos
campos de dados e o nome da fonte de dados.
Voc pode visualizar os dados clicando em uma tabela. Voc tambm pode editar a seleo da tabela de
dados ou excluir a tabela de dados.
Quando voc adiciona tabelas de dados ao Gerenciador de dados, o cdigo de script de carga de dados
gerado. Voc pode ver o cdigo do script na seo autogerada do editor de carga de dados. Voc tambm
pode escolher destravar e editar o cdigo de script gerado, mas, nesse caso, as tabelas de dados no sero
mais gerenciadas no Gerenciador de dados.
2.1
Voc pode adicionar rapidamente uma tabela de dados em seu aplicativo, clicando em Adicionar dados no
2.2
Conexes
Selecione de conexes de dados definidas por voc ou por um administrador, e pastas das quais voc
j selecionou dados.
Conectar meus dados
Selecione de uma nova fonte de dados, tais como bancos de dados ODBC ou OLE DB, arquivos de
dados, arquivos web ou conectores personalizados.
Qlik DataMarket
Selecione dentre dados normalizados de bancos de dados pblicos e comerciais.
Voc pode editar todas as tabelas de dados adicionadas por voc com Adicionar dados. Voc pode
adicionar, remover ou renomear campos da tabela de dados.
Faa o seguinte:
12
Voc pode editar apenas as tabelas de dados adicionadas com Add data. As tabelas de
dados carregadas usando o script de carga podem ser alteradas apenas por meio da edio do
script no editor de carga de dados.
Consulte: Usando o editor da carga de dados (pgina 28)
2.3
Voc pode excluir apenas as tabelas de dados adicionadas com Add data. As tabelas de dados carregadas
usando o script de carga podem ser removidas apenas por meio da edio do script no editor de carga de
dados.
Faa o seguinte:
l
Caso voc tenha usado campos da tabela de dados em uma visualizao, a remoo da
tabela de dados resulta em um erro exibido no aplicativo.
2.4
Faa o seguinte:
l
2.5
Tabelas concatenadas
Se os nomes de campo e o nmero de campos de duas ou mais tabelas carregadas forem exatamente os
mesmos, o Qlik Sense concatenar automaticamente o contedo dos comandos diferentes em uma tabela.
Tabelas concatenadas so mostradas com uma moldura pontilhada.
13
2.6
Quando duas ou mais tabelas de dados tiverem dois ou mais campos em comum, isso implicar em um
relacionamento de chave composta. O Qlik Sense resolve isso por meio da criao automtica de chaves
sintticas. Essas chaves so campos annimos que representam todas as combinaes ocorridas da chave
composta.
Se tabelas de chaves sintticas forem criadas como resultado da adio de dados, ser possvel reconheclas em Data tables como o nome iniciado por $. Uma tabela de chave sinttica contm a chave sinttica e
os campos de dados que formam o relacionamento.
No possvel editar as tabelas de chave sinttica j que elas so criadas automaticamente quando o Qlik
Sense carrega dados.
2.7
Voc pode adicionar dados rapidamente a seu aplicativo, clicando em Adicionar dados no Gerenciador
de dados ou no menu .
Voc pode adicionar dados dos seguintes tipos de fonte de dados:
l
Conexes
Adiciona dados de conexes de dados definidas por voc ou por um administrador, e pastas das quais
voc selecionou dados anteriormente.
Conectar meus dados
Adicionar dados de uma nova fonte de dados, tais como bancos de dados ODBC ou OLE DB,
arquivos de dados, arquivos Web ou conectores personalizados.
Qlik DataMarket
Selecione dentre dados normalizados de bancos de dados pblicos e comerciais.
Voc tambm pode soltar um arquivo de dados na janela do Qlik Sense Desktop para iniciar
uma carga de dados rpida.
14
15
Configuraes de acesso
As configuraes de administrao determinam a que tipos de fontes de dados voc pode conectar.
Conectores personalizados instalados
O Qlik Sense contm suporte nativo para muitas fontes de dados. Para se conectar a fontes de dados
adicionais, necessrio um conector personalizado, fornecido pelo Qlik ou por um terceiro. Os
conectores personalizados precisam ser instalados antes possam ser utilizados.
Disponibilidade de arquivos locais
Arquivos locais em seu computador desktop esto disponveis apenas em Qlik Sense Desktop. Eles
no esto disponveis em uma instalao de servidor Qlik Sense.
Caso existam arquivos locais que voc deseje carregar em uma instalao de servidor
do Qlik Sense, ser necessrio transferir os arquivos para uma pasta disponvel para o
servidor do Qlik Sense, de preferncia uma pasta que j esteja definida como uma
conexo de dados de pasta.
Character set, para interpretar corretamente os dados. As opes de tabela so diferentes para diferentes
tipos de fontes de dados.
16
Clique em Analisar dados para continuar com a anlise de dados, e para ver recomendaes
para os relacionamentos entre tabelas.
Clique em Load and finish para carregar os dados selecionados como so, ignorando a
etapa de anlise de dados, e para iniciar a criao de visualizaes. As tabelas sero
vinculadas usando associaes naturais, ou seja, campos com o nome em comum.
campo
Tamanho do
cabealho
2. Selecione a primeira pasta a partir da qual selecionar dados. Voc pode selecionar todos os campos
em uma pasta marcando a caixa de seleo ao lado do nome da pasta.
3. Selecione os campos que deseja carregar marcando a caixa de seleo ao lado de cada campo que
deseja carregar.
Voc pode editar o nome do campo clicando no nome do campo existente e digitando
um novo nome. Isso pode afetar como a tabela est vinculada a outras tabelas, j que
elas so unidas pelos campos em comum, por padro.
4. Quando tiver concludo a seleo de dados, voc poder continuar de uma das duas formas:
l
Clique em Analisar dados para continuar com a anlise de dados, e para ver recomendaes
para os relacionamentos entre tabelas.
Clique em Load and finish para carregar os dados selecionados como so, ignorando a
etapa de anlise de dados, e para iniciar a criao de visualizaes. As tabelas sero
vinculadas usando associaes naturais, ou seja, campos com o nome em comum.
17
Voc pode editar o nome do campo clicando no nome do campo existente e digitando
um novo nome. Isso pode afetar como a tabela est vinculada a outras tabelas, j que
elas so unidas pelos campos em comum, por padro.
4. Quando tiver concludo a seleo de dados, voc poder continuar de duas formas diferentes:
l
Clique em Analisar dados para continuar com a anlise de dados, e para ver recomendaes
para os relacionamentos entre tabelas.
Clique em Load and finish para carregar os dados selecionados como so, ignorando a
etapa de anlise de dados, e para iniciar a criao de visualizaes. As tabelas sero
vinculadas usando associaes naturais, ou seja, campos com o nome em comum.
Nomes do
campo
Delimiter
Entre aspas
18
cabealho
Conjunto de
caracteres
Comentrio
Ignorar fim
do arquivo
(EOF)
cabealho
cabealho da tabela.
Conjunto de
caracteres
Tamanho da guia
19
Arquivos HTML
Arquivos HTML podem conter diversas tabelas. O Qlik Sense interpreta todos os elementos com um rtulo
<TABLE> como tabela.
caracteres
Arquivos XML
Voc pode carregar os dados armazenados no formato XML.
No h um formato de arquivo especfico para arquivos XML.
Arquivos QVD
Voc pode carregar os dados armazenados no formato QVD. O QVD um formato nativo do Qlik e pode ser
gravado e lido apenas pelo Qlik Sense ou QlikView. O formato de arquivo otimizado para velocidade na
leitura de dados de um script do Qlik Sense e ao mesmo tempo compacto.
No h um formato de arquivo especfico para arquivos QVD.
Arquivos KML
Voc pode carregar arquivos de mapa que esto armazenados no formato KML para uso nas visualizaes
de mapa.
No h um formato de arquivo especfico para arquivos KML.
2.8
Voc pode adicionar dados de fontes externas com o Qlik DataMarket. OQlik DataMarket oferece uma
coleo extensiva de dados atualizados e prontos para uso de fontes externas acessveis diretamente do
interior do Qlik Sense. O Qlik DataMarket fornece dados demogrficos e climticos, atuais e histricos, taxas
de cmbio e dados econmicos e sociais.
As principais categorias do Qlik DataMarket so:
l
Currency: Taxas de cmbio internacionais das principais moedas do mundo, atualizadas diariamente.
20
Economy: Principais indicadores econmicos, incluindo dados sobre PIB, preos, educao e meioambiente.
Alguns dados do Qlik DataMarket esto disponveis gratuitamente. Os dados no Essentials package esto
disponveis mediante o pagamento de uma taxa de assinatura.
21
22
Selecionar o nome do campo (por exemplo, Pas) faz com que todo o bloco de filtros seja
selecionado.
Conforme voc faz selees, a tabela abaixo dos campos atualizada para refletir as sees
acumuladas.
23
1. Clique em @ prximo ao nome do conjunto de dados cujo nome de campo voc quer alterar.
No selecione um conjunto de dados do Qlik DataMarket, pois os nomes dos campos
do DataMarket no podem ser editados.
2. Altere um nome de campo clicando no nome existente no cabealho da coluna e digitando o novo
nome.
O novo nome deve corresponder a um nome de campo em um conjunto de dados do Qlik DataMarket
para formar uma associao com esses dados. Para quebrar uma associao com dados do
DataMarket, altere o campo para que ele no corresponda ao nome da lista do DataMarket.
3. Clique em Perfil para ver a associao formada pela alterao do nome.
Se voc criar uma nova associao, o Qlik Sense indica a fora da associao e se ela no
recomendada.
4. Clique em Carregar e concluir.
2.9
Voc tem a oportunidade de reparar problemas de associao com os arquivos de dados que desejar
carregar. Qlik Sense associar tabelas automaticamente com base nos nomes do campo comuns, mas
existem casos em que necessrio ajustar a associao, como por exemplo:
l
Se voc tiver carregado dois campos contendo os mesmos dados, mas com nomes diferentes e de
duas tabelas diferentes, uma boa ideia nomear os campos de maneira idntica para relacionar as
tabelas.
Se voc tiver carregado dois campos contendo dados diferentes, mas com nomes do campo idnticos
de duas tabelas diferentes, ser necessrio renomear pelo menos um dos campos para carreg-los
como campos separados.
24
Visualizando recomendaes
As recomendaes de associao so exibidas em uma lista, e voc pode navegar entre as recomendaes
e avisos usando os botes e . Se a lista contm advertncias, h problemas de associao que
precisam ser resolvidos.
Neste caso, as duas tabelas contm um campo em comum com nomes diferentes nas duas tabelas. Atual
mostra que as tabelas no esto associadas, mas Sugestes mostra que h dois campos com dados
semelhantes, com uma pontuao de correspondncia mais alta.
Para criar uma associao entre as tabelas, necessrio renomear um ou dois campos para que ambos
tenham um nome em comum.
Faa o seguinte:
1. Selecione o par de campos que considera mais adequado. Geralmente, o par com a pontuao
mais alta.
2. Selecione o nome do campo que deseja usar ou digite um novo nome de usurio personalizado.
Agora que os campos tm o mesmo nome, as tabelas sero associadas quando os dados forem carregados.
25
Neste caso, a anlise de dados revelou que as duas tabelas contm campos com dados no relacionados,
mas com o mesmo nome, indicados por uma baixa pontuao de correspondncia. O campo ID na tabela
Sales pode ser um identificador nico para cada pedido, enquanto o campo ID na tabela Stores o
identificador de uma loja. Caso as tabelas sejam carregadas sem resolver o problema, elas sero
associadas, o que poderia resultar em um modelo de dados problemtico.
Para garantir que as tabelas no sejam associadas, ser necessrio dar nomes diferentes aos campos.
Faa o seguinte:
Carregando dados
Quando tiver resolvido as sugestes, voc poder proceder para a carga de dados, incluindo os dados que
acabou de adicionar, clicando em Carregar e concluir.
Ignorando recomendaes
Voc pode carregar os dados selecionados como so, ignorando as recomendaes da anlise de dados, e
iniciar a criao de visualizaes.
26
Clique em Load and finish sem aplicar nenhuma das alteraes sugeridas pela anlise de dados.
As tabelas sero vinculadas usando associaes naturais, ou seja, campos com o nome em comum.
27
Esta introduo serve como uma breve apresentao de como voc pode carregar dados no Qlik Sense para
fornecer um fundamento para os tpicos nesta seo, apresentando como realizar o carregamento bsico de
dados e a transformao usando o script de carga de dados.
O Qlik Sense utiliza um script de carga de dados, gerenciado no editor da carga de dados para se conectar e
recuperar dados de vrias fontes de dados. No script, os campos e as tabelas a serem carregados so
especificados. Tambm possvel manipular a estrutura de dados usando comandos e expresses de script.
Durante a carga de dados, o Qlik Sense identifica campos comuns de tabelas diferentes (campos-chave)
para associar os dados. A estrutura de dados resultante dos dados no aplicativo pode ser monitorada no
visualizador do modelo de dados. As alteraes na estrutura de dados podem ser obtidas renomeando os
campos para obter diferentes associaes entre as tabelas.
Aps o carregamento dos dados no Qlik Sense, eles so armazenados no aplicativo. O aplicativo o centro
da funcionalidade do programa e caracterizado pela forma irrestrita na qual os dados so associados, seu
grande nmero de dimenses possveis, velocidade de anlise e tamanho compacto. O aplicativo mantido
na RAM quando aberto.
A anlise no Qlik Sense sempre acontece enquanto o aplicativo no est diretamente conectado s fontes
de dados. Dessa forma, para atualizar os dados, voc precisa recarregar o script.
3.1
Esta seo descreve como usar o editor de carga de dados para criar ou editar um script de carga de dados
que pode ser usado para carregar seu modelo de dados no aplicativo.
O script de carga de dados conecta um aplicativo a uma fonte de dados e carrega os dados da fonte para o
aplicativo. Ao carregar os dados, eles ficam disponveis para o aplicativo analisar. Quando quiser criar, editar
e executar um script de carga de dados, use o editor da carga de dados.
Um script pode ser digitado manualmente ou gerado automaticamente. Os comandos de scripts complexos
devem ser, pelo menos parcialmente, inseridos de forma manual.
28
Barras de ferramentas do
(pgina 63)
(pgina 30)
Organizando o cdigo de
script (pgina 57)
29
1. Criar nova conexo para vincular fonte de dados (se a conexo de dados ainda no existir).
2.
Depois de concluir o dilogo de seleo com Inserir script, voc pode selecionar Executar script para
carregar o modelo de dados em seu aplicativo.
Para obter referncia detalhada sobre funes de script e funes de grfico, consulte o Guia
de sintaxe de script e funes do grfico.
Conectores padro:
l
Conexes de Pasta que definem um caminho para pastas de arquivos locais ou de rede.
Conexes de arquivo da Web usadas para selecionar dados de arquivos localizados em uma
URL da web.
Conectores personalizados:
Com os conectores personalizados desenvolvidos, voc pode se conectar s fontes de dados que no
so suportadas diretamente pelo Qlik Sense. Os conectores personalizados so desenvolvidos com o
QVX SDK fornecidos pelo Qlik ou por outros desenvolvedores. Em uma instalao padro do Qlik
Sense, nenhum conector personalizado estar disponvel.
Voc s poder ver as suas conexes de dados ou aquelas para as quais possui direitos de
acesso de leitura e atualizao. Entre em contato com o administrador do sistema do Qlik
Sense para adquirir acesso, se necessrio.
30
3. Digite as configuraes da fonte de dados e clique em Create para criar a conexo de dados.
A conexo de dados foi criada tendo voc como o proprietrio padro. Caso deseje que outros usurios
possam usar a conexo em uma instalao no servidor, voc precisar editar os direitos de acesso da
conexo no Qlik Management Console.
O nome da conexo ser anexado com seu nome de usurio e domnio para garantir que ele
seja exclusivo.
Se Criar nova conexo no for exibido, isso significa que voc no tem os direitos de acesso
para adicionar conexes de dados. Entre em contato com o administrador do sistema do Qlik
Sense para adquirir acesso, se necessrio.
Se E no for exibido, significa que voc no possui direitos de acesso para excluir a conexo
de dados. Entre em contato com o administrador do sistema do Qlik Sense para adquirir
acesso, se necessrio.
Se voc editar o nome de uma conexo de dados, tambm ser preciso editar todas as
referncias existentes (lib://) conexo no script, caso queira continuar a fazer referncias
mesma conexo.
31
A string de conexo da conexo de dados selecionada inserida na posio atual no editor da carga de
dados.
Voc tambm pode inserir uma string de conexo arrastando uma conexo de dados e
soltando-a na posio no script onde deseja inseri-la.
1. Criar nova conexo para vincular fonte de dados (caso a conexo de dados ainda no exista).
2.
caminho)'
Exemplo 1: Carregando um arquivo de uma conexo de dados de pasta
Esse exemplo carrega o arquivo orders.csv a partir do local definido na MyData conexo de dados.
LOAD * FROM 'lib://MyData/orders.csv';
32
No Qlik Sense Desktop, todas as conexes so salvas no aplicativo, sem criptografia. Isso
inclui possveis detalhes sobre nome de usurio, senha e caminho do arquivo que voc digitou
ao criar a conexo. Isso significa que todos estes detalhes podem estar disponveis em texto
simples se o aplicativo for compartilhado com outro usurio. Voc precisa considerar esses
fatores ao projetar um aplicativo para compartilhamento.
33
34
Exemplo:
Se voc selecionou Microsoft Office 12.0 Access Database Engine OLE DB Provider, insira o nome
do arquivo do arquivo do banco de dados Access, incluindo o caminho do arquivo inteiro:
C:\Users\{user}\Documents\Qlik\Sense\Apps\Tutorial source files\Sales.accdb
Segurana integrada do Windows: Com esta opo voc usa as credenciais de Windows
existentes do usurio executando o servio Qlik Sense.
Nome de usurio especfico e senha: Com essa opo, voc precisa inserir o Nome de
usurio e a Senha.
A conexo adicionada s Conexes de dados e voc pode conectar-se e selecionar dados da fonte de
dados OLE DB conectada caso a string de conexo seja inserida corretamente.
35
Nome do usurio
Senha
Nome
3. Clique em Salvar.
A conexo atualizada.
Selecionar a pasta
36
37
Os arquivos de texto, nos quais os dados nos campos so separados por delimitadores como vrgulas,
tabulaes ou ponto e vrgula (arquivos variveis separados por vrgulas (CSV)).
tabelas HTML.
arquivos XML
arquivos DIF (Data Interchange Format). arquivos DIF s podem ser carregados com o editor de
carga de dados).
Adicionar dados
Voc tambm pode usar a interface ODBC para carregar um arquivo do Microsoft Excel como
fonte de dados. Nesse caso, voc precisa criar uma conexo de dados ODBC e no uma
conexo de dados de Diretrio.
Exemplo:
directory c:\databases\common;
LOAD * from TABLE1.CSV (ansi, txt, delimiter is ',', embedded labels);
38
Agregados, tais como somas ou contas. Agregados podem ser definidos e calculados no Qlik Sense.
Cabealhos em duplicata.
l
l
Informaes extra que no faam parte dos dados, tais como comentrios. O melhor deixar para os
comentrios uma coluna que voc possa pular facilmente ao carregar o arquivo no Qlik Sense.
Layout de dados de tabela cruzada. Se, por exemplo, houver uma coluna para cada ms, voc
dever, em vez disso, possuir uma coluna chamada "Ms" e escrever os mesmos dados em 12 linhas,
uma linha por ms. Assim, voc ser capaz de exibi-la em formato de tabela cruzada no Qlik Sense.
Cabealhos intermedirios, por exemplo, uma linha contendo "Departamento A" seguida por linhas
referentes ao Departamento A. Em vez disso, voc dever criar uma coluna chamada
"Departamento" e preenche-la com os nomes de departamento apropriados.
Clulas mescladas. Em vez disso, liste o valor de cada clula.
Clulas em branco nas quais o valor determinado por um valor acima e anterior. Voc precisar
preencher os espaos em branco nos quais h um valor repetido, para fazer com que todas as clulas
contenham um valor de dados.
39
Conectores padro usando a interface Microsoft ODBC ou OLE DB. Para usar o ODBC, voc deve
instalar um driver que oferea suporte ao seu DBMS e configurar o banco de dados como uma fonte
de dados ODBC em Administrador da fonte de dados ODBC no Painel de controle do
Windows.
Conectores personalizados, desenvolvidos especificamente para carregar dados do DBMS no Qlik
Sense.
1. Voc precisa ter uma fonte de dados ODBC para o banco de dados que deseja acessar. Isso
configurado no Administrador da fonte de dados ODBC no Painel de controle do Windows. Se
voc ainda no o fez, voc precisa adicion-lo e configur-lo por exemplo, apontando para um
banco de dados Microsoft Access.
2. Abra o editor da carga de dados.
3. Crie uma conexo de dados ODBC apontando para a conexo ODBC mencionada na etapa 1.
4. Clique em na conexo de dados para abrir o dilogo de seleo de dados.
Agora voc pode selecionar dados do banco de dados e inserir o cdigo de script necessrio para carregar os
dados.
ODBC
Para acessar DBMS (DataBase Management System) via ODBC, necessrio ter instalado um driver
ODBC para o DBMS em questo. A alternativa exportar os dados do banco de dados para um arquivo que
possa ser lido Qlik Sense.
Geralmente, alguns drivers ODBC so instalados juntamente com o sistema operacional. possvel
comprar drivers adicionais de revendedores de software localizados na Internet ou entregues pelo fabricante
do (DBMS). Alguns drivers so redistribudos gratuitamente.
A interface ODBC descrita aqui a interface no computador cliente. Se o objetivo usar o ODBC para
acessar um banco de dados relacional multiusurio em um servidor de rede, talvez seja necessrio um
software DBMS adicional que permita a um cliente acessar o banco de dados no servidor. Entre em contato
com o fornecedor do DBMS para obter mais informaes sobre o software necessrio.
40
%systemdrive%\Windows\SysWOW64.
l
%systemdrive%\Windows\System32.
Criando fontes de dados ODBC
preciso criar uma fonte de dados ODBC para o banco de dados que voc deseja acessar. Isso pode ser
feito durante a instalao do ODBC ou em uma etapa posterior.
Antes de iniciar a criao de fontes de dados, preciso decidir se as fontes de dados devem
ser DSN de usurio ou DSN do sistema (recomendado). Voc s pode alcanar fontes de
dados de usurio com as credenciais de usurio corretas. Em um servidor de instalao, voc
precisa tipicamente criar uma fonte de dados do sistema para conseguir compartilhar as fontes
de dados com outros usurios.
Faa o seguinte:
1. Abra o Odbcad32.exe.
2. V para a guia DSN do sistema para criar uma fonte de dados do sistema.
3. Clique em Adicionar.
A caixa de dilogo Criar nova fonte de dados exibida, mostrando uma lista de drivers ODBC
instalados.
OLE DB
O Qlik Sense suporta a interface OLE DB(Object Linking and Embedding, Database) para conexo com
fontes de dados externas. Um grande nmero de bancos de dados externos pode ser acessado por meio do
OLE DB.
41
As tabelas com todos os campos selecionados so indicadas com a caixa de seleo marcada. J as tabelas
com alguns campos selecionados so indicadas por um quadrado azul na caixa de seleo e o nmero de
campos selecionados direita.
Selecionando campos
Campos lista todos os campos disponveis na Tabela selecionada. Voc pode Filtrar os campos na lista,
digitando parte do nome do campo na caixa de texto.
42
Visualizao de dados, que apresenta os dados no layout de coluna horizontal e visualiza os dados
Faa o seguinte:
l
Selecione os campos que deseja incluir usando a caixa de seleo ao lado de cada nome de campo.
Depois de selecionar os campos a serem includos na tabela, voc pode continuar selecionando os campos
de outras tabelas no mesmo banco de dados ou escolher um outro banco de dados e selecionar tabelas e
campos do banco de dados.
Resumo das selees fornece uma viso geral dos bancos de dados que voc selecionou e o nmero de
tabelas e campos selecionados.
Renomeando campos
Voc pode renomear campos. Isso particularmente til nos dois casos a seguir:
l
Se voc carregar dois arquivos que contenham um campo com o mesmo nome, eles sero vinculados
e tratados por padro como um campo no Qlik Sense. Se voc quiser carreg-los como campos
separados, renomeie os campos para ficarem diferentes.
Se voc carregar dois arquivos contendo um campo que deve ser lido como um campo, mas que tem
nomes diferentes nos respectivos arquivos, voc pode renome-los (em cada arquivo) para terem
nomes idnticos e carreg-los como um campo.
No possvel renomear dois campos na mesma tabela para que eles tenham nomes
idnticos.
Faa o seguinte:
l
Clique no cabealho do campo que deseja renomear, digite o novo nome e pressione Enter.
43
Visualizando o script
Os comandos que sero inseridos so exibidos na visualizao de script, que voc pode ocultar clicando em
Visualizar script.
Inserindo no script
Ao terminar de selecionar os campos, faa o seguinte para gerar os comandos LOAD/ SELECT no script:
l
A janela de seleo de dados fechada e os comandos LOAD /SELECT so inseridos no script de acordo
com suas selees.
Formato do
arquivo
44
campo
Delimiter
Entre aspas
cabealho
Conjunto de
caracteres
Comentrio
Ignorar fim
do arquivo
(EOF)
Os dados de visualizao so formatados de acordo com as opes que voc definiu.
Selecionando campos
Campos lista todos os campos disponveis para selecionar. Voc pode fazer um dos seguintes
procedimentos:
l
Selecione os campos a serem includos usando a caixa de seleo ao lado de cada nome de campo.
Renomeando campos
Voc pode renomear campos. Isso particularmente til nos dois casos a seguir:
l
Se voc carregar dois arquivos que contenham um campo com o mesmo nome, eles sero vinculados
e tratados por padro como um campo no Qlik Sense. Se voc quiser carreg-los como campos
separados, renomeie os campos para ficarem diferentes.
Se voc carregar dois arquivos contendo um campo que deve ser lido como um campo, mas que tem
nomes diferentes nos respectivos arquivos, voc pode renome-los (em cada arquivo) para terem
nomes idnticos e carreg-los como um campo.
Faa o seguinte:
45
Clique no cabealho do campo que deseja renomear, digite o novo nome e pressione Enter.
Visualizando o script
Os comandos que sero inseridos so exibidos na visualizao de script, que voc pode ocultar clicando em
Visualizar script.
Inserindo o script
Ao terminar de selecionar os campos, faa o seguinte para gerar os comandos LOAD/ SELECT no script:
l
A janela Selecionar dados de fechada e os comandos LOAD so inseridos no script de acordo com suas
selees.
Voc tambm pode usar um arquivo do Microsoft Excel como fonte de dados usando a
interface ODBC. Nesse caso, voc precisa criar uma conexo de dados ODBC e no uma
conexo de dados de Pasta.
Selecionando tabelas
A lista de Tabelas inclui todas essas pastas e reas de nome do arquivo do Microsoft Excel selecionado.
Se voc quiser selecionar todos os campos de uma tabela, faa o seguinte:
l
46
As tabelas com todas as colunas selecionadas so indicadas com a caixa de verificao marcada e as
tabelas com alguns campos selecionados so indicadas por um quadrado na caixa de verificao e o nmero
de campos selecionados direita do nome da tabela.
Selecionando campos
Campos lista todos os campos disponveis na Tabela selecionada. Pode ser necessrio especificar as
seguintes configuraes:
Nomes do
campo
Tamanho do
cabealho
Faa o seguinte:
l
Selecione os campos para incluir usando a caixa de seleo ao lado de cada nome de campo.
Depois de selecionar os campos a serem includos na tabela, possvel continuar selecionando os campos
de outras tabelas no mesmo arquivo.
Renomeando campos
Voc pode renomear campos. Isso particularmente til nos dois casos a seguir:
l
Se voc carregar dois arquivos que contenham um campo com o mesmo nome, eles sero vinculados
e tratados por padro como um campo no Qlik Sense. Se voc quiser carreg-los como campos
separados, renomeie os campos para ficarem diferentes.
Se voc carregar dois arquivos contendo um campo que deve ser lido como um campo, mas que tem
nomes diferentes nos respectivos arquivos, voc pode renome-los (em cada arquivo) para terem
nomes idnticos e carreg-los como um campo.
Faa o seguinte:
l
Clique no cabealho do campo que deseja renomear, digite o novo nome e pressione Enter.
Visualizando o script
Os comandos que sero inseridos so exibidos na visualizao de script, que voc pode ocultar clicando em
Visualizar script.
47
A janela Selecionar dados de fechada e os comandos LOAD so inseridos no script de acordo com suas
selees.
Id
Price
Watch
001
2.75
Ball
002
3.25
Nomes do campo
cabealho
cabealho da tabela.
Conjunto de
caracteres
Tamanho da guia
Tamanho de linha
do registro
48
Selecionando campos
Campos lista todos os campos disponveis para selecionar. Voc pode fazer um dos seguintes
procedimentos:
l
Selecione os campos para incluir usando a caixa de seleo ao lado de cada nome de campo.
Renomeando campos
Voc pode renomear campos. Isso particularmente til nos dois casos a seguir:
l
Se voc carregar dois arquivos que contenham um campo com o mesmo nome, eles sero vinculados
e tratados por padro como um campo no Qlik Sense. Se voc quiser carreg-los como campos
separados, renomeie os campos para ficarem diferentes.
Se voc carregar dois arquivos contendo um campo que deve ser lido como um campo, mas que tem
nomes diferentes nos respectivos arquivos, voc pode renome-los (em cada arquivo) para terem
nomes idnticos e carreg-los como um campo.
Faa o seguinte:
l
Clique no cabealho do campo que deseja renomear, digite o novo nome e pressione Enter.
Visualizando o script
Os comandos que sero inseridos so exibidos na visualizao de script, que voc pode ocultar clicando em
Visualizar script.
Inserindo o script
Ao terminar de selecionar os campos, faa o seguinte para gerar os comandos LOAD/ SELECT no script:
49
A janela Selecionar dados de fechada e os comandos LOAD so inseridos no script de acordo com suas
selees.
Selecionando campos
Campos lista todos os campos disponveis para selecionar. Voc pode:
l
Selecionar os campos a serem includos marcando a caixa de seleo ao lado de cada nome de
campo.
Clicar em Selecionar todos os campos
Renomeando campos
Voc pode renomear campos. Isso particularmente til nos dois casos a seguir:
l
Se voc carregar dois arquivos que contenham um campo com o mesmo nome, eles sero vinculados
e tratados por padro como um campo no Qlik Sense. Se voc quiser carreg-los como campos
separados, renomeie os campos para ficarem diferentes.
Se voc carregar dois arquivos contendo um campo que deve ser lido como um campo, mas que tem
nomes diferentes nos respectivos arquivos, voc pode renome-los (em cada arquivo) para terem
nomes idnticos e carreg-los como um campo.
Faa o seguinte:
l
Clique no cabealho do campo que deseja renomear, digite o novo nome e pressione Enter.
Visualizando o script
Os comandos que sero inseridos so exibidos na visualizao de script, que voc pode ocultar clicando em
Visualizar script.
50
A janela Selecionar dados de fechada e os comandos LOAD so inseridos no script de acordo com suas
selees.
Selecionando tabelas
Tabelas lista todas as tabelas no arquivo HTML.
Se voc quiser selecionar todos os campos de uma tabela, faa o seguinte:
l
As tabelas com todos os campos selecionados so indicadas com a caixa de seleo marcada, enquanto
tabelas com alguns campos selecionados so indicadas por um quadrado na caixa de seleo e o nmero de
campos selecionados direita.
Selecionando campos
Campos lista todos os campos disponveis na Tabela selecionada. Voc pode Filtrar os campos na lista,
digitando parte do nome do campo na caixa de texto.
No possvel renomear dois campos na mesma tabela para que eles tenham nomes
idnticos.
Pode ser necessrio especificar as seguintes configuraes:
51
caracteres
Faa o seguinte:
l
Selecionar os campos a serem includos marcando a caixa de seleo ao lado de cada nome de
campo.
Depois de selecionar os campos a serem includos na tabela, possvel continuar selecionando os campos
de outras tabelas no mesmo arquivo.
Renomeando campos
Voc pode renomear campos. Isso particularmente til nos dois casos a seguir:
l
Se voc carregar dois arquivos que contenham um campo com o mesmo nome, eles sero vinculados
e tratados por padro como um campo no Qlik Sense. Se voc quiser carreg-los como campos
separados, renomeie os campos para ficarem diferentes.
Se voc carregar dois arquivos contendo um campo que deve ser lido como um campo, mas que tem
nomes diferentes nos respectivos arquivos, voc pode renome-los (em cada arquivo) para terem
nomes idnticos e carreg-los como um campo.
No possvel renomear dois campos na mesma tabela para que eles tenham nomes
idnticos.
Faa o seguinte:
l
Clique no cabealho do campo que deseja renomear, digite o novo nome e pressione Enter.
Visualizando o script
Os comandos que sero inseridos so exibidos na visualizao de script, que voc pode ocultar clicando em
Visualizar script.
52
A janela Selecionar dados de fechada e os comandos LOAD so inseridos no script de acordo com suas
selees.
Se voc quiser excluir uma tabela ou um campo, marque a caixa de seleo ao lado do respectivo
nome.
Renomeando campos
Voc pode renomear campos. Isso particularmente til nos dois casos a seguir:
l
Se voc carregar dois arquivos que contenham um campo com o mesmo nome, eles sero vinculados
e tratados por padro como um campo no Qlik Sense. Se voc quiser carreg-los como campos
separados, renomeie os campos para ficarem diferentes.
Se voc carregar dois arquivos contendo um campo que deve ser lido como um campo, mas que tem
nomes diferentes nos respectivos arquivos, voc pode renome-los (em cada arquivo) para terem
nomes idnticos e carreg-los como um campo.
Faa o seguinte:
l
Clique no cabealho do campo que deseja renomear, digite o novo nome e pressione Enter.
O campo renomeado e a visualizao do script atualizada quando voc seleciona outro item.
53
Inserindo o script
Ao terminar de selecionar os campos faa o seguinte para gerar os comandos LOAD no script:
l
A janela Selecionar dados de fechada e os comandos LOAD so inseridos no script de acordo com suas
selees.
Se voc quiser excluir uma tabela ou um campo, marque a caixa de seleo ao lado do respectivo
nome.
Renomeando campos
Voc pode renomear campos. Isso particularmente til nos dois casos a seguir:
l
Se voc carregar dois arquivos que contenham um campo com o mesmo nome, eles sero vinculados
e tratados por padro como um campo no Qlik Sense. Se voc quiser carreg-los como campos
separados, renomeie os campos para ficarem diferentes.
Se voc carregar dois arquivos contendo um campo que deve ser lido como um campo, mas que tem
nomes diferentes nos respectivos arquivos, voc pode renome-los para terem nomes idnticos e
carreg-los como um campo.
Faa o seguinte:
l
Clique no cabealho do campo que deseja renomear, digite o novo nome e pressione Enter.
O campo renomeado e a visualizao do script atualizada quando voc seleciona outro item.
54
Visualizando o script
Os comandos que sero inseridos so exibidos na visualizao de script, que voc pode ocultar clicando em
Visualizar script.
Inserindo o script
Ao terminar de selecionar os campos faa o seguinte para gerar os comandos LOAD no script:
l
A janela Selecionar dados de fechada e os comandos LOAD so inseridos no script de acordo com suas
selees.
Ajuda de sintaxe
detalhada
55
Dicas de ferramenta
Script de teste
preparado
Faa o seguinte:
l
Pressione Ctrl+00
Identao do cdigo
Selecionando todo o
cdigo
Pressionar Ctrl+A
56
Clique em P.
Clique em E ao lado da guia da seo para exclu-la. Voc precisa confirmar a excluso.
A seo agora excluda.
57
Comentando no script
Voc pode inserir comentrios e observaes no cdigo de script, ou desativar partes do cdigo de script
usando marcas de comentrio. Todo o texto em uma linha que segue direita de // (duas barras) ser
considerado um comentrio e no ser executado quando o script for executado.
A barra de ferramentas do editor da carga de dados contm um atalho do cdigo para comentar ou remover
o comentrio. A funo funciona como uma alternncia, ento se o cdigo selecionado no for comentado
ele ser comentado e vice-versa.
Comentando
Faa o seguinte:
1. Selecione uma ou mais linhas de cdigo que no estejam comentadas ou coloque o cursor no incio
de uma linha.
2. Clique em ou pressione Ctrl+K.
O cdigo selecionado agora est comentado.
Removendo o comentrio
Faa o seguinte:
1. Selecione uma ou mais linhas de cdigo que estejam comentadas ou coloque o cursor no incio de
uma linha comentada.
2. Clique em ou pressione Ctrl+K.
O cdigo selecionado no est comentado.
Exemplo:
Rem This is a comment ;
/* This is a comment
that spans two lines */
// This is a comment as well
58
Alm disso, voc pode selecionar Pesquisar em todas as sees para procurar em todas as
sees de script. O nmero de instncias de texto encontradas indicado ao lado do rtulo de
cada seo. A funo de pesquisa no diferencia maisculas de minsculas.
Substituindo
Faa o seguinte:
Voc tambm pode clicar em Substituir tudo na seo para substituir todas as instncias do
texto de pesquisa na seo de script atual. A funo substituir diferencia maisculas de
minsculas, e o texto de substituio ter a letra inicial no campo substituir. Uma mensagem
exibida com informaes sobre quantas instncias foram substitudas.
59
Clique em Salvar na barra de ferramentas do editor de carga de dados para salvar o script.
O script salvo, mas o aplicativo ainda conter os dados antigos do recarregamento anterior, que indicado
na barra de ferramentas. Se voc quiser atualizar o aplicativo com novos dados, clique em Carregar dados
interrupo.
Para mostrar o painel de depurao, faa o seguinte:
l
60
Carga limitada
Habilite essa opo para limitar quantas linhas de dados sero carregadas de cada
fonte de dados. Isso til para reduzir o tempo de execuo se as fontes de dados
forem grandes.
Insira o nmero de linhas que deseja carregar.
Sada
Sada exibe todas as mensagens geradas durante a execuo da depurao. Voc pode optar por bloquear
a rolagem da sada quando novas mensagens forem exibidas clicando em \.
Alm disso, o menu de sada () contm as seguintes opes:
Limpar
Selecionar todo o
texto
Rolar at o final
Variveis
Variveis lista todas as variveis reservadas, as do sistema e as definidas no script e exibe os valores atuais
durante a execuo do script.
61
Filtrando variveis
Usando as seguintes opes no menu de variveis (), possvel aplicar um filtro para mostrar apenas um
tipo selecionado de variveis:
Pontos de interrupo
possvel adicionar pontos de interrupo ao seu script, podendo assim parar a execuo da depurao em
certas linhas de cdigo e inspecionar os valores das variveis e mensagens de sada nesse ponto. Ao
alcanar um ponto de interrupo, voc pode optar por interromper a execuo, continuar at atingir o
prximo ponto de interrupo ou passar prxima linha de cdigo. Todos os pontos de interrupo nos
scripts so listados, com uma referncia ao nmero da seo e da linha.
No script, clique na rea diretamente direita do nmero da linha em que deseja adicionar um ponto
de interrupo.
Um Q ao lado do nmero de linha indica que existe um ponto de interrupo nessa linha.
Voc pode adicionar pontos de interrupo at mesmo quando o painel de depurao estiver
fechado.
62
Voc tambm pode clicar em e selecionar Excluir tudo para excluir todos os pontos de interrupo no
script.
Ativar todos
Desativar todos
63
Adicionar dados.
DAjuda
]Sobre
Salvar
Salvar as alteraes.
Depure o script
Carregar dados
3.2
64
O Qlik Sense no diferencia as tabelas geradas por um comando LOAD ou SELECT. Dessa forma,
se vrias tabelas forem carregadas, no importar se as tabelas so carregadas por comando LOAD
ou SELECT ou por uma mistura de ambas.
A ordem dos campos no comando ou na tabela original da base de dados arbitrria para a lgica do
Qlik Sense.
Os nomes de campo so utilizados em processos adicionais para identificar campos e fazer
associaes. Eles diferenciam maisculas de minsculas, o que costuma ser necessrio para
renomear campos no script.
Execuo do script
Em um comando LOAD ou SELECT tpico, a ordem dos eventos ser aproximadamente a seguinte:
1. Avaliao de expresses
2. Renomeao dos campos por as
3. Renomeao dos campos por alias
4. Qualificao dos nomes de campo
5. Mapeamento de dados em caso de correspondncia dos nomes de campo
6. Armazenamento de dados em uma tabela interna
Campos
Campos so as entidades primrias de carregamento de dados no Qlik Sense. Um campo normalmente
contm diversos valores, chamados de valores de campo. Na terminologia de banco de dados, dizemos que
os dados processados pelo Qlik Sense so provenientes de arquivos de dados. Um arquivo composto por
vrios campos em que cada entrada de dados um registro. Os termos arquivo, campo e registro so
equivalentes a tabela, coluna e linha, respectivamente. A lgica AQL Qlik Sense trabalha apenas em
campos e em seus valores de campo.
Os dados dos campos so recuperados pelo script por meio dos comandos LOAD, SELECT ou Binary. A
nica maneira de alterar dados em um campo executando o script novamente. Os valores de campo no
podem ser manipulados no layout pelo usurio ou por meio de automao. Depois de lidos no Qlik Sense,
esses valores podero ser apenas exibidos e usados para clculos e selees lgicas.
Os valores de campo consistem em dados (de texto) numricos ou alfanumricos. Os valores numricos
possuem, na verdade, valores duais, o valor numrico e sua representao de texto formatada atual.
Somente a ltima exibida em objetos de pasta, entre outros.
O contedo de um campo pode ser representado em um painel de filtro.
Campos derivados
Se voc tiver um grupo de campos relacionados ou campos que carregam informaes que podem ser
divididas em partes menores, que so relevantes quando se est criando dimenses e medidas, voc pode
criar definies de campo que podem ser usadas para gerar campos derivados. Um exemplo um campo de
65
Mapear todos os campos marcados com uma ou mais tags da definio de campo ($date no exemplo
acima).
DERIVE FIELDS FROM IMPLICIT TAG USING Calendar;
Nesse caso, voc pode usar qualquer um dos trs exemplos citados aqui.
de data e hora do painel de ativos Campos. Voc encontrar tambm todos os campos derivados no editor
de expresso e quando criar ou editar dimenses.
Tags de campo
Tags de campo oferecem a possibilidade de adicionar metadados aos campos no modelo de dados. Existem
dois tipos de tags de campo diferentes:
66
Pode ser
Tag
Descrio
manipulada
no script
$system
No
$key
No
$keypart
No
$syn
Chave sinttica
No
$hidden
Sim
Sim
$integer
Sim
$text
Sim
$ascii
Sim
$date
Sim
$timestamp
Sim
Campos do sistema
Alm dos campos extrados da fonte de dados, os campos do sistema tambm so produzidos pelo Qlik
Sense. Todos comeam com $ e podem ser exibidos como campos comuns em uma visualizao, como
um painel de filtro ou uma tabela. Os campos do sistema, que normalmente so criados durante a execuo
67
Os campos do sistema no esto inclusos nas listas de campo no painel de ativos ou no Editor
de expresso. Se voc quiser usar um campo do sistema, precisa referenci-lo digitando
manualmente.
Exemplo: =$Field
$Table
$Field
$Fields
$FieldNo
$Rows
$Info
Tabelas lgicas
Cada comando LOAD ou SELECT gera uma tabela. Normalmente, o Qlik Sense trata o resultado de cada
uma delas como uma tabela lgica. No entanto, existem duas excees a essa regra:
l
Se dois ou mais comandos resultarem em tabelas com nomes de campo idnticos, as tabelas sero
concatenadas e tratadas como uma tabela lgica.
Se um comando LOAD ou SELECT for precedido por algum dos qualificadores a seguir, os dados
sero alterados ou tratados de forma diferente:
concatenate
crosstable
generic
info
Essa tabela ser carregada no como uma tabela lgica, mas como uma
tabela de informaes que contm links para informaes externas, como
arquivos, sons, URLs etc.
intervalmatch
A tabela (que deve conter exatamente duas colunas) ser interpretada como
intervalos numricos, que so associados a nmeros discretos em um campo
especificado.
68
Essa tabela ser unida pelo Qlik Sense com outra tabela nomeada ou com a
tabela lgica criada anteriormente, pelos campos em comum.
keep
Essa tabela reduzida para os campos em comum com outra tabela nomeada
ou com a tabela lgica criada mais recentemente.
mapping
Essa tabela (que deve conter exatamente duas colunas) ser lida como uma
tabela de mapeamento, que nunca associada a outras tabelas.
semantic
Essa tabela ser carregada no como uma tabela lgica, mas como uma
tabela semntica que contm relacionamentos que no devem ser unidos,
como predecessor, sucessor e outras referncias a outros objetos do mesmo
tipo.
Nomes de tabela
As tabelas do Qlik Sense so nomeadas quando so armazenadas na base de dados do Qlik Sense. Os
nomes de tabelas podem ser usados, por exemplo, para comandos LOAD com uma clusula resident ou
com expresses contendo a funo peek e podem ser vistos no campo de sistema $Table no layout.
As tabelas so nomeadas de acordo com as seguintes regras:
1. Se um rtulo preceder imediatamente uma declarao LOAD ou SELECT, o rtulo ser utilizado
como nome da tabela. O rtulo deve ser seguido por dois-pontos.
Exemplo:
Table1:
LOAD a,b from c.csv;
2. Se nenhum rtulo for fornecido, ser usado o nome do arquivo ou nome da tabela que segue
imediatamente a palavra-chave FROM na declarao LOAD ou SELECT. So utilizados no mximo
32 caracteres. A extenso ignorada se o nome do arquivo for usado.
3. As tabelas carregadas inline sero nomeadas INLINExx, em que xx um nmero. A primeira tabela
inline receber o nome INLINE01.
4. As tabelas geradas automaticamente sero nomeadas AUTOGENERATExx, em que xx um
nmero. A primeira tabela gerada automaticamente receber o nome AUTOGENERATE01.
5. Se um nome de tabela gerado de acordo com as regras apresentadas estiver em conflito com um
nome de tabela anterior, o nome estendido com -x, em que x um nmero. O nmero ser
incrementado at que no haja mais conflito. Por exemplo, trs tabelas poderiam ser nomeadas
Budget, Budget-1 e Budget-2.
H trs domnios separados para nomes de tabelas: section access, section application e tabelas de
mapeamento As tabelas geradas em section access e section application so tratadas separadamente.
Se um nome de tabela referenciado no for encontrado na seo, o Qlik Sense tambm pesquisar a outra
seo. As tabelas de mapeamento so tratadas separadamente e no tm conexo alguma com os outros
dois domnios de nomes de tabelas.
69
Exemplo 1:
Table1:
LOAD a,b from c.csv;
LOAD x,y from d.csv where x=peek('a',y,'Table1');
Exemplo:
Se duas tabelas forem listas de itens diferentes, por exemplo, se uma for de clientes e a outra for de faturas,
e as duas tabelas tiverem um campo em comum, como o nmero do cliente, normalmente um sinal de que
h um relacionamento entre as duas tabelas. Em ferramentas de consulta SQL padro, as duas tabelas
devem quase sempre ser unidas.
As tabelas definidas no script do Qlik Sense so denominadas tabelas lgicas. O Qlik Sense faz associaes
entre as tabelas com base nos nomes de campos e executa as junes quando uma seleo feita, por
exemplo, durante a seleo de um valor de campo em uma caixa de filtro.
Isso significa que uma associao quase o mesmo que uma juno. A nica diferena que a juno
feita quando o script executado a tabela lgica geralmente o resultado da juno. A associao feita
depois da criao da tabela as associaes so feitas sempre entre as tabelas lgicas.
70
Quatro tabelas: uma lista de pases, uma lista de clientes, uma lista de transaes e uma lista de assinaturas,
que esto associadas entre si pelos campos Country e CustomerID.
71
Soluo alternativa
H uma forma simples de superar essas limitaes. Carregue o campo uma vez mais com um novo nome, a
partir da tabela na qual as contagens de frequncia devem ser feitas. Em seguida, use o novo campo para
um painel de filtro com frequncia, para uma caixa de estatsticas ou para clculos nos grficos.
Chaves sintticas
Quando duas ou mais tabelas de dados tiverem dois ou mais campos em comum, isso implicar em um
relacionamento de chave composta. O Qlik Sense resolve isso por meio da criao automtica de chaves
sintticas. Essas chaves so campos annimos que representam todas as combinaes ocorridas da chave
composta.
Caso voc receba um aviso sobre chaves sintticas quando carregar os dados, recomendado que voc
revise a estrutura de dados no visualizador do modelo de dados. Voc deve se perguntar se o modelo de
dados est ou no correto. As vezes est correto, mas, em geral, a chave sinttica est l devido a um erro
no script.
Chaves sintticas mltiplas geralmente so um sintoma de um modelo de dados incorreto, mas no
necessariamente. Contudo, chaves sintticas baseadas em outras chaves sintticas um sinal certo de um
modelo de dados incorreto.
72
Verifique se apenas os campos que vinculam logicamente as duas tabelas so usados como chaves.
l
Campos como Comentrios, Notas e Descrio podem existir em diversas tabelas sem
que haja qualquer relao e, portanto, no devem ser usados como chaves.
Campos como Data, Empresa e Nome podem existir em diversas tabelas e possuir
valores idnticos, embora com funes diferentes (Data do Pedido/Data de Envio, Empresa
Consumidora/Empresa Fornecedora). Em tais casos, eles no devem ser usados como
chaves.
1. A representao em caractere est sempre disponvel, e ela mostrada nas listas e em outros
objetos da pasta. O formato de dados em listas (formato numrico) afeta somente a representao
em caractere.
2. A representao de nmero est disponvel apenas quando os dados podem ser interpretados como
um nmero vlido. A representao de nmero usada para todos os clculos numricos e para a
classificao numrica.
Se vrios itens de dados lidos em um campo tiverem a mesma representao numrica, todos eles sero
tratados como o mesmo valor e compartilharo a primeira representao de caractere encontrada. Exemplo:
Os nmeros 1,0, 1 e 1,000 lidos nessa ordem tero a representao numrica 1 e a representao de
caractere inicial 1,0.
Interpretao numrica
Quando voc carregar dados contendo nmeros, moedas ou datas, eles sero interpretados de diferentes
formas, dependendo de o tipo de dados estar ou no definido. Esta seo descreve como os dados so
interpretados nos dois casos diferentes.
73
A configurao padro para nmero e moeda so definidos usando as variveis de interpretao numrica
do script ou a configurao do sistema operacional (Painel de Controle).
74
Exemplo 1:
75
armazenado como:
35648
09:00
armazenado como:
0.375
1997-08-06 09:00
armazenado como:
35648.375
e vice-versa.
35648
6/8/97
0.375
09.00
O Qlik Senseseguir um conjunto de regras para tentar interpretar datas, horas e outros tipos de dados. O
resultado final, no entanto, ser afetado por diversos fatores, conforme descrito aqui.
Exemplo 2:
Estes exemplos assumem as seguintes configuraes padro:
l
A tabela a seguir exibe as diferentes representaes quando os dados so lidos no Qlik Sense sem a funo
de interpretao especial no script:
Dados
Interpretao
Formato de
Formato
Formato
de
padro do Qlik
data 'YYYY-
de hora
numrico '#
origem
Sense
MM-DD'
'hh:mm'
##0.00'
0.375
0.375
1899-12-30
12/30/1899
09:00
0.38
33857
33857
1992-09-10
09/10/1992
00:00
33 857.00
97-08-06
97-08-06
1997-08-06
08/06/1997
00:00
35 648.00
970806
970806
4557-12-21
12/21/4557
00:00
970 806.00
8/6/97
8/6/97
8/6/97
8/6/97
8/6/97
8/6/97
Formato de data
'MM/DD/YYYY'
A tabela a seguir exibe as diferentes representaes quando os dados so lidos no Qlik Sense usando a
funo de interpretao date#(A, 'M/D/YY') no script:
76
Interpretao
Formato de
Formato
Formato
de
padro do Qlik
data 'YYYY-
de hora
numrico '#
origem
Sense
MM-DD'
'hh:mm'
##0.00'
0.375
0.375
0.375
0.375
0.375
0.375
33857
33857
33857
33857
33857
33857
97-08-06
97-08-06
97-08-06
97-08-06
97-08-06
97-08-06
970806
970806
970806
970806
970806
970806
8/6/97
8/6/97
1997-08-06
08/06/1997
00:00
35 648.00
3.3
Formato de data
'MM/DD/YYYY'
Voc precisa saber de algumas convenes e limitaes ao trabalhar com o Qlik Sense. Por exemplo, o
limite superior para tabelas de dados e campos, bem como a quantidade mxima de dados carregados no
Qlik Sense.
Formatos numricos
l
l
Para indicar um nmero especfico de dgitos, use o smbolo "0" para cada dgito.
Para indicar um dgito possvel, use o smbolo "#". Se o formato contiver somente smbolos # esquerda
do ponto decimal, os nmeros menores que 1 comearo com um ponto decimal.
Para marcar a posio do separador de milhares ou o separador de decimal, use o separador de milhares
e o separador de decimal aplicvel.
77
Exemplos:
# ##0
###0
0000
descreve o nmero como um inteiro com, pelo menos, quatro dgitos. Por exemplo, o nmero
123 ser mostrado como 0123.
0.000
0.0##
descreve o nmero com pelo menos 1 casa decimal e no mximo trs casas decimais.
Formato binrio
Para indicar o formato binrio, o cdigo de formato deve comear com (bin) ou
(BIN).
Formato octal
Para indicar o formato octal, o cdigo de formato deve comear com (oct) ou
(OCT).
Formato
hexadecimal
Formato decimal
Formato
personalizado radix
78
Exemplos:
num(199, '(bin)')
retorna
11000111
num(199, '(oct)')
retorna
307
num(199, '(hex)')
retorna
c7
num(199, '(HEX)' )
retorna
C7
num(199, '(r02)' )
retorna
11000111
num(199, '(r16)')
retorna
c7
num(199, '(R16)' )
retorna
C7
num(199, '(R36)')
retorna
5J
num(199, '(rom)')
retorna
cxcix
num(199, '(ROM)' )
retorna
CXCIX
Datas
Voc pode usar os seguintes smbolos para formatar uma data. possvel usar separadores arbitrrios.
79
l
l
"W" retornar o nmero do dia (por exemplo, 0 para segunda-feira) como um nico
dgito.
"WW" retornar o nmero com dois dgitos (por exemplo, 02 para quarta-feira).
"WWW" mostrar a verso abreviada do nome do dia da semana (por exemplo, Seg),
conforme definido pelo sistema operacional ou pela substituio de varivel do sistema
DayNames no script.
"WWWW" mostrar a verso longa do nome do dia da semana (por exemplo, Segundafeira), conforme definido pelo sistema operacional ou pela substituio de varivel do
sistema LongDayNames no script.
YYYY-MM-DD
YYYY-MMM-DD
DD MMMM YYYY
M/D/YY
W YY-MM-DD
WWW YY-MM-DD
WWWW YY-MM-DD
Horas
Voc pode usar os seguintes smbolos para formatar uma hora. possvel usar separadores arbitrrios.
Para descrever as fraes de um segundo, use o smbolo "f" para cada dgito.
tt
Para descrever a hora no formato AM/PM, use o smbolo "tt" depois da hora.
hh.mm.ss.ff
hh:mm:tt
80
M/D/Y hh.mm.ss.ffff
3.4
Se existirem referncias circulares (loops) em uma estrutura de dados, as tabelas sero associadas de
forma que haja mais de um caminho de associaes entre dois campos.
Esse tipo de estrutura de dados deve ser evitado o mximo possvel, pois isso poderia levar a ambiguidades
na interpretao dos dados.
O Qlik Sense resolve o problema de referncias circulares interrompendo o loop com uma tabela
parcialmente desconectada. Quando Qlik Sense encontra estruturas de dados circulares ao executar o script
de carga, um dilogo de ateno ser mostrado e uma ou mais tabelas sero definidas como parcialmente
desconectadas. O Qlik Sense normalmente tenta desconectar a maior tabela no loop, e muitas vezes, uma
tabela de transaes a que deve ser desconectada. No visualizador do modelo de dados, as tabelas
parcialmente desconectadas so indicadas por links pontilhados em vermelho com outras tabelas.
Exemplo:
Os dados so carregados a partir de trs tabelas que incluem o seguinte:
l
81
Essa estrutura de dados no muito boa, pois o nome do campo Team usado com duas finalidades
diferentes: equipes nacionais e locais. Os dados nas tabelas cria uma situao lgica impossvel.
Ao carregar as tabelas no Qlik Sense, o Qlik Sense determina quais conexes de dados so menos
importantes e desconecta essa tabela.
Abra o Visualizador do modelo de dados para ver como o Qlik Sense interpreta a relevncia das
conexes de dados:
A tabela com cidades e os pases a que pertencem agora est parcialmente conectada tabela com
selees nacionais de pases diferentes e tabela com clubes locais de cidades diferentes.
82
3.5
Renomeando campos
Algumas vezes, necessrio renomear campos para obter as associaes desejadas. Os trs principais
motivos para renomear campos so:
1. Dois campos so nomeados de maneira diferente, ainda que denotem a mesma coisa:
l
Os dois campos denotam um cdigo de identificao do cliente e devem ter o mesmo nome, como
CustomerID.
2. Dois campos so nomeados da mesma forma, mas denotam efetivamente coisas diferentes:
l
Os dois campos devem ser preferencialmente renomeados para, por exemplo, InvoiceDate e
OrderDate.
83
3.6
Concatenando tabelas
Concatenao automtica
Se os nomes de campo e o nmero de campos de duas ou mais tabelas carregadas forem exatamente os
mesmos, o Qlik Sense concatenar automaticamente o contedo dos comandos diferentes em uma tabela.
Exemplo:
LOAD a, b, c from table1.csv;
LOAD a, c, b from table2.csv;
A tabela interna resultante tem os campos a, b e c. O nmero de registros a soma do nmero de registros
na tabela 1 e na tabela 2.
A quantidade e os nomes dos campos devem ser exatamente os mesmos. A ordem dos dois
comandos arbitrria.
Concatenao forada
Mesmo se duas ou mais tabelas no tenham exatamente o mesmo conjunto de campos, ainda ser possvel
forar o Qlik Sense a concatenar as duas tabelas. Isso feito usando o prefixo concatenate no script, que
concatena uma tabela a outra tabela nomeada ou ltima tabela lgica criada anteriormente.
Exemplo:
LOAD a, b, c from table1.csv;
concatenate LOAD a, c from table2,csv;
84
A quantidade e os nomes dos campos devem ser exatamente os mesmos. A menos que o
nome de uma tabela carregada anteriormente seja especificado no comando concatenate, o
prefixo concatenate utilizar a ltima tabela criada anteriormente. Dessa forma, a ordem dos
dois comandos no arbitrria.
Evitando a concatenao
Se os nomes de campo e o nmero de campos de duas ou mais tabelas carregadas forem exatamente os
mesmos, o Qlik Sense concatenar automaticamente o contedo dos comandos diferentes em uma tabela.
Isso pode ser evitado com um comando noconcatenate. Assim, a tabela carregada com o comando LOAD
ou SELECT associado no ser concatenada com a tabela existente.
Exemplo:
LOAD a, b, c from table1.csv;
noconcatenate LOAD a, b, c from table2.csv;
3.7
Voc pode usar o predicado Resident em um comando LOAD para carregar dados de uma tabela
anteriormente carregada. Isso ser til quando voc quiser fazer clculos nos dados carregados com um
comando SELECT que no oferece a opo de utilizar as funes do Qlik Sense, como manipulao do
valor de data ou numrico.
Exemplo:
Nesse exemplo, a interpretao dos dados realizada no carregamento Resident, uma vez que no pode
ser feito no Crosstable LOAD inicial.
PreBudget:
Crosstable (Month, Amount, 1)
LOAD Account,
Jan,
Feb,
Mar,
From Budget;
Budget:
Noconcatenate
LOAD
Account,
Month(Date#(Month,MMM)) as Month,
Amount
85
Um caso comum para o uso de Resident quando voc deseja usar uma tabela temporria
para clculos ou filtragem. Depois de atingir o objetivo da tabela temporria, ela deve ser
descartada usando a declarao Drop table.
LOAD que carrega a partir do comando LOAD ou SELECT abaixo, sem especificar um qualificador de
fonte como From ou Resident, como voc faria normalmente. Um LOAD precedente geralmente a opo
mais rpida, mas h alguns casos em que voc precisa usar o Resident LOAD:
l
Se voc quiser usar a clusula Order_by para classificar os registros antes de processar a declarao
LOAD.
l
Se voc quiser usar qualquer um dos seguintes prefixos, casos em que o LOAD precedente no
suportado:
l
Crosstable
Join
Intervalmatch
LOAD precedente
O recurso LOAD precedente permite carregar uma tabela em um nico passo, mas ainda define vrias
transformaes sucessivas. Basicamente, um comando LOAD que carrega do comando LOAD ou
SELECT abaixo, sem especificar um qualificador de fonte como From ou Resident como faria
normalmente. Voc pode empilhar qualquer nmero de comandos LOAD dessa forma. A declarao no
final ser avaliada primeiro, seguida da declarao acima e assim por diante at que a declarao superior
seja avaliada.
Voc pode conseguir o mesmo resultado usando Resident, mas na maioria dos casos, um LOAD
precedente ser mais rpido.
Outra vantagem do load precedente que voc pode manter um clculo em um lugar e reutiliz-lo em
comandos LOAD colocados acima.
Os seguintes prefixos no podem ser usados em combinao com o LOAD precedente: Join,
Crosstable e Intervalmatch.
86
Ao introduzir o clculo em uma primeira passagem, podemos reutiliz-lo na funo Age em um LOAD
precedente:
LOAD ..., ReferenceDate,
Age( ReferenceDate, BirthDate ) as Age;
LOAD *,
Date( FromDate + IterNo() 1 ) as ReferenceDate
Resident Policies
While IterNo() <= ToDate - FromDate + 1 ;
3.8
variveis
parmetros
expresses
Uma expanso de sinal de dlar limitada na quantidade de expanses que ela pode calcular.
Nenhuma expanso acima de 1000 ser calculada.
87
$(variablename)
$(variablename) expande para o valor na varivel. Se variablename no existir, a expanso resultar em
uma string vazia.
Para expanses variveis numricas, use a seguinte sintaxe:
$(#variablename)
Ela sempre gera uma representao de ponto decimal vlido do valor numrico da varivel, possivelmente
com notao exponencial (para nmeros muito grandes/pequenos). Se variablename no existir ou no
contiver um valor numrico, expandir para 0.
Exemplo:
SET DecimalSep=',';
LET X = 7/2;
A expanso de sinal de dlar $(X) expande para 3,5 e $(#X) expande para 3.5.
Exemplo:
Set Mypath=C:\MyDocs\Files\;
...
LOAD * from $(MyPath)abc.csv;
Exemplo:
Set CurrentYear=1992;
...
SQL SELECT * FROM table1 WHERE Year=$(CurrentYear);
Exemplo:
Set vConcatenate = ;
For each vFile in FileList('.\*.txt')
Data:
$(vConcatenate)
LOAD * FROM [$(vFile)];
Set vConcatenate = Concatenate ;
Next vFile
Neste exemplo, todos os arquivos .txt no diretrio so carregados usando o prefixo Concatenate. Isso pode
ser necessrio se os campos forem ligeiramente diferentes e, nesse caso, a concatenao automtica no
funciona. A varivel vConcatenate inicialmente configurada como uma string vazia, pois o prefixo
Concatenate no pode ser usado no primeiro carregamento. Se o diretrio contiver trs arquivos chamados
file1.txt, file2.txt e file3.txt, a declarao LOAD durante as trs iteraes ser expandida para:
LOAD * FROM[.\file1.txt];
88
Exemplo:
Set MUL=$1*$2;
Set X=$(MUL(3,7)); // retorna '3*7' em X
Let X=$(MUL(3,7)); // retorna 21 em X
Exemplo:
Set MUL=$1*$2;
Set X=$(MUL); // retorna '$1*$2' em X
Set X=$(MUL(10)); // retorna '10*$2' em X
Let X=$(MUL(5,7,8)); // retorna 35 em X
Exemplo:
set MUL='$1*$2 $0 par';
set X=$(MUL(3,7)); // retorna '3*7 2 par' em X
$(=expression )
A expresso ser avaliada e o valor ser usado na expanso.
Exemplo:
$(=Year(Today())); // retorna uma string com o ano atual.
$(=Only(Year)-1); // retorna o ano anterior ao selecionado.
Incluso de arquivo
Incluses de arquivo so feitas usando as expanses do sinal de dlar. A sintaxe :
89
3.9
Nomes do campo
Literais de string
Descrio
Smbolo
Ponto de cdigo
Exemplo
aspas duplas
""
34
"string"
colchetes
[]
91, 93
[string]
acentos graves
``
96
`string`
aspas simples
''
39
'string'
Em comandos SELECT
Para um comando SELECT interpretado pelo driver ODBC, pode ser um pouco diferente. Normalmente,
voc deve utilizar aspas duplas retas (Alt + 0034) para nomes e aspas simples retas (Alt + 0039) para literais,
mas nunca acentos graves. No entanto, alguns drivers ODBC no somente aceitam acentos graves, como
tambm os preferem. Nesse caso, os comandos SELECT gerados contm acentos graves.
[]
''
""
``
90
Exemplo:
'Sweden' as Country
Quando essa expresso usada como parte da lista de campos em um comando LOAD ou SELECT, a
string de texto " Sweden" ser carregada como valor de campo no campo Qlik Sense " Country".
Exemplo:
"land" as Country
Quando essa expresso usada como parte da lista de campos em um comando LOAD ou SELECT, o
contedo do campo de banco de dados ou coluna da tabela com o nome " land" ser carregado como valores
de campo do campo Qlik Sense " Country". Isto , land ser tratado como uma referncia de campo.
Exemplo:
'12/31/96'
Quando essa string usada como parte de uma expresso, na primeira etapa ela interpretada como a
string de texto "12/31/96", que por sua vez pode ser interpretada como uma data se o formato da data for
MM/DD/YY. Nesse caso, ser armazenada como um valor duplo com uma representao numrica e uma
textual.
Exemplo:
12/31/96
Quando essa string for usada como uma parte de uma expresso, ser interpretada numericamente como 12
dividido por 31 dividido por 96.
91
O smbolo de asterisco
O smbolo de asterisco interpretado como todos os valores (listados) desse campo, isto , os valores
listados em qualquer lugar nessa tabela. Se for utilizado em um dos campos do sistema (USERID,
PASSWORD, NTNAME ou SERIAL) em uma tabela carregada na seo de acesso do script, ele ser
interpretado como todos os valores possveis desse campo (inclusive os no listados).
O smbolo de asterisco no permitido em arquivos de informaes. Alm disso, no pode ser utilizado em
campos chave, isto , campos utilizados para unir tabelas.
No haver smbolo de asterisco disponvel a menos que ele seja especificado explicitamente.
OtherSymbol
Em muitos casos, necessrio representar todos os demais valores em uma tabela, isto , os valores que
no foram encontrados explicitamente nos dados carregados. Isso feito com uma varivel especial
chamada OtherSymbol. Para definir que OtherSymbol seja tratado como todos os demais valores, use a
seguinte sintaxe:
SET OTHERSYMBOL=<sym>;
Exemplo:
Table Customers
CustomerID
Name
ABC Inc.
XYZ Inc.
92
ACME INC
Undefined
Table Orders
CustomerID
Name
1234
1243
1248
1299
Insira o seguinte comando no script antes do ponto em que a primeira tabela acima carregada:
SET OTHERSYMBOL=+;
OtherSymbol no tem o propsito de ser utilizado para criar unies externas entre tabelas.
3.11
Quando nenhum dado puder ser produzido para um determinado campo como resultado de uma consulta
base de dados e/ou de uma juno entre tabelas, geralmente o resultado ser normalmente um valor NULL.
A lgica do Qlik Sense trata as seguintes ocorrncias como valores NULL:
l
l
l
l
Geralmente, impossvel usar esses valores NULL para associaes e selees, exceto
quando o comando NullAsValue estiver sendo usado.
Por definio, os arquivos de texto no podem conter valores NULL.
SET NULLDISPLAY=<sym>;
93
SET NULLDISPLAY=;
O uso de NULLDISPLAY afeta somente os dados de uma fonte de dados ODBC.
Se desejar que a lgica do Qlik Sense interprete valores NULL retornados de uma conexo ODBC como uma
string vazia, inclua o seguinte texto no script antes de qualquer declarao SELECT:
SET NULLDISPLAY=";
Aqui, '' realmente significa duas aspas simples sem nada entre elas.
SET NULLINTERPRET=<sym>;
O smbolo <sym> deve ser interpretado como NULL. <sym> pode ser qualquer string.
Para restaurar essa funcionalidade interpretao padro, use:
SET NULLINTERPRET=;
O uso de NULLINTERPRET afeta somente os dados de arquivos de texto e clusulas inline.
Funes
A regra geral que as funes retornam NULL quando os parmetros ficam fora do intervalo para o qual a
funo est definida.
Exemplo:
asin(2)
retorna
NULL
log(-5)
retorna
NULL
round(A,0)
retorna
NULL
94
Exemplo:
sin(NULL)
retorna
NULL
chr(NULL)
retorna
NULL
if(NULL, A, B)
retorna
NULL
if(True, NULL, A)
retorna
NULL
if(True, A, NULL)
retorna
Exemplo:
isnull(NULL)
retorna
True (-1)
isnum(NULL)
retorna
False (0)
Exemplo:
A
NULL
retorna
NULL
NULL
retorna
NULL
NULL
retorna
NULL
NULL
retorna
NULL
NULL
retorna
NULL
NULL
retorna
NULL
NULL
retorna
NULL
&
NULL
retorna
Operadores relacionais
Se NULL for encontrado em qualquer lado dos operadores relacionais, sero aplicadas regras especiais.
Exemplo:
95
rel.op
NULL
retorna
NULL
<>
NULL
retorna
True (-1)
<
NULL
retorna
False (0)
<=
NULL
retorna
False (0)
NULL
retorna
False (0)
>=
NULL
retorna
False (0)
>
NULL
retorna
False (0)
96
4.1
Um arquivo QVD (QlikView Data) um arquivo que contm uma tabela de dados exportada do Qlik Sense.
O QVD um formato nativo do Qlik e pode ser gravado e lido apenas pelo Qlik Sense ou QlikView. O
formato de arquivo otimizado para velocidade na leitura de dados de um script do e ao mesmo tempo
compacto. A leitura de dados de um arquivo QVD geralmente de 10 a 100 vezes mais rpida do que a
leitura de outras fontes de dados.
Os arquivos QVD podem ser lidos em dois modos, padro (rpido) e otimizado (mais rpido). O modo
selecionado determinado automaticamente pelo mecanismo de script. O modo otimizado pode ser usado
apenas quando todos os campos so lidos sem transformaes (frmulas que atuam nos campos), embora a
renomeao de campos seja permitida. Uma clusula where que faz o Qlik Sense descompactar os registros
tambm desativar a carga otimizada.
Um arquivo QVD contm exatamente uma tabela de dados e composto por trs partes:
1. Cabealho.
Se o arquivo QVD tiver sido gerado com o QlikView, o cabealho ser do tipo
XML composto de modo apropriado (no conjunto de caracteres UTF-8), que
descreve os campos da tabela, o layout das informaes posteriores e alguns
outros metadados.
2. Tabelas de smbolos em um formato com bytes.
3. Dados da tabela em um formato com bits.
97
Carga incremental
Em muitos casos comuns, a funcionalidade QVD pode ser usada para a carga incremental, para carregar
apenas novos registros de um banco de dados crescente.
1. Criao e nomeao explcitas, usando o comando store no script. Indique no script que uma
tabela lida anteriormente ou parte dela deve ser exportada para um arquivo nomeado de
forma explcita em um local de sua escolha.
2. Criao e manuteno automticas a partir do script. Se um comando LOAD ou SELECT for
precedido do novo prefixo buffer, o Qlik Sensecriar automaticamente um arquivo QVD que,
se determinadas condies forem atendidas, pode ser usado no lugar da fonte de dados
original ao recarregar os dados.
No h diferena entre os arquivos QVD resultantes, por exemplo, em relao velocidade de leitura, etc.
1. Carregando um arquivo QVD como uma fonte de dados explcita. Os arquivos QVD podem ser
referenciados por um comando LOAD no script, como qualquer outro tipo de arquivo de texto
(csv, fix, dif, biff, etc).
Exemplo:
LOAD * from xyz.qvd (qvd);
LOAD Name, RegNo from xyz.qvd (qvd);
LOAD Name as a, RegNo as b from xyz.qvd (qvd);
2. Carregando automaticamente os arquivos QVD armazenados em buffer. Ao usar o prefixo
buffer em comandos LOAD ou SELECT, nenhum comando explcito para leitura
necessrio. O Qlik Sense determinar como usar os dados do arquivo QVD, ao contrrio da
obteno de dados com o uso do comando original LOAD ou SELECT.
3. Acessando arquivos QVD a partir do script. Vrias funes de script (todas comeando com
qvd) podem ser usadas para recuperar diversas informaes dos dados contidos no cabealho
XML de um arquivo QVD.
4.2
Voc pode utilizar a seo de acesso no script de carga de dados para administrar a segurana. Nesse caso,
um nico arquivo pode ser utilizado para manter os dados de vrios usurios ou grupos de usurios. O Qlik
Sense utilizar as informaes contidas na seo de acesso para autenticao e autorizao e reduzir
dinamicamente os dados para que o usurio visualize apenas seus prprios dados.
98
A segurana criada no prprio arquivo, o que significa que um arquivo baixado tambm estar protegido
at certo ponto. No entanto, se as demandas de seguranas forem altas, o download de arquivos e uso offline devero ser evitados, e os arquivos devero ser publicados somente pelo servidor do Qlik Sense. Como
todos os dados sero mantidos em um arquivo, o tamanho desse arquivo poder ser potencialmente muito
grande.
Sees no script
O controle de acesso gerenciado por meio de uma ou vrias tabelas de segurana carregadas da mesma
forma que o Qlik Sense normalmente carrega os dados. O que possibilita o armazenamento dessas tabelas
em um banco de dados normal. Os comandos de script que gerenciam as tabelas de segurana so
fornecidos na seo de acesso, que iniciada no script pelo comando Section Access.
Se uma seo de acesso estiver definida no script, a parte do script que carrega os dados do aplicativo deve
ser colocada em uma seo diferente, iniciada pelo comando Section Application.
Exemplo:
Section Access;
LOAD * inline
[ACCESS,USERID
USER,U ];
Section Application;
LOAD... ... from... ...
ACCESS
USERID
99
GROUP
OMIT
Contm o nome do campo que deve ser omitido para esse usurio especfico. Os caracteres
curinga podem ser usados e o campo pode ficar vazio. Uma forma fcil de fazer isto usar
um subfield.
O Qlik Sense comparar o usurio fornecido pelo proxy com o UserID e resolver o usurio contra grupos na
tabela. Se o usurio pertence a um grupo ao qual o acesso permitido, ou o usurio combina, ele receber
acesso ao aplicativo.
Como a mesma lgica interna, que a marca do Qlik Sense, tambm usada na seo de acesso, os
campos de segurana podem ser colocados em tabelas diferentes. Todos os campos listados nos comandos
LOAD ou SELECT na seo de acesso devem ser escritos em MAISCULAS. Converta todos os nomes de
campo que contm letras minsculas no banco de dados para maisculas usando a funo Upper antes de
ler o campo pelo comando LOAD ou SELECT.
Um curinga, *, interpretado como todos os valores (listados) desse campo, isto , um valor listado em
qualquer lugar nesta tabela. Se for utilizado em um dos campos do sistema (USERID, GROUP) em uma
tabela carregada na seo de acesso do script, ele ser interpretado como todos os valores possveis desse
campo (inclusive os no listados).
Se voc tiver habilitado a seo de acesso, no poder usar os nomes de campo do sistema
da seo de acesso listados neste como nomes de campo em seu modelo de dados.
Exemplo:
Neste exemplo, apenas usurios do grupo financeiro podem abrir o documento.
ACCESS
GROUP
USER
Finance
100
Campos (colunas) podem ser ocultos com o uso do campo do sistema OMIT.
Registros (linhas) podem ser ocultos vinculando os dados de acesso seo aos dados reais: A
seleo de valores que sero mostrados/excludos controlada pela existncia de um ou mais
campos com nomes comuns no acesso seo e no aplicativo da seo. Depois do login do usurio,
o Qlik Sense tentar copiar as selees nos campos de seo de acesso em quaisquer campos de
seo de aplicativo, exatamente com os mesmos nomes de campo (os nomes de campos devem ser
escritos em MAISCULAS). Depois de feitas as selees, o Qlik Sense ocultar permanentemente
do usurio todos os dados que foram excludos por essas selees.
Exemplo:
section access;
LOAD * inline [
ACCESS, USERID,REDUCTION, OMIT
USER, AD_DOMAIN\ADMIN,*,
USER, AD_DOMAIN\A,1,
USER, AD_DOMAIN\B, 2,NUM
USER, AD_DOMAIN\C, 3, ALPHA
USER, INTERNAL\SA_SCHEDULER,*,
];
section application;
T1:
LOAD *,
NUM AS REDUCTION;
LOAD
Chr( RecNo()+ord(A)-1) AS ALPHA,
RecNo() AS NUM
AUTOGENERATE 3;
Agora, o campo REDUCTION (em maisculas) existe no acesso seo e no aplicativo da seo (todos os
valores de campo tambm esto em maisculas). Normalmente, os dois campos seriam totalmente
diferentes e separados, mas ao usar o acesso seo, estes campos vincularo e reduziro o nmero de
registros exibidos para o usurio.
O campo OMIT no acesso seo define os campos que devem ser ocultos do usurio.
O resultado ser:
l
O usurio ADMIN pode visualizar todos os campos e apenas os registros que outros usurios podem
visualizar neste exemplo quando REDUCTION for 1,2 ou 3.
O usurio A pode visualizar todos os campos, mas apenas os registros conectados a REDUCTION=1.
101
O usurio B pode visualizar todos os campos, exceto NUM, e apenas os registros conectados a
REDUCTION=2.
O usurio C pode visualizar todos os campos, exceto ALPHA, e apenas os registros conectados a
REDUCTION=3.
4.3
O Direct Discovery expande os recursos associativos do modelo de dados na memria do Qlik Sense ao
fornecer acesso a dados de origem adicionais por meio de uma consulta agregada, que associa
perfeitamente grandes conjuntos de dados com dados da memria. O Direct Discovery aumenta a
capacidade dos usurios de negcios de realizar anlises associativas em grandes fontes de dados, sem
limitaes. As selees podem ser feitas nos dados da memria e nos dados do Direct Discovery para
visualizar associaes entre os conjuntos de dados com as mesmas cores de associao do Qlik Sense
verde, branco e cinza. As visualizaes podem analisar simultaneamente os dados dos dois conjuntos de
dados.
Os dados so selecionados para o Direct Discovery com uma sintaxe de script especial, DIRECT QUERY.
Quando a estrutura do Direct Discovery for estabelecida, os campos do Direct Discovery podem ser usados
juntamente com os dados da memria para criar objetos do Qlik Sense. Quando um campo do Direct
Discovery usado em um objeto do Qlik Sense, uma consulta do SQL executada automaticamente na
fonte de dados externa.
102
Uma segunda tabela relacionada, carregada na memria compartilharia um campo comum, e essa tabela
poderia adicionar novos valores exclusivos ao campo comum ou poderia compartilhar os valores existentes.
103
Direct Discovery
Quando os campos da tabela so carregados com um comando Direct DiscoveryLOAD (Direct Query), uma
tabela semelhante criada apenas com os campos DIMENSION . Como ocorre com os campos da
memria, os valores exclusivos dos campos DIMENSION so carregados na memria. No entanto, as
associaes entre os campos so deixadas no banco de dados.
104
105
Depois que a estrutura do Direct Discovery estabelecida, os campos do Direct Discovery podem ser usados
com determinados objetos de visualizao e podem ser usados para associaes com os campos da
memria. Quando um campo do Direct Discovery usado, o Qlik Sense automaticamente cria a consulta do
SQL adequada para ser executada nos dados externos. Quando as selees so feitas, os valores dos dados
associados dos campos do Direct Discovery so usados nas condies WHERE das consultas do banco de
dados.
Com cada seleo, as visualizaes com os campos do Direct Discovery so recalculadas, com os clculos
ocorrendo na tabela do banco de dados de origem, por meio da execuo da consulta do SQL criada pelo
Qlik Sense. O recurso da condio do clculo pode ser usado para especificar quando as visualizaes
devem ser recalculadas. At que a condio seja atendida, o Qlik Sense no envia consultas para recalcular
as visualizaes.
106
possvel usar as prticas recomendadas de ajuste de consulta e banco de dados para o Direct Discovery.
Todo o ajuste de desempenho deve ser feito no banco de dados de origem. O Direct Discovery no oferece
suporte para o ajuste de desempenho da consulta a partir do aplicativo Qlik Sense. No entanto, possvel
fazer chamadas paralelas e assncronas para o banco de dados com o recurso de pool de conexo. A sintaxe
do script de carga para configurar o recurso de pool a seguinte:
SET DirectConnectionMax=10;
O armazenamento em cache do Qlik Sense tambm melhora a experincia geral do usurio. Consulte
Armazenamento em cache e o Direct Discovery (pgina 108) abaixo.
O desempenho do Direct Discovery com os campos DIMENSION tambm pode ser melhorado
desvinculando alguns dos campos das associaes. Isto feito com a palavra-chave DETACH em DIRECT
QUERY. Embora os campos desvinculados no sejam consultados para associaes, eles ainda fazem
parte dos filtros, acelerando os tempos de seleo.
Embora ambos os campos da memria do Qlik Sense e os campos DIMENSION do Direct Discovery
mantenham todos os seus dados na memria, a maneira pela qual eles so carregados afeta a velocidade
das cargas na memria. Os campos da memria do Qlik Sense mantm apenas uma cpia do valor de
campo quando existirem vrias instncias do mesmo valor. No entanto, todos os dados do campo so
carregados e, em seguida, os dados duplicados so classificados.
DIMENSION so campos que tambm armazenam uma cpia do valor de campo, mas os valores
duplicados so classificados no banco de dados antes de serem carregados na memria. Ao lidar com
grandes quantidades de dados, como geralmente ocorre ao usar o Direct Discovery, os dados so carregados
mais rapidamente como uma carga DIRECT QUERY do que seriam por meio da carga SQL SELECT,
usada para os campos da memria.
ColumnB
red
one
Red
two
rED
three
RED
four
107
O Qlik Sense normaliza os dados na medida que gera correspondncias nos dados selecionados que os
bancos de dados no fariam correspondncias. Como resultado disso, uma consulta na memria pode gerar
mais valores de correspondncia do que uma consulta do Direct Discovery. Por exemplo, na tabela a seguir,
os valores para o nmero "1" variam pelo local de espaos ao seu redor:
ColumnA
ColumnB
' 1'
space_before
'1'
no_space
'1 '
space_after
'2'
two
Se voc selecionar "1" em uma Caixa de filtro para ColumnA, onde os dados esto na memria padro do
Qlik Sense, as primeiras trs linhas so associadas:
'
1'
space_before
'1'
no_space
'1
'
space_after
Se a Painel de filtro contiver Direct Discovery dados, a seleo de "1" poderia associar apenas "no_space".
As correspondncias retornadas para os dados do Direct Discovery dependem do banco de dados. Alguns
retornam apenas "no_space" e outros, como o SQL Server, retornam "no_space" e "space_after".
Exemplo:
1. O usurio aplica a seleo inicial.
O SQL transmitido para a fonte de dados subjacente.
2. O usurio limpa a seleo e aplica a mesma seleo como uma seleo inicial.
O resultado do cache retornado e o SQL no transmitido para a fonte de dados subjacente.
3. O usurio aplica uma seleo diferente.
O SQL transmitido para a fonte de dados subjacente.
Um limite de tempo pode ser definido para o armazenamento em cache com a varivel do sistema
DirectCacheSeconds. Quando o limite de tempo alcanado, o Qlik Sense limpa o cache dos resultados
da consulta do Direct Discovery gerados para as selees anteriores. Em seguida, o Qlik Sense consulta as
selees dos dados de origem e cria novamente o cache para o limite de tempo designado.
108
O tempo de cache padro para os resultados da consulta do Direct Discovery de 30 minutos, a menos que
a varivel do sistema DirectCacheSeconds seja usada.
Tipo de
Em
Associao de
Usado em
campo
memria?
formulrios?
expresses de
grfico?
DIMENSION
Sim
Sim
Sim
MEASURE
No
No
Sim
DETAIL
No
No
No
Campos DIMENSION
Os campos DIMENSION so carregados na memria e podem ser usados para criar associaes entre
dados na memria e os dados dos campos do Direct Discovery. Os campos DIMENSION do Direct Discovery
tambm so usados para definir os valores de dimenso nos grficos.
Campos MEASURE
Os campos MEASURE, por outro lado, so reconhecidos em um "meta nvel". Os campos MEASURE no
so carregados na memria (no aparecero no visualizador do modelo de dados). O propsito permitir
que as agregaes dos dados nos campos MEASURE ocorram no banco de dados e no na memria.
Apesar disso, os campos MEASURE podem ser usados em expresses sem alterar a sintaxe de expresso.
Como resultado disso, o uso dos campos do Direct Discovery a partir do banco de dados transparente para
o usurio final.
As seguintes funes de agregao podem ser usadas com campos MEASURE:
l
Sum
Avg
Count
109
Min
Max
Campos DETAIL
Os campos DETAIL fornecem informaes ou detalhes que voc pode desejar exibir, mas no usar nas
expresses do grfico. Os campos DETAIL s podem ser usados em agregaes Count e s podem ser
visualizados em uma Tabela. Campos designados como DETAIL geralmente contm dados que no podem
ser agregados de forma significativa, como, por exemplo, comentrios.
Qualquer campo pode ser designado como um campo DETAIL.
SAP
Para o SAP, Direct Discovery pode ser usado apenas com o Qlik SAP SQL Connector e requer os seguintes
parmetros nas variveis SET:
SET DirectFieldColumnDelimiter=' ';
SET DirectIdentifierQuoteChar=' ';
O SAP usa o OpenSQL, que delimita as colunas com um espao em vez de uma vrgula; por isso, os
comandos SET acima resultam em uma substituio para ajustar a diferena entre ANSI SQL e OpenSQL.
O Google Big Query no suporta SELECT DISTINCT ou nomes de coluna/tabela entre aspas e tem uma
configurao de aspas diferente do ANSI, com uso do '[]'.
110
Exemplo:
SET DirectDateFormat='YYYY-MM-DD';
Existem tambm duas variveis de scripts para controlar a forma como o Direct Discovery formata valores do
tipo monetrio nos comandos SQL gerados:
SET DirectMoneyFormat (default '#.0000')
SET DirectMoneyDecimalSep (default '.')
A sintaxe para essas duas variveis a mesma que para MoneyFormat e MoneyDecimalSep, porm,
existem duas importantes diferenas no uso:
l
Como este no um formato de exibio, ele no deve incluir smbolos de moeda ou separadores de
milhares.
Os valores padro no so orientados pelo local, mas impressos nos valores. (Formatos especficos
para o local incluem o smbolo de moeda.)
O Direct Discovery pode suportar a seleo de dados Unicode estendidos usando o formato padro de SQL
para literais de caracteres estendidos (N'<extended string>'), conforme exigido por alguns bancos de dados,
como o SQL Server. Esta sintaxe pode ser ativada para o Direct Discovery com a varivel de script
DirectUnicodeStrings. Definir essa varivel para "true" ativa o uso de "N" na frente das laterais dos
caracteres.
Segurana
As prticas de segurana recomendadas descritas a seguir devem ser levadas em conta ao usar o Direct
Discovery:
l
l
l
Todos os usurios que usam o mesmo aplicativo com o recurso Direct Discovery, usam a mesma
conexo. A passagem de autenticao e as credenciais por usurio no so suportadas.
O Acesso Seo suportado apenas no modo de servidor.
possvel executar comandos de SQL personalizados no banco de dados com uma expresso com a
palavra-chave NATIVE; portanto, a conexo do banco de dados configurada no script de carga deve
usar uma conta que tenha um acesso somente leitura ao banco de dados.
O Direct Discovery no tem o recurso de registro em log, mas possvel usar o recurso de
rastreamento do ODBC.
111
Dimenses calculadas
Anlise comparativa (Estado alternativo) dos objetos que usam campos do Direct Discovery
Carga binria de um aplicativo que esteja acessando uma tabela do Direct Discovery
Loop e reduo
O uso do caractere curinga * aps a palavra-chave DIRECT QUERY no script de carga (DIRECT QUERY
*)
l
l
As tabelas do banco de dados do Oracle com colunas do tipo de dados LONG no so suportadas.
Nmero inteiros extensos na notao cientfica fora do intervalo [-9007199254740990,
9007199254740991] podem causar erros de arredondamento e comportamento no definido.
Direct Discovery pode ser implantado em um cenrio de fato nico/dimenses mltiplas de memria
com conjuntos de dados grandes.
Direct Discovery pode ser usado com mais de uma tabela que deve corresponder a qualquer um dos
seguintes critrios:
l
Direct Discovery no adequado para implantao em um cenrio de Terceira forma normal com
todas as tabelas na forma Direct Discovery.
112
Product_Join:
DIRECT QUERY
DIMENSION
[ProductID],
[AW2012].[Production].[Product].[Name] as [Product Name],
[AW2012].[Production].[ProductSubcategory].[Name] as [Sub Category Name],
Color,
[AW2012].[Production].[Product].ProductSubcategoryID as [SubcategoryID]
MEASURE
[ListPrice]
FROM [AW2012].[Production].[Product],
[AW2012].[Production].[ProductSubcategory]
WHERE [AW2012].[Production].[Product].ProductSubcategoryID =
[AW2012].[Production].[ProductSubcategory].ProductSubcategoryID
;
113
ON(AW2012.Sales.Customer.CustomerID =
AW2012.Sales.SalesOrderHeader.CustomerID);
No possvel fazer referncia a tabelas por alias na clusula FROM. necessrio usar o
nome completo da tabela.
Criamos um grfico com OrderMonth como dimenso e Sum(Subtotal) como medida, e uma caixa de filtro
para seleo do Size.
114
115
ProductID IN contendo milhares de IDs do produto. O comando resultante pode ser muito grande para ser
administrado pela fonte de dados devido a limitaes ou problemas de memria ou desempenho.
A soluo deixar o Qlik Sense criar subconsultas, configurando o DirectEnableSubquery como "true". O
comando SQL gerado poder ter a seguinte aparncia:
SELECT ProductID, month([OrderDate]), SUM(OrderQty), SUM(SubTotal)
FROM SalesTable
WHERE ProductID IN
( SELECT DISTINCT "AW2012"."dbo"."PRODUCT"."PRODUCTID" WHERE "AW2012"."dbo"."PRODUCT"."SIZE" IN (3))
GROUP BY ProductID, month([OrderDate])
l
l
A sintaxe da subconsulta invocada somente quando voc selecionar dados que envolvam a
filtragem de grficos usando dados de outra tabela.
A quantidade de dados nas chaves o fator determinante, no o nmero de chaves.
As subconsultas so invocadas somente se todas as tabelas envolvidas estiverem no modo Direct
Discovery. Se voc filtrar o grfico usando dados de uma tabela includa no modo de memria, uma
clusula IN ser gerada.
116
O arquivo de rastreamento resultante detalha os comandos do SQL gerados pelas selees e interaes do
usurio.
117
O visualizador do modelo de dados fornece uma viso geral da estrutura de dados do aplicativo. possvel
visualizar os dados nas tabelas e campos no visualizador do modelo de dados. Tambm possvel criar
dimenses e medidas dinamicamente.
No visualizador de modelo de dados, cada tabela de dados representada por uma caixa com o nome da
tabela como ttulo e todos os campos da tabela listados. As associaes de tabela so mostradas com
linhas, com uma linha pontilhada indicando uma referncia circular. Quando voc seleciona uma tabela ou
um campo, o realce das associaes fornece instantaneamente uma imagem de como os campos e tabelas
esto relacionados.
Voc pode alterar o nvel de zoom clicando em Y, Z ou usando o boto deslizante. Clique em para
restaurar nvel de zoom para 1:1.
5.1
Exibies
+ Visualizao de tabela interna - o modelo de dados do Qlik Sense incluindo campos sintticos
7 Visualizao da tabela de fonte - o modelo de dados das tabelas de dados de origem
118
5.2
Movendo tabelas
Voc pode mover as tabelas arrastando-as na tela. As posies da tabela sero salvas quando o aplicativo
for salvo.
possvel bloquear o layout da tabela (posies e tamanhos) clicando em [ na parte direita da tela. Para
desbloquear o layout da tabela, clique em \.
Tambm possvel organizar o layout automaticamente usando as opes em na barra de ferramentas:
l
l
l
Redimensionando tabelas
Voc pode ajustar o tamanho de exibio de uma janela com a seta vermelha no canto inferior direito de
uma tabela. O tamanho de exibio da tabela no ser salvo quando o aplicativo for salvo.
Tambm possvel usar as opes automticas de tamanho de exibio na barra de ferramentas:
tContrair todas - minimiza todas as tabelas para mostrar apenas o nome da tabela.
Mostrar campos vinculados - reduz o tamanho de todas as tabelas para mostrar o nome da tabela e
todos os campos com associaes a outras tabelas.
s Expandir tudo - maximiza todas as tabelas para mostrar todos os campos da tabela.
5.3
No visualizador do modelo de dados, voc pode ver qualquer tabela de dados em um painel na parte inferior
da tela. Na visualizao, voc pode inspecionar rapidamente o contedo de uma tabela ou campo. Voc
tambm pode adicionar dimenses e medidas rapidamente caso selecione um campo.
Alm disso, metadados para a tabela ou campo selecionados so exibidos no painel de visualizao.
Voc pode exibir e ocultar o painel de visualizao de duas maneiras:
l
l
119
O painel de visualizao exibido com o campo selecionado e seus valores, alm dos metadados para o
campo. Voc tambm pode adicionar o campo como uma dimenso ou medida mestre.
Densidade o nmero de registros que possuem valores diferentes de NULL nesse campo, em
comparao com o nmero total de registros na tabela.
Proporo de subconjunto o nmero de valores distintos do campo encontrados nessa tabela,
em comparao com o nmero total de valores distintos desse campo em outras tabelas no modelo
de dados. Isso s relevante para campos chave.
120
5.4
Quando voc est trabalhando com um aplicativo no publicado, possvel criar dimenses mestres para
que elas possam ser reutilizadas. Os usurios de um aplicativo publicado tero acesso s dimenses
mestres em sua biblioteca, mas no podero modific-las.O visualizador do modelo de dados no est
disponvel em um aplicativo publicado.
Faa o seguinte:
Voc pode adicionar rapidamente vrias dimenses como itens mestres clicando em
Adicionar dimenso depois de adicionar cada dimenso. Clique em Concludo quando
terminar.
5.5
Quando voc est trabalhando com um aplicativo no publicado, possvel criar medidas mestres para que
elas possam ser reutilizadas. Os usurios de um aplicativo publicado tero acesso s medidas mestres em
sua biblioteca, mas no podero modific-las.
Faa o seguinte:
121
5.6
Adicionar dados.
DAjuda
]Sobre
Salvar
Salvar as alteraes.
]
t
s
+
7
Visualizao de tabela interna o modelo de dados do Qlik Sense incluindo campos sintticos.
Visualizao da tabela de fonte o modelo de dados das tabelas de dados de fonte.
Menu de layout com as seguintes opes:
Layout de grade
Layout automtico
Restaurar layout
j
122
Esta seo descreve vrias maneiras diferentes para carregar seus dados para o aplicativo Qlik Sense,
dependendo de como os dados so estruturados e de qual modelo de dados voc deseja alcanar.
6.1
Provavelmente, meus dados esto parecidos com isso e quero os nmeros de vendas em um campo
separado:
Year
Q1
Q2
Q3
Q4
2013
34
54
53
52
2014
47
56
65
67
2015
57
56
63
71
Ao sugerida
Use o prefixo Crosstable ao carregar a tabela.
O resultado ser semelhante a este:
Year
Quarter
Sales
2013
Q1
34
2013
Q2
54
2013
Q3
53
2013
Q4
52
2014
Q1
47
...
...
...
6.2
Eu tenho uma tabela genrica com trs campos semelhantes a isso, e quero que cada atributo seja uma
tabela separada:
Object
Attribute
Value
ball
color
red
ball
diameter
25
123
Attribute
Value
ball
weight
box
color
56
box
height
30
box
length
20
box
width
25
Ao sugerida
Crie um modelo de dados genrico usando o prefixo de carregamento Generic.
O resultado ser um modelo de dados parecido com esse:
6.3
NodeID
ParentNodeID
Title
General manager
Country manager
Region manager
Ao sugerida
124
NodeID
ParentNodeID
Title
Level1
Level2
Level3
General
manager
General
manager
Country manager
General
manager
Country
manager
Region manager
General
manager
Country
manager
Region
manager
6.4
Tenho um banco de dados com um grande nmero de registros, e no quero carregar todo o banco de dados
para atualizar os dados em meu aplicativo. Quero carregar apenas registros novos e atualizados, e remover
registros excludos do banco de dados.
Ao sugerida
Implemente uma soluo de carga incremental usando arquivos QVD.
6.5
O Qlik Sense associar automaticamente tabelas com um campo em comum, mas quero controlar como as
tabelas sero combinadas.
Ao sugerida : Mapping
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.
6.6
Tenho uma tabela de valores numricos discretos (Event), e quero combin-la em um ou mais intervalos
(Start e End).
125
Ao sugerida
Use o prefixo IntervalMatch para vincular o campo Time com o intervalo definido pelo Start e End.
Se o intervalo no for explicitamente definido com incio e trmino, apenas com uma mudana na data e
hora como na tabela abaixo, ser preciso criar uma tabela de intervalos.
6.7
Meus dados contm valores de campo em tabelas diferentes que no tm o mesmo nome. Por exemplo,
uma tabela contm o valor US em Pas enquanto outra tabela contm Estados Unidos. Essa situao
impedir associaes.
Pas
Regio
Pas
Populao
EUA
Maryland
Estados Unidos
304
EUA
Idaho
Japo
128
EUA
New York
Brasil
192
EUA
Califrnia
China
1333
Ao sugerida
Limpe os dados usando uma tabela de mapeamento, que compara valores de campo e permite associaes
corretas.
126
6.8
Tenho dados que gostaria de visualizar usando um mapa, por exemplo, dados de vendas por pas ou por
loja. Para usar a visualizao em mapa, preciso carregar dados de rea ou ponto.
Ao sugerida
Voc pode carregar os dados de rea ou ponto que combinem locais de valor de dados de um arquivo KML
ou um arquivo Excel. Alm disso, voc precisa carregar o verdadeiro mapa de fundo.
6.9
Em geral, a maneira como os dados so carregados para o aplicativo pode ser explicada pelo processo
Extrair, Transformar e Carregar:
1. Extrair
O primeiro passo extrair os dados do sistema da fonte de dados. No script, voc pode usar os
comandos SELECT ou LOAD para definir isso. As diferenas entre esses comandos so:
l
SELECT usado para selecionar dados de uma fonte de dados ODBC ou provedor OLE DB.
O comando SELECT SQL avaliado pelo provedor de dados, e no pelo Qlik Sense.
LOAD usado para carregar dados de um arquivo, de dados definidos no script, de uma
tabela carregada anteriormente, de uma pgina da web, do resultado de um comando
SELECT subsequente ou gerando dados automaticamente
2. Transformar
A fase de transformao envolve a manipulao dos dados utilizando funes de script e regras para
derivar a estrutura do modelo de dados desejado. As operaes tpicas so:
l
Renomeando campos
Unio de tabelas
Agregao de valores
Validao de dados
3. Carregar
Na etapa final, execute o script para carregar o modelo de dados definido no aplicativo.
Seu objetivo deve ser o de criar um modelo de dados que permita uma manipulao eficiente dos dados no
Qlik Sense. Geralmente, isso significa que voc deve apontar para um esquema de estrela ou de floco de
neve razoavelmente normalizado, sem referncias circulares, isto , um modelo no qual cada entidade seja
mantida em uma tabela separada. Em outras palavras, um modelo de dados tpico teria a seguinte
aparncia:
l
uma tabela central de fatos que contm as chaves para as dimenses e os nmeros usados para
calcular medidas (como o nmero de unidades, o volume das vendas e os valores do oramento).
127
tabelas adjacentes contendo as dimenses com todos os seus atributos (como produtos, clientes,
categorias, calendrio e fornecedores).
Em muitos casos possvel resolver uma tarefa (por exemplo, agregaes) criando um
modelo de dados mais rico no script de carregamento ou executando as agregaes nas
expresses do grfico. Como regra geral, o desempenho ser melhor se voc mantiver as
transformaes de dados no script de carregamento.
Recomenda-se esboar seu modelo de dados no papel. Isso ajuda a fornecer uma estrutura de
quais dados extrair e quais transformaes executar.
Cada tabela do modelo de dados geralmente corresponde a um comando SELECT ou LOAD. As diferenas
entre esses comandos so:
l
SELECT usado para selecionar dados de uma fonte de dados ODBC ou provedor OLE DB. O
comando SELECT SQL avaliado pelo provedor de dados, e no pelo Qlik Sense.
LOAD usado para carregar dados de um arquivo, de dados definidos no script, de uma tabela
carregada anteriormente, de uma pgina da web, do resultado de um comando SELECT
subsequente ou gerando dados automaticamente
128
Anexar apenas
O caso mais simples aquele dos arquivos de log; arquivos nos quais os registros s so acrescentados e
jamais excludos. As seguintes condies se aplicam:
l
O banco de dados deve ser um arquivo de log (ou algum outro arquivo no qual os registros so
acrescentados e no inseridos ou excludos) contido em um arquivo de texto (ODBC, OLE DB ou
outros bancos de dados no so suportados).
Qlik Sense controla o nmero de registros lidos anteriormente e carrega apenas registros includos no
final do arquivo.
Exemplo:
Buffer (Incremental) Load * From LogFile.txt (ansi, txt, delimiter is '\t', embedded labels);
O Qlik Sense carrega os registros inseridos na base de dados aps a execuo do ltimo script.
Exemplo:
QV_Table:
SQL SELECT PrimaryKey, X, Y FROM DB_TABLE
WHERE ModificationTime >= #$(LastExecTime)#
AND ModificationTime < #$(BeginningThisExecTime)#;
Concatenate LOAD PrimaryKey, X, Y FROM File.QVD;
STORE QV_Table INTO File.QVD;
Os sinais de sustenido na clusula SQL WHERE definem o incio e o final de uma data. Verifique o manual
do banco de dados para obter a sintaxe de data correta do banco de dados.
O Qlik Sense carrega os registros inseridos ou atualizados na base de dados aps a execuo do
129
Exemplo:
QV_Table:
SQL SELECT PrimaryKey, X, Y FROM DB_TABLE
WHERE ModificationTime >= #$(LastExecTime)#;
Concatenate LOAD PrimaryKey, X, Y FROM File.QVD
WHERE NOT Exists(PrimaryKey);
STORE QV_Table INTO File.QVD;
l
l
Exemplo:
Let ThisExecTime = Now( );
QV_Table:
SQL SELECT PrimaryKey, X, Y FROM DB_TABLE
WHERE ModificationTime >= #$(LastExecTime)#
AND ModificationTime < #$(ThisExecTime)#;
Concatenate LOAD PrimaryKey, X, Y FROM File.QVD
WHERE NOT EXISTS(PrimaryKey);
Inner Join SQL SELECT PrimaryKey FROM DB_TABLE;
If ScriptErrorCount = 0 then
STORE QV_Table INTO File.QVD;
Let LastExecTime = ThisExecTime;
130
Normalmente, as tabelas carregadas ficam maiores e o Qlik Sense trabalha mais lentamente.
Algumas informaes podem ser perdidas: a frequncia (nmero de registros) na tabela original pode
no mais estar disponvel.
A funcionalidade Keep, que tem o efeito de reduzir uma ou ambas as tabelas interseo dos dados da
tabela antes de serem armazenadas no Qlik Sense, foi projetada para reduzir o nmero de casos que exigem
o uso de junes explcitas.
Nesta documentao, o termo juno geralmente utilizado para junes feitas antes da
criao das tabelas internas. Entretanto, a associao, feita aps a criao das tabelas
internas, tambm basicamente uma juno.
Exemplo:
SELECT DISTINCTROW
[Order Details].ProductID, [Order Details].
UnitPrice, Orders.OrderID, Orders.OrderDate, Orders.CustomerID
FROM Orders
RIGHT JOIN [Order Details] ON Orders.OrderID = [Order Details].OrderID;
131
Join
A forma mais simples de fazer uma juno usar o prefixo Join no script, que une a tabela interna a outra
tabela nomeada ou ltima tabela criada anteriormente. A juno ser externa, criando todas as
combinaes possveis de valores das duas tabelas.
Exemplo:
LOAD a, b, c from table1.csv;
join LOAD a, d from table2.csv;
A tabela interna resultante tem os campos a, b, c e d. O nmero de registros diferente dependendo dos
valores de campo das duas tabelas.
Os nomes dos campos a serem unidos devem ser exatamente os mesmos. O nmero de
campos a serem unidos arbitrrio. Normalmente, as tabelas devem ter um ou alguns campos
em comum. Nenhum campo em comum gerar o produto cartesiano das tabelas. Tambm
possvel ter todos os campos em comum, mas isso normalmente no faz sentido. A menos
que o nome de uma tabela carregada anteriormente seja especificado no comando Join, o
prefixo Join utilizar a ltima tabela criada anteriormente. Dessa forma, a ordem dos dois
comandos no arbitrria.
Keep
O prefixo Join explcito no script de carga de dados executa uma juno completa das duas tabelas. O
resultado uma tabela. Em vrios casos, essas junes resultaro em tabelas muito grandes. Uma das
principais caractersticas do Qlik Sense sua capacidade de fazer associaes entre as tabelas, em vez de
uni-las, reduzindo bastante o espao usado na memria, aumentando a velocidade e oferecendo enorme
flexibilidade. A funcionalidade keep foi projetada para reduzir o nmero de casos em que as junes
explcitas precisam ser usadas.
O prefixo Keep entre dois comandos LOAD ou SELECT tem o efeito de reduzir uma ou ambas as tabelas
interseo dos dados da tabela antes de serem armazenadas no Qlik Sense. O prefixo Keep sempre deve
ser precedido de uma das palavras-chave Inner, Left ou Right. A seleo de registros das tabelas feita da
mesma maneira que em uma juno correspondente. Entretanto, as duas tabelas no so unidas e sero
armazenadas no Qlik Sense como duas tabelas nomeadas separadas.
Inner
Os prefixos Join e Keep no script de carga de dados podem ser precedidos pelo prefixo Inner.
Se for usado antes de Join, especificar que a juno das duas tabelas deve ser interna. A tabela resultante
contm apenas combinaes entre as duas tabelas com um conjunto de dados completo de ambos os lados.
132
Exemplo:
Nestes exemplos, usamos as tabelas de fontes Table1 e Table2:
Primeiro, realizamos um Inner Join nas tabelas, resultando em um VTable, contendo apenas uma linha, o
nico registro existente em ambas as tabelas, com dados combinados de ambas as tabelas.
VTable:
SELECT * from Table1;
inner join SELECT * from Table2;
Se voc realizar um Inner Keep, ainda ter duas tabelas. As duas tabelas sero, obviamente, associadas
atravs do campo comum A.
VTab1:
SELECT * from Table1;
VTab2:
inner keep SELECT * from Table2;
Left
Os prefixos Join e Keep no script de carga de dados podem ser precedidos pelo prefixo left.
Se for usado antes de Join, ele especificar que a juno das duas tabelas deve ser esquerda. A tabela
resultante contm apenas combinaes entre as duas tabelas com um conjunto de dados completo da
primeira tabela.
133
Exemplo:
Nestes exemplos, usamos as tabelas de fontes Table1 e Table2:
Primeiro, um Left Join realizado nas tabelas, resultando em um VTable, contendo todas as linhas da
Table1, combinadas com os campos das linhas correspondentes na Table2.
VTable:
SELECT * from Table1;
left join SELECT * from Table2;
Se voc realizar um Left Keep, ainda ter duas tabelas. As duas tabelas sero, obviamente, associadas
atravs do campo comum A.
VTab1:
SELECT * from Table1;
VTab2:
left keep SELECT * from Table2;
Right
Os prefixos Join e Keep no script de carga de dados podem ser precedidos pelo prefixo right.
134
Exemplo:
Nestes exemplos, usamos as tabelas de fontes Table1 e Table2:
Primeiro, um Right Join realizado nas tabelas, resultando em um VTable, contendo todas as linhas da
Table2, combinadas com os campos das linhas correspondentes na Table1.
VTable:
SELECT * from Table1;
right join SELECT * from Table2;
Se voc realizar um Left Keep, ainda ter duas tabelas. As duas tabelas sero, obviamente, associadas
atravs do campo comum A.
VTab1:
SELECT * from Table1;
VTab2:
right keep SELECT * from Table2;
135
OrderID
OrderDate
ShipperID
Freight
CustomerID
12987
2007-12-01
27
12988
2007-12-01
65
12989
2007-12-02
32
12990
2007-12-03
76
CustomerID
Name
Country
...
DataSales
Spain
...
BusinessCorp
Italy
...
TechCo
Germany
...
Mobecho
France
...
A fim de procurar o pas (Country) de um cliente, precisamos de uma tabela de mapeamento que teria a
seguinte aparncia:
CustomerID
Country
Spain
Italy
Germany
France
136
O prximo passo aplicar o mapeamento, utilizando a funo ApplyMap ao carregar a tabela de pedidos:
Orders:
S *,
ApplyMap('MapCustomerIDtoCountry', CustomerID, null()) as Country
From Orders ;
O terceiro parmetro da funo ApplyMap usado para definir o que deve ser retornado quando o valor no
for encontrado na tabela de mapeamento, neste caso Null().
A tabela resultante teria a seguinte aparncia:
OrderID
OrderDate
ShipperID
Freight
CustomerID
Country
12987
2007-12-01
27
Germany
12988
2007-12-01
65
France
12989
2007-12-02
32
Italy
12990
2007-12-03
76
Germany
Exemplo 1:
Year
Jan
Feb
Mar
Apr
May
Jun
2008
45
65
78
12
78
22
2009
11
23
22
22
45
85
2010
65
56
22
79
12
56
2011
45
24
32
78
55
15
2012
45
56
35
78
68
82
Se essa tabela for simplesmente carregada no Qlik Sense, o resultado ser um campo para Year e um
campo para cada um dos meses. Geralmente, esse resultado no o desejado. Seria melhor voc gerar trs
campos: um para cada categoria de cabealho (Year e Month) e um para os valores de dados dentro da
matriz.
Para isso, preciso incluir o prefixo crosstable na declarao LOAD ou SELECT.
crosstable (Month, Sales) LOAD * from ex1.xlsx;
137
A tabela cruzada frequentemente precedida de vrias colunas de qualificao que devem ser lidas de
modo direto. Nesse caso, h uma coluna de qualificao, Year:
Exemplo 2:
Salesman
Year
Jan
Feb
Mar
Apr
May
Jun
2008
45
65
78
12
78
22
2009
11
23
22
22
45
85
2010
65
56
22
79
12
56
2011
45
24
32
78
55
15
2012
45
56
35
78
68
82
2008
57
77
90
24
90
34
2009
23
35
34
34
57
97
2010
77
68
34
91
24
68
2011
57
36
44
90
67
27
2012
57
68
47
90
80
94
Nesse caso, h duas colunas de qualificao esquerda, seguidas pelas colunas da matriz. O nmero de
colunas de qualificao pode ser indicado como um terceiro parmetro para o prefixo crosstable, da
seguinte maneira:
crosstable (Month, Sales, 2) LOAD * from ex2.xlsx;
138
object
attribute
value
ball
color
red
ball
diameter
10 cm
ball
weight
100 g
box
color
black
box
height
16 cm
box
length
20 cm
box
weight
500 g
box
width
10 cm
Por um lado, seria inconveniente armazenar os dados de forma que cada atributo recebesse uma coluna
prpria, pois muitos dos atributos no so relevantes para um objeto especfico.
Por outro lado, seria confuso exibi-los de forma que misturasse comprimentos, cores e pesos.
Se esse banco de dados for carregado no Qlik Sense usando o modo padro, a exibio dos dados em uma
tabela teria esta aparncia:
139
No entanto, se a tabela for carregada como um banco de dados genrico, as colunas dois e trs sero
divididas em tabelas diferentes, uma para cada valor exclusivo da segunda coluna:
Exemplo:
Generic SELECT* from GenericTable;
No importa se um comando LOAD ou SELECT que ser usado para carregar o banco de dados genrico.
140
Exemplo:
Examine as duas tabelas a seguir. A primeira tabela mostra o incio e o final da produo de pedidos
diferentes. A segunda tabela mostra alguns eventos discretos. Como podemos associar os eventos discretos
aos pedidos, de forma que saibamos, por exemplo, que pedidos foram afetados pelas interferncias e que
pedidos foram processados por quais turnos?
Table OrderLog
Table EventLog
Primeiro, carregue as duas tabelas da forma habitual e, em seguida, vincule o campo Time aos intervalos
definidos pelos campos Start e End:
SELECT * from OrderLog;
SELECT * from EventLog;
Intervalmatch (Time) SELECT Start,End from OrderLog;
Agora voc pode criar uma tabela no Qlik Sense, como mostrado abaixo:
141
Podemos observar, principalmente, que o pedido A foi afetado pela interrupo da linha, mas que a
velocidade reduzida da linha afetou tambm os pedidos B e C. Somente os pedidos C e D foram
parcialmente tratados pelo Shift 2.
Observe o seguinte ao utilizar o comando intervalmatch:
l
Antes do comando intervalmatch o campo que contm os pontos de dados discretos (Time no
exemplo acima) j deve ter sido lido no Qlik Sense. O prprio comando intervalmatch no l esse
campo da tabela do banco de dados.
A tabela lida no comando intervalmatch LOAD ou SELECT deve sempre conter exatamente dois
campos (Start e End no exemplo apresentado). Para estabelecer um link com outros campos,
necessrio ler os campos de intervalo com campos adicionais em um campo LOAD ou SELECT
separado (o primeiro comando SELECT no exemplo apresentado).
Os intervalos esto sempre fechados, isto , sempre contm pontos de extremidade. Os limites no
numricos fazem com que o intervalo seja desconsiderado (indefinido) e os limites NULL estendem o
intervalo indefinidamente (ilimitado).
Os intervalos podem estar sobrepostos e os valores discretos estaro vinculados a todos os intervalos
correspondentes.
Script de amostra:
SET NullInterpret='';
IntervalTable:
LOAD Key, ValidFrom, Team
FROM 'lib://dataqv/intervalmatch.xlsx' (ooxml, embedded labels, table is IntervalTable);
Key:
LOAD
Key,
142
O comando nullinterpret exigido apenas na leitura de dados de um arquivo de tabela, pois os valores
ausentes so definidos como caracteres vazios em vez de valores NULL.
O carregamento dos dados de IntervalTable resultaria na seguinte tabela:
O comando nullasvalue permite que os valores NULL sejam mapeados para os campos listados.
Crie Key, FirstDate, LastDate (campos de atributos) usando previous e order by. Posteriormente,
143
Esta tabela define um conjunto de intervalos no sobrepostos, no qual a data de incio chamada Change
Date e a data de trmino definida pelo incio do prximo intervalo. Contudo, j que a data de trmino no
est explicitamente armazenada em uma coluna prpria, precisamos criar essa coluna, para que a nova
tabela torne-se uma lista de intervalos.
Faa o seguinte:
1. Crie um arquivo chamado Rates.xlsx que contenha a tabela mostrada acima e armazene-o pronto
para o carregamento.
Certifique-se de que as datas na coluna Change Date estejam no mesmo formato da data local.
144
Quando o script executado, ser exibida uma tabela que lista os intervalos corretamente. Use a seo Pr-
145
Esta tabela pode ser posteriormente utilizada em uma comparao com uma data atual com os mtodos
Intervalmatch.
6.17 Hierarquias
Hierarquias irregulares com n nveis so geralmente usadas para representar, entre outras coisas,
dimenses geogrficas ou organizacionais em dados. Esses tipos de hierarquias so geralmente
armazenados em uma tabela de ns adjacentes, isto , em uma tabela na qual cada registro corresponde a
um n e possui um campo que contm uma referncia ao n pai.
Em uma tabela como essa, o n armazenado em apenas um registro, mas ainda pode ter um nmero
indefinido de filhos. A tabela pode conter campos adicionais que descrevem atributos para os ns.
Uma tabela de ns adjacentes fcil de manter, mas difcil de usar em trabalhos do dia-a-dia. Em vez disso,
em consultas e anlises, outras representaes so usadas. A tabela de ns expandidos uma
representao comum, na qual cada nvel da hierarquia armazenado em um campo separado. Os nveis de
uma tabela de ns expandidos podem ser facilmente utilizados, por exemplo, em uma estrutura de rvore. A
palavra-chave hierarchy pode ser usada no script de carga de dados para transformar uma tabela de ns
adjacentes em uma tabela de ns expandidos.
Exemplo:
Hierarchy (NodeID, ParentNodeID, Title, 'Manager') LOAD
NodeID,
ParentNodeID,
Title
FROM 'lib://data/hierarchy.txt' (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
146
Um dos problemas da tabela de ns expandidos que no fcil usar os campos de nvel para realizar
pesquisas ou selees, j que necessrio ter um conhecimento prvio sobre o nvel que se deseja
pesquisar ou selecionar. A tabela de ancestrais uma representao diferente que resolve esse problema.
Essa representao tambm chamada de tabela de ponte.
A tabela de ancestrais contm um registro para cada relao filho-ancestral encontrada nos dados. Ela
contm chaves e nomes para os filhos, bem como para os ancestrais, ou seja, cada registro descreve o n ao
qual um n especfico pertence. A palavra-chave hierarchybelongsto pode ser usada no script de carga de
dados para transformar uma tabela de ns adjacentes em uma tabela de ancestrais.
147
Se a seleo do campo vazio no tivesse sido limpa, o script tambm conteria a seguinte cadeia de
caracteres:
FloridaCounties.Point,
148
Embora voc obtenha o mesmo resultado visual com qualquer um dos campos (um mapa com as regies),
haver uma diferena ao passar o mouse (ou tocar em um dispositivo de toque) sobre uma regio. Se voc
selecionar FloridaCounties.Name (area), o nome do pas mostrado como uma dica de ferramenta, e caso
selecione FloridaCounties.Area (area), os dados de rea so mostrados. O nome da regio , sem dvida,
mais interessante. Alm disso, o carregamento do campo FloridaCounties.Area muito mais lento do que o
carregamento do campo FloridaCounties.Name.
Opcionalmente, tambm possvel adicionar uma medida e usar a colorao por medida para refletir a
diferena no valor da medida entre as diferentes regies.
Se o arquivo KML no contiver nenhum dado do ponto ou dado da rea, no ser possvel
carregar dados desse arquivo. Se o arquivo KML estiver corrompido, uma mensagem de erro
ser exibida e voc no poder carregar os dados.
Os dados de ponto so armazenados em uma coluna. Cada ponto especificado como uma matriz
de coordenadas x e y: [x, y]. Com coordenadas geoespaciais, isso corresponderia a [longitude,
latitude]. Ao usar este formato, necessrio marcar o campo de dados do ponto com$geopoint;.
l
Os dados de ponto so armazenados em duas colunas, uma para latitude e uma para longitude. A
funo GeoMakePoint() gera um ponto com base neste formato.
149
Exemplo 1:
O arquivo do Excel tem o seguinte contedo para cada escritrio:
l
Escritrio (Office)
Local (Location)
O campo Location contm os dados do ponto; necessrio marcar o campo com $geopoint; para que ele
seja reconhecido como um campo de dados do ponto. Adicione a seguinte cadeia de caracteres aps a
ltima cadeia de caracteres no comando LOAD:
TAG FIELDS Location WITH $geopoint;
Execute o script e crie uma visualizao do mapa. Adicione a dimenso de ponto ao seu mapa.
Exemplo 2:
O arquivo do Excel tem o seguinte contedo para cada escritrio:
l
Escritrio (Office)
Latitude (Latitude)
Longitude (Longitude)
150
Combine os dados nos campos Latitude e Longitude, para definir um novo campo para os pontos.
Execute o script e crie uma visualizao do mapa. Adicione a dimenso de ponto ao seu mapa.
Voc pode escolher criar a dimenso Location no script adicionando as seguintes strings acima do comando
LOAD:
LOAD *, GeoMakePoint(Latitude, Longitude) as Location;
Execute o script e crie uma visualizao do mapa. Adicione a dimenso de ponto ao seu mapa.
Nmero de pontos
Por motivos de desempenho, existe um limite para o nmero de pontos que podem ser exibidos. Ao fazer
selees, possvel reduzir a quantidade de dados que sero exibidos.
Tabelas de mapeamento
As tabelas carregadas usando mapping load ou mapping select so tratadas de forma diferente de outras
tabelas. Elas sero armazenadas em uma rea separada da memria e usadas somente como tabelas de
mapeamento durante a execuo do script. Depois da execuo do script, sero automaticamente
eliminadas.
151
A tabela de mapeamento deve ter duas colunas: a primeira contendo valores de comparao e a
segunda, os valores de mapeamento desejados.
As duas colunas devem ser nomeadas, mas os nomes no tm relevncia neles mesmos. Os nomes
de coluna no tm conexo com os nomes de campo nas tabelas internas normais.
O comando mapping carrega o arquivo MappingTable.txt como uma tabela de mapeamento com o rtulo
CountryMap.
O comando map habilita o mapeamento do campo Country usando a tabela de mapeamento CountryMap
carregada anteriormente.
Os comandos LOAD carregam as tabelas CountryA e CountryB. Essas tabelas, que sero concatenadas
por conterem o mesmo conjunto de campos, incluem o campo Country, cujos valores de campo sero
comparados aos da primeira coluna da tabela de mapeamento. Os valores de campo US, U.S. e United
States sero encontrados e substitudos pelos valores da segunda coluna da tabela de mapeamento, isto ,
U SA .
O mapeamento automtico ocorre por ltimo na cadeia de eventos que leva ao campo armazenado na
tabela do Qlik Sense. Em um comando LOAD ou SELECT tpico, a ordem dos eventos ser
aproximadamente a seguinte:
1. Avaliao de expresses
2. Renomeando campos por as
3. Renomeao de campos por alias
4. Qualificao do nome da tabela, se aplicvel
5. Mapeamento de dados em caso de correspondncia dos nomes de campo
Isso significa que o mapeamento no feito sempre que um nome de campo encontrado como parte de
uma expresso, mas quando o valor est armazenado sob o nome de campo na tabela do Qlik Sense.
152
153