Qlik Community

QlikView App Development

Discussion Board for collaboration related to QlikView App Development.

Highlighted
siddharth_kulka
Contributor 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

Tags (3)
1 Solution

Accepted Solutions

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

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

7 Replies
MVP
MVP

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

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
Contributor II

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

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
Valued Contributor II

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

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.

MVP & Luminary
MVP & Luminary

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

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
Contributor II

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

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.

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

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
Contributor II

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

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!