sábado, 2 de agosto de 2014

Gartner Magic Quadrant for Business Intelligence and Analytics Platforms | Qlik

Compartilhar imagemqlik.com 


Gartner Magic Quadrant
BI vendors are responding quickly to a growing demand for data discovery that’s both user friendly and IT compliant. Download your complimentary copy of Gartner’s report for in-depth analysis of where BI is headed, who the major vendors are, and...

quarta-feira, 30 de julho de 2014

Etapa de Transformação - Parte 2

                Eliminar as linhas duplicadas que contêm o cabeçalho. Repita o processo anterior, porém agora utilizando dois critérios. A Coluna 3 contém a palavra “Janeiro”,
Figura 9
E a coluna 1 NÃO contém o numero 1, antes de clicar em incluir o critério marque a opção “NÃO”.
Figura 10
Figura 11
                 Clique em avançar e selecione a opção “Rótulos Incluídos”.
Figura 12
                  Elimine as colunas em branco e com o rótulo “Total” no final do arquivo clicando no “X”.
Figura 13
                  Clique em terminar e será apresentado o script conforme abaixo:
Figura 14
            Em seguida devemos inserir o comando “CrossTable” (Ver post anterior) e reorganizar a ordem do load conforme segue, uma vez que para utilização do prefixo crosstable os campos de atributos devem vir no inicio do load.
Figura 15


terça-feira, 29 de julho de 2014

Etapa de Transformação - Parte 1

Em alguns casos torna-se necessário transformar o conteúdo de arquivos excel para que seja possível extrair e trabalhar com os dados deste arquivo no Qlikview. Como no exemplo que vemos a seguir:
Figura 1
No assistente de arquivo do Qlikview existe um mecanismo de transformação para trabalhar os dados de forma a ficarem prontos para utilização, vale a pena lembrar que as transformações são distintas, ou seja, as ações de transformação irão variar de acordo com o tipo e estado do arquivo.
Na figura abaixo é possível verificar que após a realização de um load simples, os dados contidos neste arquivo não ficarão dispostos de uma forma que atenda as necessidades de cálculo e construção do Qlikview.
Figura 2
No assistente de arquivo, após selecionar o arquivo que será transformado clique em avançar para poder ativar a etapa de transformação, clicando no botão “Ativar etapa de transformação”.
Figura 3

                  Criar uma coluna contendo os valores de empresa. Clique na aba “Coluna” e em seguida no botão “Novo” selecione a coluna 1 como origem e marque a opção “substituir valor nulo com valor anterior”.
Figura 4
Clique no botão “Células destas linhas” e informe que será baseado nas linhas em que na coluna 1 for encontrada a palavra “Empresa”.

Figura 5
Figura 6
                  Clique agora na aba “Lixo” para eliminar todas as linhas em branco baseando-se na coluna 2. Ao clicar em “Exclusão Condicional” selecione a coluna que será analisada, coloque o critério adotado e clique em incluir e em seguida OK.
Figura 7
Figura 8

Continua no próximo post...

segunda-feira, 28 de julho de 2014

Transformação de Arquivos Excel

     Na caixa de diálogo Transformar, é possível filtrar e fazer transformações avançadas de uma tabela. Isso é importante principalmente para a tabela HTML, pois não há um padrão usado normalmente para armazenar dados em HTML. Como resultado, é importante tornar o Qlikview capaz de ler tabelas HTML tão facilmente quanto outros formatos de dados mais estruturados.
Nota: Para poupar memória, a etapa não é habilitada por padrão.
     A caixa de diálogo Transformar fornece diversos filtros que podem ser usados para tornar as tabelas mais adequadas para o Qlikview. O diálogo tem cinco páginas com botões específicos:
LIXO
     Nessa aba, as linhas e colunas que contiverem lixo poderão ser removidas da tabela. Em arquivos HTML, não é incomum ter linhas e colunas adicionais que estão lá apenas para legibilidade e que devem, portanto, ser removidas antes de carregar os dados no Qlikview.
