Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi, everybody!
I have this big file in which I want to add information on a second stage. So I decided to implement for first time PARTIAL RELOAD.
QlikView official Help says about Partial Reload:
"This command executes only load and select statements preceded by a replace or add prefix. Other data tables remain unaffected by the command."
So, what happens:
1) I load data in table INITIAL, afterward I make few RESIDENT LOAD in order to make calculation on various dimensions and finally LOAD everything in table FINAL and afterward I DROP the table INITIAL.
2) With full RELOAD no problems at all
3) PARTIAL LOAD pops up messages for missing table "Table not found" with reference to the INITIAL table. Everywhere in the load scrip I use standard LOAD and SELECT taking data from either SQL, either RESIDENT table INITIAL. No REPLACE or ADD switch, still problem appears.
Any ideas would be greatly appreciated!
Kind regards,
Kalin
PS: As you may understand, after facing this problem I haven't proceeded with adding the desired 2nd LOAD stage at all. I had in mind to add one more data source with option REPLACE ONLY LOAD.
Hi
Just a couple if thoughts
You will need an Add or Replace prefix on your initial table and an Add prefix on your final table. Be careful that the columns in the Initial and Final tables are not the same, otherwise QV autoconcatenation may come into play.
You can conditionally change the processing using IsPartialReload() system property.
If IsPartialReload() Then
... do some partial reload processing
Else
.. do full reload processing
End If
HTH
Jonathan
Dear Jonathan, thanks for your quick reply.
As I say in my PS I have not even reached the design of partial load where I wanted to add TBL-2ND-STAGE.
I have a well working file where I use standard LOAD, RESIDENT and DROP TBL commands to manage my INITIAL table and to get the FINAL one. I've just tested the command "File/Partial Reload" to see what happens.
Since I don't have in my code any REPLACE/ADD switches I supposed that QV will do nothing. Instead, it popped me up with these error message which I don't know how to interpret.
Regards,
Kalin
Kalin
QV does not do nothing in a partial reload. The script executes normally except that LOADs without ADD or REPLACE are skipped. So if you are trying to access the initial table (which does not exist), you will get an error. Although, if this is being caused in a LOAD statement (ie LOAD .. resident...) without the prefix then that would be strange.
HTH
Jonathan
Well, this is exactly what I am saying: It is strange !
In fact the message comes not in the load of the FINAL table, but in the following interim table:
LEFT JOIN (INITIAL)
LOAD
sum(a) as asum,
sum(b) as bsum,
if(c<1,'Yes','No') as c
resident INTERIM group by c;
drop table INTERIM;
Is it possible that the use of SUM and IF activates SOMETHING during the partial load?!?
Perhaps QV interprets the LEFT JOIN first (before the LOAD) and errors because INITIAL does not exist. It only checks for the ADD/REPLACE after that. I don't think that its the Sum and If are causing the problem. Comment them out and try running the script - I would expect the same error.