Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Where did my QVD go?

I'm tracking another issue and in doing so found some peculiar behavior (at least it is to me).  I have an application that stores data into two QVD files.  During the reload I see those files being created.  However, after the reload the QVD's disappear and on my next reload I'm pulling a full dataset instead of an incremental one, so bascially I'm never doing an incremental load.   No where in my script do I delete files.

Anybody know what migh be going on here?

v11.20

1 Solution

Accepted Solutions
Not applicable
Author

Looks like I found it.  There is a setting under Document Properties, General tab called 'Keep Unreferenced QVD Buffers'.  I'm not sure why the default is to delete them, but when I check this setting my QVD's remain on disk and I can reference them for my incremental loads on subsequent reloads.

View solution in original post

4 Replies
swuehl
MVP
MVP

Hard to say without knowing your setting / script.

Could you post your script?

You are not using the BUFFER prefix, are you?

Not applicable
Author

There's a lot to the script, but here's the jist where I'm creating/loading one of the QVDs.

 

 

//SET vQvdFile='c:\mick\openfolder\qv\GenAct.qvd'; //The QVD filename on my machine
SET vQvdFile='E:\QlikView\Documents\Knova\GenAct.qvd'; //The QVD filename on NOCDKMCOMBO1
SET vTableName='RGN_GenAct';  //The name of the QV table we are loading on the Data Load tab
//SET vPK='EventId';    // Data Primary Key


// Set a variable indicating if the QVD exists or not. -1 is True, 0 is False
LET vQvdExists = if(FileSize('$(vQvdFile)') > 0, -1, 0);


IF $(vQvdExists) THEN  // QVD exists, we will do an incremental reload
maxdateTab:
// Get the max date from this QVD for use in incremental SELECT
LOAD max(date(LogDate)) as maxdate //Set the name of the date or datetime field
FROM $(vQvdFile) (qvd);
LET vIncrementalExpression = 'WHERE LogDate >' & chr(39) & peek('maxdate') & chr(39);
DROP table maxdateTab;

ELSE      // QVD does not exist
LET vIncrementalExpression = '';  // No QVD. Force full reload
END IF

RGN_GenAct:
sql select
  LogDate
, LogTime
,  SessionID
,  UserID
,  EventType
,  Microsite as SessionMicrosite
,  upper(SearchQuery) as SearchQuery
,  UserName
,  UserTitle
, UserDepartment
,  UserRole
,  BankingGroup
,  BankingArea
,  BankingMarket
, UserCCName
,  UserBranchID
,  UserCCID
from "kanalyticsprod"."dbo"."RGN_GenAct"
$(vIncrementalExpression);

// If incremental reload was , load previous data and concatenate to data just read.
IF $(vQvdExists) THEN
// Use CONCATENATE in case we've added any new fields.
CONCATENATE ($(vTableName)) LOAD * FROM $(vQvdFile) (qvd)
;
END IF

/*
Overwrite the QVD with the QV datatable.
*/
STORE $(vTableName) INTO $(vQvdFile);

Not applicable
Author

A couple of interesting items....

1 - When I reload the app from my machine it reloads fine, but the QVDs disappear.

2 - When I reload the exact same app from the QV server it fails, but the QVDs are where I expect them to be.

Server = v11.00.11282 x86

Desktop = v11.20.11922 x64

Not applicable
Author

Looks like I found it.  There is a setting under Document Properties, General tab called 'Keep Unreferenced QVD Buffers'.  I'm not sure why the default is to delete them, but when I check this setting my QVD's remain on disk and I can reference them for my incremental loads on subsequent reloads.