Como implementar o carregamento incremental no QlikView?

Compartilhar no Facebook
Compartilhar no Twitter
Compartilhar no LinkedIn
Compartilhar no telegrama
Compartilhar no Whatsapp

Conteúdo

No meu artigo anterior, discutimos “HComo usar o QVD para tornar seu aplicativo QlikView mais eficiente?”. Neste artigo, daremos um passo à frente para tornar nosso aplicativo mais eficiente ao lidar com grandes dados transacionais. Como mencionei no meu artigo anterior, Eu estava trabalhando em um aplicativo QlikView, onde você tinha que exibir as vendas em vários canais para frequências predefinidas (por exemplo, Diariamente, Por mês, Anualmente).

Inicialmente, estava recarregando toda a tabela de transações diariamente, embora eu já tivesse os dados até ontem comigo. Isso não só levou muito tempo, também aumentou a carga no servidor de banco de dados e na rede. É aqui que a carga incremental com QVD fez uma grande diferença ao carregar apenas dados novos ou atualizados do banco de dados em uma tabela.

Cargas incrementais:

O carregamento incremental é definido como a atividade de carregar apenas registros novos ou atualizados do banco de dados em um QVD estabelecido. Cargas incrementais são úteis porque funcionam de forma muito eficiente em comparação com cargas completas, especialmente para grandes conjuntos de dados.

incremental_load_qlikview_1-300x214-9426153

O carregamento incremental pode ser implementado de diferentes maneiras, métodos comuns são os seguintes:

  1. inserir apenas (no validar para registros duplicados)
  2. inserir e atualizar
  3. Inserir, atualizar e excluir

Vamos entender cada um deles 3 cenários com um exemplo

1. inserir apenas:

Digamos que temos dados brutos de vendas (no excel) e cada vez que uma nova venda é registrada, é atualizado com detalhes básicos sobre a venda por data de modificação. Já que estamos trabalhando em QVD, já temos QVD criado até ontem (25 agosto 2014 neste caso). Agora, Eu quero carregar apenas os registros incrementais (destacado em amarelo abaixo).

incremental_load_qlikview_2-3363379

Para realizar este exercício, primeiro crie um QVD para os dados até 25 agosto 2014. Para identificar novos registros incrementais, precisamos saber a data em que, QVD já está atualizado. Isso pode ser identificado verificando a data_modificada máxima no arquivo QVD disponível.

Como mencionado anteriormente, eu assumi que “Vendas. qvd”É atualizado com dados de até 25 agosto 2014. Para identificar a data da última modificação de “Vendas. qvd”, O código a seguir pode ajudar:

incremental_load_qlikview_3-2733357

Aqui, Carreguei o último QVD atualizado na memória e identifiquei a data da última modificação armazenando no máximo “Modificação de data”. A seguir, armazenamos esta data em uma variável “Data_última_atualizada“E solte a mesa”Vendas”. No código acima, Eu tenho usado Olhar() função para armazenar a data máxima de modificação. Aqui está sua sintaxe:

Olhadinha (nome do campo, número da linha, Nome da tabela)

Esta função retorna o conteúdo de um determinado campo para uma linha especificada da tabela interna. FieldName e TableName devem ser fornecidos como uma string e Row deve ser um número inteiro. 0 denota o primeiro registro, 1 a segunda e assim por diante. Números negativos indicam a ordem do final da tabela. -1 denota o último registro.

Uma vez que sabemos a data a partir da qual as inscrições serão consideradas novas inscrições, podemos carregar registros incrementais do conjunto de dados (Cláusula Where na instrução Load) e mescle-os com o QVD disponível (veja o instantâneo abaixo).

incremental_load_qlikview_4-8445503

Agora, carregar QVD atualizado (Vendas), teria registros incrementais.

incremental_load_qlikview_5-8385090

Como você pode ver, adicionou dois registros 26 agosto 2014. Porém, também inserimos um registro duplicado. Agora podemos dizer que um método somente INSERT não valida registros duplicados porque não acessamos os registros disponíveis.

O que mais, neste método não podemos atualizar o valor dos registros existentes.

Para resumir, a seguir estão as etapas para carregar apenas os registros incrementais no QVD usando o método INSERT only:

1) Identifique novos registros e carregue-os
2) Concatenar esses dados com um arquivo QVD
3) Substitua o arquivo QVD antigo por uma nova tabela concatenada

2. Inserir e atualizar o método:

Como visto no exemplo acima, não podemos realizar a verificação de registro duplicado e atualizar o registro existente. este é o lugar onde, o método Insert and Update vem para ajudar:

incremental_load_qlikview_6-6322315

No conjunto de dados acima (mesa certa), temos um recorde (ID = PRD1458) adicionar e outros (ID = PRD858) atualizar (valor de vendas de 131 uma 140). Agora, para atualizar e verificar se há registros duplicados, precisamos de uma chave primária em nosso conjunto de dados.

Suponha que id seja a chave primária e, com base na data de modificação e ID, devemos ser capazes de identificar e classificar registros novos ou alterados.

Para executar este método, siga etapas semelhantes para identificar os novos registros como fizemos no método INSERT only e enquanto concatenamos os dados incrementais com um existente, aplicar a verificação de registros duplicados ou atualizar o valor dos registros existentes.

incremental_load_qlikview_7-4054219

Aqui, carregamos apenas os registros onde a chave primária (EU IRIA) é novo e o uso da função Existe () impede o QVD de carregar registros desatualizados, pois a versão ATUALIZADA está atualmente na memória, para que os valores dos registros existentes sejam atualizados automaticamente.

Agora, temos todos os registros exclusivos disponíveis em QVD com valor de venda atualizado para ID (PRD858).

incremental_load_qlikview_8-3073865

3. método INSERIR, ATUALIZAR E EXCLUIR:

O script para este método é muito semelhante ao INSERT & ATUALIZAR, porém, aqui temos uma etapa adicional necessária para remover os registros excluídos.

Carregaremos as chaves primárias de todos os registros no conjunto de dados atual e aplicaremos uma junção interna com o conjunto de dados concatenado (Antigo + Incremental). A junção interna reterá apenas os registros comuns e, portanto, irá remover registros indesejados. Suponha que queremos excluir um registro de (ID PRD1058) no exemplo acima.

incremental_load_qlikview_9-6365252

Aqui, temos um conjunto de dados com a adição de um registro (ID PRD1458), modificando um registro (ID PRD158) e excluindo um registro (ID PRD1058).

incremental_load_qlikview_10-2019641

Notas finais:

Neste artigo, discutimos como as cargas incrementais são melhores e fornecem uma maneira eficiente de carregar dados em comparação com a carga COMPLETA. como boa prática, você deve ter um backup regular de seus dados porque pode ser afetado ou pode ocorrer perda de dados, se houver problemas com o servidor de banco de dados e a rede.

Dependendo da sua indústria e necessidade de aplicação, você pode selecionar qual método funciona para você. A maioria dos aplicativos comuns na indústria BFSI são baseados em Insert and Update. A exclusão de log não é normalmente usada.

Você já enfrentou uma situação semelhante ou tem outro truque para melhorar a eficiência dos aplicativos Qlikview?? Sim é assim, Eu adoraria ouvir seus pensamentos nos comentários abaixo., como também beneficia alguém tentando lidar com uma situação semelhante.

Se você gostou do que acabou de ler e deseja continuar seu aprendizado sobre análise, inscreva-se em nossos e-mails, Siga-nos no Twitter ou como o nosso página do Facebook.

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.