Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Qlik Open Lakehouse is Now Generally Available! Discover the key highlights and partner resources here.
cancel
Showing results for 
Search instead for 
Did you mean: 
twanqlik
Creator II
Creator II

Incremental load - merging 2 tables

I've a simple incremental load statement that i'm currently testing with  a sample data set of 526 records in a test table (CON_ACTIVITY).

Every time i run the script the QVD grows in size, to be more specific, when i do a count on of the fields, it multiplies with every load. This is unexpected for me, because the test data set is not growing.

I removed the where conditions in the script to make it easier understandable. Basically what i'm hoping to achieve:

1. I load data from the CON_ACTIVITY table

2. I load data from a QVD, same format.

3. I place the data in 1 table, and Qlikview merges the duplicates. This works when i view the data in a table box, but the size of the QVD grows, and the count on the fields also increases with every load, hence, Qlikview is saving the duplicated records.

I also tried a Concatenate function, but this also resulted in a growing table. What am i doing wrong here?


TEMP_D_CAMPAIGN_ACTIVITY:

SELECT

ACTIVITY_TYPE_CODE_FK as ACTIVITY_TYPE,

ACTIVITY_DATE_TIME as ACTIVITY_DATE,

CONSUMER_FK_ID as CONSUMER_ID_FK 

FROM $(TAP).CON_ACTIVITY;

OUTER JOIN

LOAD

ACTIVITY_TYPE,

ACTIVITY_DATE,

CONSUMER_ID_FK

FROM $(QVDpath)D_CAMPAIGN_ACTIVITY_1000_DAYS.qvd (qvd);

NoConcatenate

D_CAMPAIGN_ACTIVITY:

LOAD

ACTIVITY_TYPE,

ACTIVITY_DATE,

CONSUMER_ID_FK

RESIDENT TEMP_D_CAMPAIGN_ACTIVITY;

STORE D_CAMPAIGN_ACTIVITY into $(QVDpath)D_CAMPAIGN_ACTIVITY_1000_DAYS.qvd (qvd);

DROP Table TEMP_D_CAMPAIGN_ACTIVITY;

DROP Table D_CAMPAIGN_ACTIVITY;

1 Solution

Accepted Solutions
marcus_sommer

The logic should be look more like:

Table:

select UniqueKey, Field1, Field2 ... from Source;

     concatenate(Table)

load UniqueKey, Field1, Field2 ... from qvd where not exists(UniqueKey);

A tablebox without adding an UniqueKey field to it is only partly suitable to check which data are available. Without a real UniqueKey in the data you could use recno() and/or rowno() within the table-load to make the records of the tablebox unique.

- Marcus

View solution in original post

1 Reply
marcus_sommer

The logic should be look more like:

Table:

select UniqueKey, Field1, Field2 ... from Source;

     concatenate(Table)

load UniqueKey, Field1, Field2 ... from qvd where not exists(UniqueKey);

A tablebox without adding an UniqueKey field to it is only partly suitable to check which data are available. Without a real UniqueKey in the data you could use recno() and/or rowno() within the table-load to make the records of the tablebox unique.

- Marcus