Com o QlikView podemos carregar facilmente dados de qualquer

Propaganda
Com o QlikView podemos carregar facilmente dados de qualquer banco de
dados que possua um driver ODBC, arquivos texto, documentos do Excel entre outros,
independente da fonte dos dados, a forma de carga não varia muito.
Vamos começar com a fonte mais comum de dados, que é através de uma
conexão ODBC com algum banco de dados, não vou entrar nos detalhes a respeito da
configuração do driver ODBC tendo em vista que variam bastante de banco para banco,
e também que geralmente a configuração da fonte ODBC fica a cargo da equipe técnica
do cliente do cliente onde o projeto será desenvolvido, já que ele tem os dados de
configuração, não cabe a um consultor QlikView esta obrigação.
Caso você não tenha nenhum banco de dados instalado em seu computar e
conseqüentemente nenhuma conexão ODBC, poderá simular o exemplo que darei
utilizando uma planilha do Excel, exemplo este que também mostrarei neste artigo.
O exemplo que irei mostrar será realizado com base em um banco de dados
Firebird que possuo, trata-se de um sistema escolar, de onde carregarei algumas tabelas
para demonstrar, como realizar a carga de uma fonte ODBC e também o vínculo entre
as tabelas.
Figura 1 - Editar Script
Primeiro na barra de ferramentas do QlikView procure pelo ícone em destaque
na Figura.1, ou CTRL+E para ativar a janela de script. Feito isso na parte inferior da
tela que surge procure pelo botão “Conectar” em destaque na Figura.2 . Agora serão
listadas todas as conexões ODBC configuradas em seu computador, caso haja
(Figura.3).
Figura 2 - Botão Conectar
Figura 3 - Lista de Conexões ODBC
Irei selecionar a opção Sappia, que é a conexão ODBC para meu banco de dados
Firebird, automaticamente o QlikView irá gerar uma string de conexão:
ODBC CONNECT TO Sappia (XUserId is xpto, XPassword is xpto);
A partir desse momento passamos a ter acesso às tabelas desse banco de dados, e
poderemos trazer para o QlikView estas informações para que possamos começar a
trabalhar com elas. Através do botão “Selecionar” em destaque na Figura.4.
Figura 4 - Selecionar Tabelas
Agora é exibida uma tela (wizard) para nos auxiliar na preparação do script de
carga das tabelas do banco de dados (Figura.5). Basta selecionar uma das tabelas do
banco de dados e clicar no botão OK que automaticamente será criado o script de carga
para a tabela selecionada.
Observe que na Figura.5 o checkbox Carga Anterior marcando este checkbox
antes da instrução de select será adicionado um LOAD com a lista dos campos da
tabela, isso é bastante útil para iniciarmos a customização dos nomes dos campos,
inclusive eliminando campos desnecessários ao negócio, campos que sejam só de
controle interno do sistema, e não serão utilizados para nenhuma análise poderão ser
suprimidos ao excluirmos estes do LOAD.
Figura 5 - Wizard para criação do Select
Claro que isso também poderia ser feito no próprio select, no entanto o
QlikView não gera automaticamente select com o nome dos campos e teríamos que
colocar todos na mão, logo é mais rápido e prático excluir os que não queremos do que
adicionar todos os que precisamos.
Então se você selecionou a sua tabela e clicou em OK suponho que terá um
script parecido com o que demonstro abaixo (Figura.6), no meu caso acima do
comando LOAD adicionei o nome da tabela “[Alunos]:”, também utilizei o “as” para
dar um “apelido” mais amigável aos campos, e apliquei algumas funções de data ao
campo [Data de Nascimento do Aluno] para extrair algumas informações que serão
bastante úteis no momento de aplicar filtros.
Figura 6 - Script de carga da tabela aluno
Agora seguindo o mesmo procedimento utilizado para gerar o script de carga
para a tabela aluno, iremos carregar a tabela “Raça”, que possui uma relação com a
tabela “Alunos”, onde cada aluno pode ter pelo menos uma raça vinculada a ele, este
script ser algo como apresentado na Figura.7.
Figura 7 - Script de carga da tabela Raça
Feito isso podemos realizar uma carga dos dados, clicando no botão recarregar
. Após o processo de carga teremos algo como mostrado na Figura.8.
Não vou entrar em detalhes de criação de objetos aqui, mas nesse momento os
campos mostrados nas tabelas da Figura.8 estão todos disponíveis para a criação da
objetos, sejam eles tabelas, gráficos, etc. Tanto como agrupadores quanto em
expressões.
Figura 8 - Tabelas carregadas
A Figura.8 mostra também uma relação entre as duas tabelas, Alunos e Raça,
isso se deve ao fato de em ambas as tabelas existirem dois campos de nome [Código da
Raça], o QlikView associa os dois campos criando uma relação, sendo assim,
selecionando um aluno na tabela [Alunos], nós saberemos qual a raça dele, assim como
selecionando um raça na tabela [Raça], saberemos quais alunos pertencem aquela raça.
Um das coisas que mais impressionam no QlikView é essa facilidade de
relacionar dados, para quem conhece banco de dados, sabe que para criarmos uma
relação entre tabelas é necessário um trabalho bem mais árduo, e se torna mais
complexo ainda quando existe a necessidade de mudar o relacionamento, no QlikView
mudamos os nomes dos campos no script (utilizando “as” se for o caso) recarregamos
os dados e pronto.
Agora vamos demonstrar como carregar dados de uma planilha do Excel,
também relacionaremos os dados desta planilha aos dados carregados do banco de
dados.
A primeira coisa a fazer é criar uma planilha no Excel (Figura.9), nesta planilha
relacionei as raças carregadas do banco de dados, e acrescentei uma coluna para definir
as cotas para cada raça, agora iremos carregar esta planilha, e vincular a descrição da
raça na planilha, com a da nossa tabela [Raça] que foi extraída do banco de dados. Logo
teremos como saber a cota de cada aluno, alunos que tem direito a certa cota, entre
outras análises.
Figura 9 - Dados do Excel
Criada a planilha, voltamos ao editor de script (Figura.1), na parte inferior desta
tela encontraremos o botão “Arquivos de Tabela”. Ao clicar nele surgirá uma tela onde
deveremos indicar a localização da nossa planilha. Devemos observar que o QlikView
permite carregar além de arquivos do Excel, outros como txt, HTML, XML, entre
outros.
Localizado o arquivo da nossa planilha teremos a tela apresentada na Figura.10,
não vou entrar em detalhes sobre essa tela, mas aqui podemos definir o nome da cada
coluna, se o nome das colunas (rótulos) estão implícitos ou não, entre outros diversos
recursos como transformação dos dados, os quais não são foco deste artigo, mas estão
bem detalhados nas documentações do QlikView.
Figura 10 - Manipulação de arquivos
No nosso caso vamos clicar no botão “Finish” simplesmente, isso irá gerar um
script como o demonstrado na Figura.11.
Figura 11 - Script de carga da planilha
Agora vamos recarregar os dados novamente, e após o término do processo
teremos a seguinte relação de tabelas (Figura.12), aqui o simples fato das duas tabelas
terem o campo Raça, faz com seja criada uma relação entre elas. A Figura.13
demonstra a relação raça x cota.
Figura 12 - Tabelas carregadas
O QlikView é muito poderoso e dinâmico, quando se trata de relacionar dados
impressiona ainda mais, isso quer dizer que uma empresa que possua mais de um ERP
ou vários sistemas trabalhando, além de sistemas legados, podemos relacionar os dados
desses diversos sistemas com facilidade, na pior das hipóteses com o auxilio de uma
tabela “De Para”,realizar cruzamentos de dados entre outras análises, enfim, o céu é o
limite.
Figura 13 - Filtro aplicado a lista
Analisando uma lista de valores
By Fábio Simões
No SQL temos um recurso bastante interessante para analisar uma lista de
valores, o “IN”, logo que comecei a utilizar o QlikView senti falta de um recurso
semelhante no QlikView, uma breve pesquisada no help do QlikView e logo encontrei
um conjunto de funções que não só oferecem um recurso equivalente ao IN como
estendem as funcionalidades de tal recurso.
A primeira função é a match(), esta é a mais próxima do IN em SQL, ela avalia
o primeiro parâmetro que pode ser um campo ou uma variável, e retorna o índice das
expressões listadas começando de 1 até N, caso o valor não seja encontrado nas
expressões listadas o valor retornado será 0. É importante perceber que esta função é
sensível a maiúsculas.
match( [Código Alternativo],A333,B555,C888)
No exemplo acima caso o código alternativo seja B555 o valor retornado pela
função será 2, caso o valor para o código alternativo seja X100 ou c888 será retornado
0.
A função mixmatch se diferencia da função match unicamente por não ser
sensível a maiúsculas.
mixmatch( [Código Alternativo],A333,B555,C888)
Analisando o exemplo acima onde o código alternativo seja a333 o valor
retornado será 1.
A última função do conjunto é bastante interessante, oferece os mesmos recursos
da mixmatch, pois também não é sensível a maiúsculas, e como recurso adicional
permite a utilização de máscaras, inclusive em um campo “blob”, trabalhei muito tempo
com banco de dados, e vez ou outra surgia à necessidade de pesquisar alguma coisa em
um campo blob, e na maioria dos bancos de dados, não é possível utilizar um campo
blob na clausula where. Uma breve pesquisada no Google a respeito de “pesquisas em
campo blob” e muitas referências ao assunto serão retornadas.
Felizmente no QlikView podemos utilizar a função wildmatch(), que serve não
só para campos com textos mais extensos como também para os demais campos,
inclusive numéricos.
wildmatch([Observação],’NF0012*’,'PED55??1′)
No exemplo acima serão retornados registros cujo campo [Observação]
contenha valores como:
“Requisição para a NF00128″
“Pedido PED55ty1 enviado ao setor de vendas”
Sendo assim podemos usá-la em clausulas where, funções condicionas como IF,
e também para atribuir um valor a uma variável se for o caso, em conjunto com outras
funções como a peek() por exemplo.
O uso desse conjunto de funções possibilita maior clareza no script, facilitando a
manutenção e a compreensão das condições, então, bom proveito a todos.
Download