As colunas e linhas podem ser removidas explicitamente caso seus índices estejam armazenados no script. As linhas também podem ser removidas usando critérios condicionais.
Excluir Marcado Exclui as linhas e colunas realçadas.
Exclusão Condicional... Abre o diálogo Especificar Condição da Linha na qual é possível definir os critérios condicionais para exclusão de linhas.
PREENCHER
     Nesta aba, é possível substituir valores de célula. Na maior parte dos casos, as células que correspondem a uma descrição específica são substituídas por outro valor da mesma coluna. Um caso comum é que as células estão vazias e a primeira célula não-vazia acima delas contém o valor relevante.
Preencher... Abre o diálogo Preencher Células na qual é possível especificar condições e estratégia.
COLUNA
     A página de diálogo Coluna é utilizada para copiar o conteúdo de uma coluna em uma nova coluna. A cópia pode conter todas as células da coluna original ou apenas uma seleção de células. Esse recurso pode ser útil caso a coluna contenha diferentes tipos de valores. Ele pode ser usado para duplicar uma coluna que contém links HTML, de forma que uma coluna contém o texto do link, enquanto a outra contém sua URL.
Novo... Abre o diálogo Especificar Células para Nova Coluna na qual é possível especificar como a nova coluna deve ser criada.
Rótulo Define o rótulo para a coluna.
REORGANIZAR
     Aqui é possível organizar uma tabela agrupada. Agrupada significa que uma segunda parte da tabela continua, não abaixo como devia, mas ao lado da primeira parte da tabela. No exemplo apresentado, a metade da direita será, portanto, movida e colocada abaixo da metade da esquerda.
Reorganizar Reorganiza a tabela. Primeiramente, a borda entre as duas metades deve ser definida com o cursor. É possível dividir a tabela vertical ou horizontalmente.
Reorganização Condicional Define a condição para uma divisão vertical da tabela. Abre o diálogo Especificar Condição da Linha
GIRAR
     Os Web designers normalmente giram as tabelas para que tenham uma aparência melhor. A principal intenção do recurso de rotação é possibilitar girar as tabelas "de volta ao normal", ou seja, para obter campos como colunas, nomes de campos na primeira linha, etc.
Left Gira a tabela no sentido anti-horário.
Right Gira a tabela no sentido horário.
Transpor Transpõe a tabela, isto é, espelha a tabela ao longo de um eixo diagonal para que a célula superior direita se transforme na célula superior esquerda e vice-versa. As células superior esquerda e inferior direita, entretanto, permanecem no lugar.
     Os botões no canto inferior esquerdo da caixa de diálogo Transformar Tabela são usados para todas as páginas:
Desfazer Desfaz a última alteração incluída.
Refazer Reverte a última ação Desfazer.
Restaurar Redefine a tabela para o status original.
     Em alguns casos torna-se necessário transformar o conteúdo de arquivos excel para que seja possível extrair e trabalhar com os dados deste arquivo no Qlikview. Como no exemplo que vemos a seguir:

Nos próximos posts faremos um exemplo de transformação de arquivo excel.

domingo, 27 de julho de 2014

Tabela Cruzada

     Uma tabela cruzada é um tipo comum de tabela que apresenta uma matriz de valores entre duas ou mais listas retangulares de dados de cabeçalho, dos quais um é usado como cabeçalho de coluna. Um exemplo típico poderia ter uma coluna por mês. Para transformar uma tabela cruzada em uma tabela simples, use um prefixo crosstable. O resultado é que os cabeçalhos de coluna (por exemplo, nomes de mês) serão armazenados em um campo - o campo de atributo - e os dados de coluna (números de mês) serão armazenados em um segundo campo: o campo de dados.
A sintaxe é:
crosstable (nome do campo de atributo, nome do campo de dados [ , n ] ) ( loadstatement | selectstatement )
onde:
nome do campo de atributo é o campo que deve conter os valores de atributo.
nome do campo de dados é o campo que deve conter os valores de dados.
n é o número de campos de qualificador que precedem a tabela a ser transformada em formato genérico. O padrão é 1.
     O Assistente para tabelas cruzadas permite criar o comando da tabela cruzada com o uso de caixas de diálogo. Para abrir essa caixa de diálogo, clique no botão Tabela cruzada na página Opções do Assistente de Arquivo. O Assistente para tabelas cruzadas tem as seguintes opções:
Campos Qualificadores O número de campos de qualificador que precede os campos a serem transformados.
Campo de Atributo O nome do novo campo que conterá todos os campos (valores de atributo) a
serem transformados. Campo de Dados O nome do novo campo que conterá os dados dos valores de atributo.
No assistente de arquivo clique em avançar até aparecer a opção tabela cruzada, em seguida clique no botão “Tabela Cruzada”.


