Qlik Interview Questions & Answers Updated
Qlik Interview Questions & Answers Updated
Using Script : Access control is managed through one or several security tables loaded in the
same way as Qlik Sense normally loads data. This makes it possible to store these tables in a
normal database. The script statements managing the security tables are given within the
access section, which in the script is initiated by the statement Section Access. If an access
section is defined in the script, the part of the script loading the app data must be put in a
different section, initiated by the statement Section Application.
Example : Section Access; Load * Inline [ ACCESS, USERID ADMIN, A USER, U ]; Section
Application; Load .... from ....;
Q2. How to give the access of Qlik sense Hub or QMC to the user using an URL?
Ans 1. Create new access rule and apply tokens to it
2. Edit the rule depending upon need
3. Provide port, authentication and advance settings Que Task tab in Qlik view QMC
The symbol tables contain one row per distinct value of the field. Each row contains a pointer
and the value of the field, both the numeric value and the textual component. Basically, the
symbol tables are look-up tables for the field values.
The data tables are the same tables as you can see in the QlikView internal table viewer
(<CTRL>-T) when you have chosen the “Internal table view” – the same number of rows, the
same number of columns. However, the tables do not contain the data itself – they contain the
pointers only. But since the pointers can be used to look up the real value in the symbol tables,
no information has been lost.
These pointers are no ordinary pointers. They are bit-stuffed indices, meaning – they only have
as many bits that it takes to represent the field, never more. So if a field contains four distinct
values, the index is only two bits long, because that is the number of bits it takes to represent
four values. Hence, the data table becomes much smaller than it would have been otherwise.
The bit-stuffed pointers and the symbol tables are the reasons why the Qlik engine can
compress data the way it can.
Understanding this will help you optimize your document. It’s obvious that the number of
records and number of columns in a table will affect the amount of memory used, but there are
also other factors:
The length of the symbols will affect the size of the symbol table.
The number of distinct values in a field will affect the number of rows in the symbol
table as well as the length of the pointers.
The keyword OUTER will also retain rows that do not match rows in the other table.
The keyword LEFT will retain rows from the left table but only matching rows from the
right table
The keyword RIGHT will retain rows from the right table but only matching rows from
the left table
The keyword INNER will retain rows matching the left table and right table
Concatenate
Concatenate appends the rows of one table to another. Concatenate never merges any rows.
The number of rows in a concatenated table is always the sum of the rows from the two input
tables.
Keep
The keep command in Qlik is used to combine data from two data sets keeping both the data
sets available in memory. It is very similar to joins except for two major differences. First
difference is − in case of keep; both the datasets are available in QlikView's memory while in
join the load statements produce only one data set from which you have to choose the
columns. The second difference being − there is no concept of outer keep where as we have
outer join available in case of joins.
Link: Example for Keep
Q16. What is Tier architecture & advantages
The Three-tier Architecture includes three layers in order to extract the data from the various
database and store data in the QlikView data file, apply the business logic and develop the data
model using QVD files and finally create the dashboard by using the second layer as a binary
load which helps the business user to analyze and process the data.
1. Load (Extract Layer and QVD Layer)
2. Transform ( QlikMart Layer)
3. Presentation (Presentation Layer)
Advantages:
Performance Improvement:
Due to QVD file, loading can become 100 times faster than loading data from databases.
Flexibility:
It provides more flexibility as QlikView uses binary load for presentation layer. This transform
can be utilized by multiple dashboards.
Easy to maintain:
Maintaining QVD files is very easy as QlikView has separate QVD generator files for every data
source. If there is any failure, it is very easy to find out the faulty one instead of taking down all
the data sources to fix one.
Reusability:
QVD files can be read in two modes: standard (fast) and optimized (faster). The selected mode
is determined automatically by the QlikView script engine. Optimized mode can be utilized only
when all loaded fields are read without any transformations (formulas acting upon the fields),
though the renaming of fields is allowed. A WHERE clause causing QlikView to unpack the
records will also disable the optimized load.
1)F1 as NewField - Renaming allowed, so it is optimized load
Ex:
LOAD
Field1 AS Date,
Field2 AS Sales
FROM DataSource;
2)F1 * 2 as NewField – Transformation is not allowed, so it is non optimized load
Ex:
LOAD
Field1 AS Date,
Field2 AS Sales,
Discount,
Field2 - Discount AS NetSales // This is a transformation
FROM DataSource;
3)1 as NewField – Cannot add a new field, so it is non optimized load
LOAD
Field1 AS Date,
Field2 AS Sales,
1 AS Flag // Adding new field
FROM DataSource;
4)WHERE Exists(F1) – We can use Single Field in Exists(), so it is an Optimized load
LOAD
Field1 AS Date,
Field2 AS Sales
FROM DataSource
WHERE Exists(Field1);
5)where exists(F1, Some Transformation) – We cannot use Multiple Field in Exists(), so it is a
non Optimized load
LOAD
FirstName,
LastName,
Sales
FROM DataSource
WHERE Exists(Field1, FirstName& ' ' &LastName);
Q20. Cyclic Dimension in Qlik Sense
First, create a master dimension with a combination of pick and match functions.
Next, create a variable vCyclicDim using a system field, $Field, which contains all the fields in
the table. Use this variable in another using dollar-sign expansion.
Notice the logic for the vCyclicDim to display Customer Country by default until the user selects
a value from the cyclic dimension group.
Finally, use a calculated dimension in the table using a dollar-sign expansion.
Now, you can use ‘$(vCyclicDim)’ as a calculated dimension on multiple charts that require a
cyclic group.
Broker Service
Data Profiling Service
Hub Service
Migration Service
Web Extension Service
Capability Service
Converter Service
On-demand App Service
Hybrid Deployment Service (HDS)
Hybrid Setup Console (HSC)
App Distribution Service (ADS)
Precedents Service
Manual start
If you need to start services manually, start them in the following order:
a. Qlik Sense Repository Database (QRD)
b. Qlik Sense logging service
c. Qlik Sense Service Dispatcher (QSD)
d. Qlik Sense Repository Service (QRS)
e. Qlik Sense Proxy Service (QPS), Qlik Sense Engine Service (QES), Qlik Sense Scheduler
Service (QSS), and Qlik Sense Printing Service (QPR) in no specific order
The start-up order is important. During start-up the QRS must be able to contact the Qlik
License Service, which is managed by the QSD. The other services are dependent on the QRS.
The QSD must therefore be running when the QRS is started.
Q26. P() and E() in Set Analysis
The following describes how to define a set of field values using a nested set definition.
In such cases, the element functions P() and E() must be used, representing the element set of
possible values and the excluded values of a field, respectively. Inside the brackets, it is possible
to specify one set expression and one field, for example P({1} Customer). These functions
cannot be used in other expressions:
Examples and results:
Examples Results
sum( {$<Customer = P({1<Product={‘Shoe’}>} Returns the sales for current selection, but
Customer)>} Sales ) only those customers that ever have bought
the product ‘Shoe’. The element function P( )
here returns a list of possible customers;
those that are implied by the selection ‘Shoe’
in the field Product.
sum({$<Customer = Same as above. If the field in the element
P({1<Product={‘Shoe’}>})>} Sales ) function is omitted, the function will return
the possible values of the field specified in
the outer assignment.
sum( {$<Customer = P({1<Product={‘Shoe’}>} Returns the sales for current selection, but
Supplier)>} Sales ) only those customers that ever have supplied
the product ‘Shoe’. The element function P( )
here returns a list of possible suppliers; those
that are implied by the selection ‘Shoe’ in the
field Product. The list of suppliers is then
used as a selection in the field Customer.
sum({$<Customer = Returns the sales for current selection, but
E({1<Product={‘Shoe’}>})>} Sales ) only those customers that never bought the
product ‘Shoe’. The element function E( )
here returns the list of excluded customers;
those that are excluded by the selection
‘Shoe’ in the field Product.
This type of data structure should be avoided as much as possible, since it might lead to
ambiguities in the interpretation of data.
Qlik solves the problem of circular references by breaking the loop with a loosely coupled table.
When Qlik finds circular data structures while executing the load script, a warning dialog will be
shown, and one or more tables will be set as loosely coupled. Qlik will typically attempt to
loosen the longest table in the loop, as this is often a transaction table, which normally should
be the one to loosen. In the table viewer, loosely-coupled tables are indicated by the red dotted
links to other tables.
Synthetic Keys
When two or more internal tables have two or more fields in common, this implies a composite
key relationship. QlikView handles this by creating synthetic keys automatically. These keys are
anonymous fields that represent all occurring combinations of the composite key.
How to avoid
Information density of the field, which indicates the percentage of rows that contain a non-null
value
Subset ratio, which shows the percentage of all distinct values for a field in the
table compared to all the distinct values for that field in the entire data model. It is
only relevant for key fields since they are present in multiple tables and do not all
share the same value.
Subset ratios can be used to easily spot problems in key field
associations.
For example, when the combined total of subset ratios for multiple
tables is 100 percent, this may indicate that there are no matching keys between
these tables.