Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
siddharth_kulka
Creator II
Creator II

Why does Qlikview permit just 1 binary load in a qvw?

I have always wondered about the same. Now thinking loud!

Thoughts?

Regards,

Sid

1 Solution

Accepted Solutions
hic
Former Employee
Former Employee

The very last thing that happens when running the script, is that QlikView compares existing tables and builds a structure that handles the association of the tables. Synthetic keys are built in this step.

A Binary statement loads an entire data model where this already has been made. If you add additional Load statements after a Binary statement, QlikView just makes a rollback of the above step, adds the tables from the additional Load statements, and again performs the final step. So, one Binary statement with some additional Loads is a fairly simple algorithm and was easy to implement.

But several Binary statements would be more complex... QlikView would need to first make rollbacks on all data models; use one of them as "master"; and then move the tables of other models one by one to the master model. Remember that when a table is added, it may affect the symbol tables of previously loaded tables, hence QlikView needs to add the tables one by one.

I guess it would be possible to implement. But so far we have not considered it worthwhile: Lots of work for little gain. Personally, I am not sure it would be a good thing. Yes, it would sometimes be practical, but it would also add to script complexity and affect the script manageability. So, I think that a layer of qvd files is a better path forward.

HIC

View solution in original post

7 Replies
maxgro
MVP
MVP

I suppose because of the complexity of mix two (or more) different database (join, loop, syn keys)

Hope some from Qlik will clarify, maybe Henric Cronström

siddharth_kulka
Creator II
Creator II
Author

My 2 cents - It might have something to do with how Qlikview stores data. That is purely a guess though!

Need to know what is the technically reason/issue behind this drawback. Its a big one!

danieloberbilli
Specialist II
Specialist II

I think one unavoidable effect of the binary load is that it flushes the memory - that's also the reason why you can't have any section access before a binary load.

jagan
Luminary Alumni
Luminary Alumni

Hi,

Binary load loads the Datamodel from one Qlikview file to other qlikview file, if multiple is allowed then there may be problems with Synthetic Keys, Loops, etc., may be sometimes the same fact tables also loaded twice because of two datamodels.  So to avoid this I think only one binary load is provided.

If you want to add additional tables then you can add normally using the LOAD/SELECT statements like below

BINARY Qlikview.qvw;

TableName:

LOAD

*

FROM DataSource;

Hope this helps you.

Regards,

Jagan.

siddharth_kulka
Creator II
Creator II
Author

Jagan-

With proper precautions and best practices,problems with Synthetic Keys, Loops, etc can be easily avoided. I doubt- thats the reason.


On the flip side, multiple binary loads (if permitted) could be very useful in certain scenarios.

hic
Former Employee
Former Employee

The very last thing that happens when running the script, is that QlikView compares existing tables and builds a structure that handles the association of the tables. Synthetic keys are built in this step.

A Binary statement loads an entire data model where this already has been made. If you add additional Load statements after a Binary statement, QlikView just makes a rollback of the above step, adds the tables from the additional Load statements, and again performs the final step. So, one Binary statement with some additional Loads is a fairly simple algorithm and was easy to implement.

But several Binary statements would be more complex... QlikView would need to first make rollbacks on all data models; use one of them as "master"; and then move the tables of other models one by one to the master model. Remember that when a table is added, it may affect the symbol tables of previously loaded tables, hence QlikView needs to add the tables one by one.

I guess it would be possible to implement. But so far we have not considered it worthwhile: Lots of work for little gain. Personally, I am not sure it would be a good thing. Yes, it would sometimes be practical, but it would also add to script complexity and affect the script manageability. So, I think that a layer of qvd files is a better path forward.

HIC

siddharth_kulka
Creator II
Creator II
Author

Hi Henric,

Thanks for detailing your explanation.


I was fairly sure, it had something to do with the symbol/data structure storage, but was not sure if it feasibly impossible for Qliktech to implement. Based on my experience- multiple binary loads can surely be useful in certain scenarios (if not many). Something for Qliktech to consider, in my opinion!