Informe a quantidade de campos qualificadores que existe na tabela:

Renomeie os campos de atributo no caso para “Meses” e os campos de dados para “Valor” clique em OK e em seguida em terminar.


Será apresentado um script como este:


O resultado final deste load será uma tabela com quatro campos, Cidade, [Codigo Filial], Meses e Valor.


domingo, 6 de julho de 2014

Modo AND e Exclusão Forçada

      No Qlikview as seleções múltiplas dentro de um campo são, por padrão, interpretadas como um OR lógico, isto significa que os dados associados a qualquer um dos valores de campo selecionados serão exibidos nos outros campos.
      Porém, é possível criar listas no modo AND. Desta forma ao fazer várias seleções em uma lista definida como modo AND, apenas dados associados a todos os valores de campo selecionados serão mostrados nos outros campos.
Exemplo:
      A origem de dados contém informações sobre quais clientes compraram artigos diferentes.
      Quando você selecionar alguns artigos no modo padrão, o Qlikview mostrará os clientes que compraram qualquer um dos artigos selecionados.
Todos os clientes que compraram o produto 1


Quando você selecionar alguns artigos no modo AND, o Qlikview mostrará os clientes que compraram todos os artigos selecionados.
Todos os clientes que não compraram o produto 2

Todos os clientes que compraram o produto 3, mas não compraram o produto 2

Pré-requisitos do Modo AND
  • O modo para o campo é definido na guia Propriedades de Lista: Aba Geral.
  • o campo deve existir em apenas uma tabela interna;
  • o campo deve ser a segunda coluna, não devendo haver mais que duas colunas;
  • a tabela não deve conter registros duplicados;
  • a tabela deve ser carregada com um qualificador distinct. Se a tabela for carregada com um comando Select, um comando Load distinct* deverá ser usado antes.

      Quando o modo And estiver ativado, um E comercial ("&") será mostrado ao lado dos valores selecionados.
Se você clicar e mantiver pressionado um valor por alguns instantes, a seleção será alternada de (AND) selecionada (verde) para NOT selecionada (vermelho). O E comercial também será substituído por um ponto de exclamação ("!"). A seleção NOT, que é uma exclusão forçada do valor ou dos valores assim marcados, só poderá ser feita quando uma lista estiver no modo And.

Configurando uma Lista no Modo AND
O procedimento a seguir descreve como definir uma caixa no modo AND, e não no modo padrão (OR lógico). Siga estas etapas:
1. Verifique se os critérios do modo AND estão preenchidos.
2. Clique com o botão direito do mouse na nova lista e selecione Propriedades.
3. Na guia Geral, marque a caixa de seleção Modo And.

      Quando o modo AND estiver ativado, um E comercial ("&") será mostrado ao lado dos valores selecionados.

Lógica e Seleções
      Se você clicar e mantiver pressionado um valor por alguns instantes, a seleção será alternada de selecionada (verde) para exclusão forçada (vermelho). Isso também é indicado por um ponto de exclamação (!) que substitui o E comercial.

Exclusão Forçada
      A exclusão forçada (às vezes conhecida como seleção NOT) está intimamente relacionada com a seleção AND. A exclusão forçada possibilita excluir explicitamente um valor de campo, isto é, as soluções encontradas pelo Qlikview podem não estar associadas ao valor excluído.
      A exclusão forçada é feita clicando-se em uma célula e mantendo o botão do mouse pressionado até a célula

ficar vermelha. Clicar mantendo a tecla Ctrl pressionada dessa maneira equivale a uma exclusão, que é um requisito adicional às seleções/exclusões anteriores. A exclusão forçada pode ser feita apenas em um campo que esteja no modo AND.

terça-feira, 20 de maio de 2014

Qualify e Unqualify

