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

Qlik Sense: Secured binary loads

Single Source of Truth, Multi-Layer architecture and Binary Load

The multi layer qvd architecture is the good approach to empower the end-user with an accurate, trustable and reliable Single Source of Truth.

This this context binary loads are a critical part of the approach. They allow the power user to easily access to the proper Data Model while the Data Team can maintain the whole architecture and provide high data quality.

Qlik - Multi-Layer Achitecture v2.png

In Sense it is possible to use binary load with qvf and qvw

For example, with the desktop version:

Binary ;


This will binary load “My Data Model.qvf” located on the C drive under “Qlik Apps”.


Sense Enterprise

With Qlik Sense Enterprise, this approach will not work. For security reason it is required in Qlik Sense Enterprise to access files using a “Folder Data Connection”


Using the previous example and assuming that we have defined a Folder Data Connection “Qlik Apps” which point to “C:\Qlik Apps” then the proper binary load script would be:

Binary [lib://Qlik Apps/My Data Model.qvf];

Therefore the question would be, “how can I export into qvf the apps of my Data Model layer when the scheduled reload is finished?”.

Actually, nothing in Sense allows you to do that but you actually not need it.


However in Sense Enterprise you can use the app uuid to reference an app. In fact the app is stored in the working directory of the sense server using a qvf named with the app's uuid (without extension).

DataModel - Url.png


In this example, the app “Data Model – Example” has the uuid 193dc96e-0f97-4184-aa76-1a2c08853f4f and is stored in the Sense working directory in a file named 193dc96e-0f97-4184-aa76-1a2c08853f4f

Assuming that an administrator creates a Folder Data Connection named “Apps” which points to the Working Directory of the Qlik Sense server, then the following binary load work:

Binary [lib://Apps/193dc96e-0f97-4184-aa76-1a2c08853f4f];

That works but is an unsecured solution as it gives access to all the apps for every user who have access to that particular Data Connection. This should not be used in a production environment.

Then, how to create a secured Binary load, which securely empower the end-user?


Simply by using a Folder Data Connection which point directly to the app itself.

Creating one Data Connection per Data Model, provides a granularity fine enough to easily manage who have access to which Data Model. The Data Model app can then be published in a stream which is only available to the Data Team and refreshed using the standard task management, and the Data Connection gives access to the Data Model app, whiout having to give access to the app it self.

Moreover, thanks to Qlik Sense Enterprise architecture, the app will be sync automatically to all nodes of the cluster.

Quick How To:

  • First step: as Admin, create a folder Data Connection. It does not matter which folder is configured at first into the hub, it will be changed.
  • Second step: In the QMC, edit the Data Connection just created and change the “folder” by the path to the app (inside the working directory)

DataModel - Connection.png*Notes: My Working Directory is “D:\Apps”. As this is a “global” connection I usually remove the name of the owner from the connection name.

  • Third step: Using the security rules, give access to the Data Connection to the appropriate users.
  • Fourth step: Use the following binary load in every app based on this Data Model. Important note there is no file specified, there is no need to as the Data Connection already contains it.

Binary [lib://Data Model - Example];

12 Replies
aritting
Creator
Creator

Thanks for sharing.  How did you create the graphic for the Qlik Sense Multi-Layer Architecture?

Not applicable
Author

Hi Andy,

I used LibreOffice Draw.

T.

mr_barriesmith
Partner - Creator
Partner - Creator

I saw an article recommending an App generating a set of QVDs rather because of risks with BINARY load of a QVF.  I can't find the doc but my recall is that it is because Qlik Sense Enterprise might spread one single App over multiple physical QVF files... if this is true, this BINARY load method would fail?

Not applicable
Author

Hi Adam,

There is a difference between using QVDs and Binary load. Qvd only store one table, while binary load allows you to load directly a full Data Model (and the Data).

In fact in a multi-layer architecture you do both: You start by building QVDs (Extraction and transformation) and then you combine them in to a Data Model, which is use as source for the binary load.

T.

Levi_Turner
Employee
Employee

As a warning, this isn't supported due to the risk for file corruption and/or other weirdness by the Engine if it is trying to simultaneously read from and write to an app.

Magnus_Berg
Employee
Employee

Agree with Levi, And a side note using the Index functionality in the framework you can with ease load in a data model based on qvd's with a single command.

Regards

Magnus

Not applicable
Author

ltumbg Thanks for your feedback. Maybe you can give some light on your thoughts.

The documentation state that the binary load of Qlik Sense application are supported and you can read them directly from the "Working Directory" (ie the "Apps" directory).

Here I'm only suggesting to alias the application itself instead of sharing the whole working directory, giving the administrator a full control of the access rights

chriscammers
Partner - Specialist
Partner - Specialist

Magnus,

Could you please elaborate on the Index functionality? I've not heard of this and I'm curious.

Thanks

Chris

Vegar
MVP
MVP

The basics of the index functionality is described in the  Qlik Deployment Framework Development Guide‌ page 27.