Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
junior_ehlke
Contributor III

Estrutura para carga de dados

Bom dia, estou desenvolvendo um projeto do qual comecei a seguir uma lógica de carga que achei interessante porém posso me complicar no futuro.

Para carregar tabela de vendas por exemplo, eu gero um QVD de vendas do mes, exemplo "Vendas_01.QVD, Vendas_02.QVD". Estes arquivos estão organizados por ano, então na pasta C:\projetos\&$(vAno)\ (onde &$(vAno) é o ano atual, ou seja, 2014) eu tenho todos os arquivos necessários, então eu vou dando um Concatenate mes a mes. A ideia é que ao mudar de ano, para 2015, o sistema ja comece a criar e pegar os arquivos da pasta 2015. Porém eu pergunto, Ano que vem, ao dar essa carga o sistema vai perder os dados de 2014 correto? Como driblar isto sem ter que todo ano ficar aumentando os codigos do projeto?

Tags (1)
1 Solution

Accepted Solutions
joao_sp_campina
Contributor II

Re: Estrutura para carga de dados

Hamilton bom dia,

Acho que a melhor solução para isso é criar um diretório padrão para gravar todos os qvds de 2014 e 2015 por exemplo, e gravar os QVDS por mês e ano. Por exemplo: Vendas_02_2014, Vendas_02_2015. diretório para ler todos A leitura ficaria assim: CSmiley Tonguerojetos\QVDS\Vendas_*. O asterisco representa ler todos os qvds dos anos 2014 e 2015. Assim você não precisa mudar seu código, porque ele vai ler todos os qvds do diretório independente do ano.

Att,

     João Carlos Ferreira.

9 Replies
egnaldo_sousa
Contributor II

Re: Estrutura para carga de dados

vc pode rodar um for para verificar as pastas existentes, depois faz a leitura de todas as pastas, segue um exemplo:

FOR Each Pasta in DirList('C:\*')

TRACE ------------------------------------------------------------------;

TRACE ------------------------------------------------------------------;

TRACE '$(Pasta)' ;

TRACE ------------------------------------------------------------------;

TRACE ------------------------------------------------------------------;


NEXT Pasta

junior_ehlke
Contributor III

Re: Estrutura para carga de dados

Isso antes de cada Concatenate? ai eu colocaria manualmente o nome das pastas? 2014, 2015, 2016?

nilo_pontes
Contributor

Re: Estrutura para carga de dados

Fala Hamilton,

Cara, se você pretende manter todos os dados carregados, eu manteria tudo na mesma pasta e mudaria o padrão da nomenclatura do QVD ex: VENDAS_ & $(vANO) & $(vMes), e dessa forma importava todos arquivos da pasta.

Mas caso você necessite criar nessa estrutura, você terá que criar no load uma estrutura em loop pra primeiro verificar se a pasta $(vAno) existe e, se positivo, importar todos arquivos, criando uma lógica pra variar $(vAno).

Abraços,

Nilo

joao_sp_campina
Contributor II

Re: Estrutura para carga de dados

Hamilton bom dia,

Acho que a melhor solução para isso é criar um diretório padrão para gravar todos os qvds de 2014 e 2015 por exemplo, e gravar os QVDS por mês e ano. Por exemplo: Vendas_02_2014, Vendas_02_2015. diretório para ler todos A leitura ficaria assim: CSmiley Tonguerojetos\QVDS\Vendas_*. O asterisco representa ler todos os qvds dos anos 2014 e 2015. Assim você não precisa mudar seu código, porque ele vai ler todos os qvds do diretório independente do ano.

Att,

     João Carlos Ferreira.

egnaldo_sousa
Contributor II

Re: Estrutura para carga de dados

Se as tabelas tiverem a mesma estrutura vc nem precisa utilizar o concatenate.

     FOR Each vAno in DirList('C:\projetos\*')

           Load

          *

          From C:\projetos\&$(vAno)\


     NEXT vAno


Caso não tenha vc pode fazer o seguinte

     FOR Each vAno in DirList('C:\projetos\*')

          $(vConcatenate)

           Load

               *

          From C:\projetos\&$(vAno)\

    

     set vConcatenate = concatenate;    

     NEXT vAno

junior_ehlke
Contributor III

Re: Estrutura para carga de dados

Legal, da para fazer assim mesmo. Questão de organização o que vocês me dizem, dessa forma não ficaria muito "empilhado"? Tudo bem que é uma pasta que não teria pq abri-la mas as vezes seria bom ter mais organizado, ou é cosia da minha cabeça?

egnaldo_sousa
Contributor II

Re: Estrutura para carga de dados

Acredito que este tipo de organização é muito pessoal, acho que quanto mais organizado melhor.

O mais importante é que vc está quebrando os qvd's, isso é o que realmente importa.

junior_ehlke
Contributor III

Re: Estrutura para carga de dados

Boa, valeu pelas dicas pessoal, testei aqui e ficou bem fácil. Vou mudar minha nomenclatura. Abraços.

bittecourt
Contributor II

Re: Estrutura para carga de dados

Amigos

Aproveitando, tenho um arquivo em formato TXT, nele consta dados desde por exemplo 2012, mencurando todos os pagamentos seja enviado , estornados e pagos, o arquivo e enorme, poderiam me orientar como criar uma estrutura de carga de dados, para que possa alocar este arquivo em formato txt, e claro que tenho ciencia que necessitarei tratar as colunas em primeiro lugar, porém tenho a dificuldade nos comandos do script para leitura desse arquivo, os dados serão alocados mensalmente ou seja preciso fazer a carga mais não exluir nenhum dados.

Poderiam me auxiliar neste caso

Muito obrigada amigos