Qualify
No Qlikview existe uma junção automática para os campos com o mesmo nome em tabelas diferentes, esta junção pode ser suspensa usando o comando qualify, que qualifica o nome do campo com seu nome de tabela. Se for(em) qualificado(s), o(s) nome(s) de campo será(ão) renomeado(s) quando encontrado(s) em uma tabela. O novo nome terá o formato nomedatabela.nomedocampo. Nomedatabela equivale ao rótulo da tabela atual ou, se não existir um rótulo, o nome que aparece depois de from nos comandos load e select. A qualificação é sempre desativada, por padrão, no início da execução do script. A qualificação do nome de um campo pode ser ativada a qualquer momento usando um comando qualify. A qualificação pode ser desativada a qualquer momento usando um comando Unqualify. Após a utilização do comando qualify com aplicação de caracteres curinga ele será aplicado em todos os comandos loads subsequentes até a sua desativação utilizando o comando unqualify.

A sintaxe é:
qualify*listadecampos
*listadecampos é uma lista separada por vírgula dos campos para os quais a qualificação deve ser ativada. O uso de * como lista de campos indica todos os campos. Os caracteres curingas * e ? são permitidos nos nomes de campo. Poderá ser necessário colocar os nomes de campos entre aspas quando forem utilizados caracteres curinga.

Nota!
O comando qualify não deve ser usado em conjunto com uma recarga parcial!

Exemplos:
QUALIFY DESCRICAO;
:
LOAD * COD, DESCRICAO from PERGUNTA.xls;
LOAD * COD, DESCRICAO from CONTEXTO.xls;
Sem a utilização do comando qualify iriamos criar uma chave sintética de todos os campos entre as duas tabelas, mas ao aplicarmos o qualify as duas tabelas serão unidas apenas pelo campo COD. O resultado deste load serão três campos COD, PERGUNTA.DESCRICAO e CONTEXTO.DESCRICAO.
Em outro exemplo podemos utilizar os comandos qualify e unqualify de forma associada conforme exemplo:
QUALIFY *;
UNQUALIFY DESCRICAO;

LOAD * from TabelaA.xls;
LOAD * from TabelaB.xls;
LOAD * from TabelaC.xls;
LOAD * from TabelaD.xls;


Somente DESCRICAO será usado para associações entre as tabelas TabelaA, TabelaB, TabelaC e TabelaD.

segunda-feira, 19 de maio de 2014

Join e Keep

Join
O prefixo join une a tabela carregada a uma tabela nomeada existente ou à última tabela lógica. Esse procedimento consiste em uma junção natural executada com todos os Campos  . O comando join pode ser precedido dos prefixos:
Inner – Realiza a junção das tabelas pela interseção dos campos comuns;
Outer – Realiza a junção das tabelas pela união de todos os campos;
Left – Realiza a junção das tabelas com todos os campos existentes na tabela da esquerda mais os registros comuns encontrados na tabela da direita;
Right - Realiza a junção das tabelas com todos os campos existentes na tabela da direita mais os registros comuns encontrados na tabela da esquerda;
Sintaxe Geral:
[(inner|outer|left|right)] join [(nomedatabela)] (comandoload | comandoselect)

Exemplos:
CONTEXTO:
COD,CONTEXTO
1,Contexto1
2,Contexto2
3,Contexto3
4,Contexto4
5,Contexto5

PERGUNTA:
COD,PERGUNTA
1,Pergunta1
2,Pergunta2
3,Pergunta3
4,Pergunta4
5,Pergunta5
6,Pergunta6
7,Pergunta7
8,Pergunta8

LOAD * from CONTEXTO;

Inner Join (CONTEXTO)
LOAD * from RESPOSTA;


LOAD * from CONTEXTO;

Outer Join (CONTEXTO)
LOAD * from RESPOSTA;


LOAD * from CONTEXTO;

Left Join (CONTEXTO)
LOAD * from RESPOSTA;


LOAD * from CONTEXTO;

Right Join (CONTEXTO)
LOAD * from RESPOSTA;


Keep
O prefixo keep entre dois comandos Load ou Select (SQL) reduz uma ou as duas tabelas antes de seu armazenamento no QlikView, com base na interseção dos dados da tabela. A palavra-chave keep deve ser sempre precedida do prefixo Inner Left ou Right . A seleção de registros das tabelas é feita da mesma maneira que em uma junção correspondente. Entretanto, as duas tabelas não são unidas e serão armazenadas no QlikView como duas tabelas nomeadas separadas.

Nota!

