Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bom dia,
Sou novo no Sense e preciso de uma super ajuda!
Tenho que fazer uma carga incremental aqui no trabalho e estou fazendo um teste primeiro, já tem 2 dias que estou quebrando a cabeça e não dá certo!!!.
Muito obrigado!
Arquivo Excel em anexo:
Meu Código:
[Teste]:
LOAD
[Letters],
[Last_modified]
FROM [lib://Teste/Pasta1.xlsx]
(ooxml, embedded labels, table is Teste);
STORE Teste into [lib://Teste/Teste.qvd](qvd);
//---------------------------------------------------
// ADICIONA NA VARIÁVEL A ÚLTIMA DATA DOS DADOS CARREGADOS
Tab_maxdata:
LOAD
Date(max(Last_modified)) as MaxData
FROM [lib://Teste/Teste.qvd]
(qvd);
Let vMaxData = peek( 'MaxData',0,Teste);
//---------------------------------------------------
Teste3:
LOAD
Letters,
Last_modified
FROM [lib://Teste/Pasta1.xlsx]
(ooxml, embedded labels, table is Teste)
Where [Last_modified] > '$(vMaxData)';
Concatenate
LOAD * FROM [lib://Teste/Teste.qvd](qvd);
STORE Teste3 into [lib://Teste/TesteFinal.qvd](qvd);
//---------------------------------------------------------------
Olá,
Todo esse script é executado? se sim, você está carregando TUDO e criando um QVD do arquivo inteiro a cada execução (Tabela [Teste]).
Assim, se você ja tem o QVD criado da 1ª Carga voce deve:
1º - Criar Variavel da ultima data e Dropar a Tabela "Tab_maxdata";
2º - Carregar as informações do excel onde Data>Variável;
3º - Concatenar com a carga do QVD ja existente (1ª Carga).
4 º - Realizar o STORE atualizado do QVD.
EX (Considerando que já existe o QVD na pasta 'Teste.qvd'):
[Tab_maxdata]:
LOAD
Date(max(Last_modified)) as MaxData
FROM
[.\Teste.qvd]
(qvd);
Let vMaxData = peek( 'MaxData',0,Teste);
DROP TABLE Tab_maxdata;
//CARREGA OS NOVOS DADOS
[Novos_Dados]:
LOAD
Letters,
Last_modified
FROM
[.\Pasta1.xlsx]
(ooxml, embedded labels, table is Teste)
Where [Last_modified] > '$(vMaxData)';
Concatenate
//JUNTA OS NOVOS DADOS COM O QVD JA SALVO
[Qvd_Salvo]:
LOAD
Letters,
Last_modified
FROM
[.\Teste.qvd]
(qvd);
STORE Novos_Dados into [./Teste.qvd](qvd);
Olá,
Todo esse script é executado? se sim, você está carregando TUDO e criando um QVD do arquivo inteiro a cada execução (Tabela [Teste]).
Assim, se você ja tem o QVD criado da 1ª Carga voce deve:
1º - Criar Variavel da ultima data e Dropar a Tabela "Tab_maxdata";
2º - Carregar as informações do excel onde Data>Variável;
3º - Concatenar com a carga do QVD ja existente (1ª Carga).
4 º - Realizar o STORE atualizado do QVD.
Muito obrigado,
Vou tentar e retorno aqui se consegui. ok?
Valeu!
Muito obrigado!
Deu certo só tive que criar uma código para primeira carga e no final alterar a tabala novos_dados para a tabela teste.
Segue meu código:
// PRIMEIRA_CARGA:
// LOAD
// Letters,
// Last_modified
// FROM [lib://Teste/Pasta1.xlsx]
// (ooxml, embedded labels, table is Teste);
// STORE [PRIMEIRA_CARGA] into [lib://Teste/Teste.qvd](qvd);
// DROP TABLE PRIMEIRA_CARGA;
// Exit Script;
[Teste]:
LOAD * FROM [lib://Teste/Teste.qvd](qvd);
[Tab_maxdata]:
LOAD
Date(max(Last_modified)) as MaxData
FROM
[lib://Teste/Teste.qvd]
(qvd);
Let vMaxData2 = peek( 'MaxData',0,Teste);
DROP TABLE Tab_maxdata;
//CARREGA OS NOVOS DADOS
[Novos_Dados]:
LOAD
Letters,
Last_modified
FROM
[lib://Teste/Pasta1.xlsx]
(ooxml, embedded labels, table is Teste)
Where [Last_modified] > '$(vMaxData2)';
Concatenate
// JUNTA OS NOVOS DADOS COM O QVD JA SALVO
[Qvd_Salvo]:
LOAD
Letters,
Last_modified
FROM
[lib://Teste/Teste.qvd]
(qvd);
STORE [Teste] into [lib://Teste/Teste.qvd](qvd);
Bom dia Comunidade,
Agora sim segue código atualizado da carga incremental.
// // // Primeira carga e seta o variáriel vMaxData para a maior data.
// Primeira_carga:
// Let vMaxData = "";
// LOAD
// Letters,
// Last_modified
// FROM [lib://Teste/Pasta1.xlsx]
// (ooxml, embedded labels, table is Teste);
// STORE Primeira_carga into [lib://Teste/Teste.qvd](qvd);
// [Tab_maxdata]:
// LOAD
// Date(max(Last_modified)) as MaxData
// FROM
// [lib://Teste/Teste.qvd]
// (qvd);
// Let vMaxData = peek( 'MaxData',0,Teste);
// DROP TABLE Tab_maxdata;
// DROP TABLE Primeira_carga;
// Exit Script;
[Teste]:
LOAD * FROM [lib://Teste/Teste.qvd](qvd);
[Tab_maxdata]:
LOAD
Date(max(Last_modified)) as MaxData
FROM
[lib://Teste/Teste.qvd]
(qvd);
Let vMaxData = peek( 'MaxData',0,Teste);
DROP TABLE Tab_maxdata;
//CARREGA OS NOVOS DADOS
[Novos_Dados]:
LOAD
Letters,
Last_modified
FROM
[lib://Teste/Pasta1.xlsx]
(ooxml, embedded labels, table is Teste)
Where [Last_modified] >= '$(vMaxData)';
Concatenate
// JUNTA OS NOVOS DADOS COM O QVD JA SALVO
[Qvd_Salvo]:
LOAD
Letters,
Last_modified
FROM
[lib://Teste/Teste.qvd]
(qvd);
STORE [Teste] into [lib://Teste/Teste.qvd](qvd);
//Seta o variáriel vMaxData para a maior data.
[Tab_maxdata]:
LOAD
Date(max(Last_modified)) as MaxData
FROM
[lib://Teste/Teste.qvd]
(qvd);
Let vMaxData = peek( 'MaxData',0,Teste);
DROP TABLE Tab_maxdata;