Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Olá Comunidade !
Possuo um QVD com a estrutura abaixo:
@1 | @2 | ... | @10 | SourceFile |
---|---|---|---|---|
2017-01-01 | GET | Mozilla/5.0+(Windows+NT+6.3;+WOW64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/55.0.2883.87+Safari/537.36 | C:\Inetpub\logs\LogsFiles\W3SVC2\u_ex170101.log | |
2017-01-02 | GET | Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/56.0.2924.76+Safari/537.36 | C:\Inetpub\logs\LogsFiles\W3SVC2\u_ex170102.log | |
... | ... | ... | ... |
Ele possui 2.885.540 registros, e quando tento carregá-lo com o Script abaixo, é apresentado o "Erro 300: Out of Memory" (mesmo sem ter consumido mais memória RAM disponível no computador, restando cerca de 28GB) :
LOAD *, SubField([IISW3SVC1_CS-UserAgent], ';+') as[IISW3SVC1_UserAgent_Breakdown]
;
LOAD [IISW3SVC1_CS-UserAgent]
, subfield([IISW3SVC1_CS-UserAgent], '+', 1) as [IISW3SVC1_UserAgent_Browser]
;
LOAD Distinct @10 as [IISW3SVC1_CS-UserAgent]
FROM
(qvd);
Porém quando o carrego sem o último LOAD precedente (que cria o campo com Subfield ";+" sobre a coluna @10), a recarga ocorre normalmente.
Gostaria de saber porque isso ocorre e se há maneira de corrigir esta leitura.
Anexo print do compilador com a mensagem completa do erro.
Ass: L G
Tente assim:
t:
LOAD
Distinct
@10 as [IISW3SVC1_CS-UserAgent],
subfield(@10 , '+', 1) as [IISW3SVC1_UserAgent_Browser]
FROM
(qvd);
load *,
SubField([IISW3SVC1_CS-UserAgent], ';+') as [IISW3SVC1_UserAgent_Breakdown]
Resident t;
drop Table t;
Tente assim:
t:
LOAD
Distinct
@10 as [IISW3SVC1_CS-UserAgent],
subfield(@10 , '+', 1) as [IISW3SVC1_UserAgent_Browser]
FROM
(qvd);
load *,
SubField([IISW3SVC1_CS-UserAgent], ';+') as [IISW3SVC1_UserAgent_Breakdown]
Resident t;
drop Table t;
Show ! Funciona mesmo cleveranjos!
Fiz a recarga no qvw demo, e depois tentei no Script completo, e deu certo...
Aparentemente apenas 1 linha da base, estava respondendo pelo erro. Ela possuía 371.359 caracteres na coluna @10 que estava sendo lida pelo LOAD. Curiosamente sem a carga da linha em questão, o script funcionava.
Valeu pela ajuda!