A palavra-chave explícita Join na linguagem de script do QlikView executa uma junção completa das duas tabelas, que resulta em uma tabela. Em muitos casos, essas junções resultam tabelas muito grandes. Uma das principais características do QlikView a capacidade de fazer associações entre as tabelas, em vez de uni-las, reduzindo bastante o uso da memória, aumentando a velocidade de processamento e oferecendo grande flexibilidade. Portanto, geralmente as junções explícitas devem ser evitadas nos scripts do QlikView. A funcionalidade keep foi desenvolvida para diminuir o número de casos em que é necessário usar junções explícitas.

domingo, 18 de maio de 2014

Cláusula IntervalMatch

IntervalMatch
A cláusula IntervalMatch, aplicada a um comando Load ou Select (SQL) é utilizado para associar valores numéricos distintos a um ou mais intervalos numéricos
A sintaxe geral é:
Load|Select tabela1;
Load|Select tabela2;
intervalmatch (campo)(Load | Select)
Onde campo contém os valores numéricos distintos a serem associados aos intervalos.
load ou select retorna uma tabela de duas colunas, na qual o primeiro campo traz o limite inferior de cada intervalo e o segundo campo traz o limite superior de cada intervalo.
Os intervalos devem estar sempre fechados, isto é, sempre conter pontos de extremidade. Para os limites não-numéricos o intervalo será desconsiderado (indefinido), enquanto os limites com valor NULL fazem com que o intervalo seja infinito (ilimitado).
Quando o comando IntervalMatch for executado o campo que contém os pontos de dados distintos e os intervalos já devem ter sido lidos no Qlikview. Uma vez que o comando IntervalMatch, não lê esses campos a partir da tabela da base de dados por se tratar de uma cláusula .dos comandos Load | Select.
Caso os intervalos estejam sobrepostos os valores distintos serão associados a todos os intervalos correspondentes.
Exemplo:
Examine as duas tabelas abaixo. A primeira exibe as datas de início e término da aplicação de percentuais de participação diferentes. A segunda, lista vários percentuais distintos. Por meio da função IntervalMatch, associaremos as duas tabelas logicamente para saber, por exemplo, quais percentuais de participação foram aplicados em um determinado período de tempo.

Participacao
DataInicio          DataFim                           %Participacao
01/01/2010        31/12/2010                      0,35
01/01/2011        31/12/2011                      0,15
01/01/2012        31/12/2012                      0,20
01/01/2013        31/12/2013                      0,48
01/01/2014        31/12/2014                      0,53

Histórico
Data                    Descricao                       Valor
05/01/2010        Venda de Produtos        5.670,00
25/11/2010        Mão-de_obra                  6.213,00
07/10/2011        Venda de Produtos        5.885,00
25/11/2011        Mão-de_obra                  6.428,00
05/01/2012        Venda de Produtos        6.100,00
19/02/2012        Mão-de_obra                  6.643,00
23/06/2013        Venda de Produtos        6.315,00
29/08/2013        Mão-de_obra                  6.858,00
04/01/2014        Venda de Produtos        6.530,00
24/11/2014        Mão-de_obra                  7.073,00

Primeiro, carregue as duas tabelas da forma habitual e, em seguida, associe o campo Data aos intervalos definidos pelos campos DataInício DataTérmino:

Participacao:
LOAD DataInicio,DataFim,%Participacao Inline [
DataInicio|DataFim|%Participacao
01/01/2010|31/12/2010|0,35
01/01/2011|31/12/2011|0,15
01/01/2012|31/12/2012|0,20
01/01/2013|31/12/2013|0,48
01/01/2014|31/06/2014|0,53
](delimiter is '|') ;

Eventos:
Load * Inline [
Data,Descrição,Valor
05/01/2010,Venda de Produtos, 5.670,00
25/11/2010,Mão-de_obra, 6.213,00
07/10/2011,Venda de Produtos, 5.885,00
25/11/2011,Mão-de_obra, 6.428,00
05/01/2012,Venda de Produtos, 6.100,00
19/02/2012,Mão-de_obra, 6.643,00
23/06/2013,Venda de Produtos, 6.315,00
29/08/2013,Mão-de_obra, 6.858,00
04/01/2014,Venda de Produtos, 6.530,00
24/11/2014,Mão-de_obra, 7.073,00
];
IntervalMatchtab:
IntervalMatch(DataLOAD DataInicioDataFim Resident Participacao;

Agora, tabela a seguir pode ser criada no Qlikview: