Anda di halaman 1dari 8

50 Top Qlikview Interview Questions and Answers

1:Explain Qlikview architechture


Ans. The QlikView Business Discovery platform consists of 3 major components QlikView Server, QlikView Publisher
and QlikView Desktop, each playing an important part in designing, developing and implementing almost every
QlikView deployment
2:QLIKVIEW DESKTOP
The QlikView Desktop is a Windows-based desktop tool that is used by business analysts and developers to create a data
model and to lay out the graphical user interface (GUI or presentation layer) for QlikView apps. It is within this
environment where a developer will use a SQL-like scripting environment (augmented by wizards) to create the
linkages (connection strings) to the source data and to transform the data (e.g. rename fields, apply expressions)
so that it can be analyzed and used within the UI, as well as re-used by other QlikView files. The QlikView Desktop is
also the environment where all user interface design and user experience is developed in a drag-and-drop paradigm:
everything from graphs and tables containing slices of data to multi-tab architectures to application of color scheme
templates and company logos is done here. The file type that is created using the QlikView Desktop is known as a QVW
(.qvw, or QlikView file). Upon reload, a QVW can be used to create a data-only QVD (QlikView data) file, which is
binary and contains no UI.
3:QLIKVIEW SERVER (QVS)
The QVS is a server-side product that contains the in-memory analytics engine and which handles all client/server
communication between a QlikView client (i.e. desktop, IE plugin, AJAX or Mobile) and the server. It includes a
management environment (QlikView Management Console) for providing administrator access to control all aspects of
the server deployments (including security, clustering, distribution etc.) and also includes a web server to provide frontend access to the documents within. The web servers user portal is known as Access Point. (Its important to note that
while the QVS contains its own web server, one can also utilize Microsoft IIS (Internet Information Server) for this
purpose, too). The QVS handles client authorization against existing directory providers (e.g. Microsoft Active
Directory, eDirectory) and also performs read and write to ACLs (access control lists) for QVW documents.
4:QLIKVIEW PUBLISHER
The QlikView Publisher is a server-side product that performs two main functions:
1) It is used to load data directly from data sources defined via connection strings in the source QVW files.
2) It is also used as a distribution service to reduce data and applications from source QVW files based on various rules
(such as user authorization or data access privileges) and to distribute these newly-created documents to the appropriate
QlikView Servers or as static PDF reports via email. Data sources that can be readily accessed by QlikView include
standard ODBC or OLEDBcompliant databases, standard flat files such as Microsoft Excel, XML, etc. as well as from
systems such as SAP NetWeaver, Salesforce.com, and Informatica.
5:Set analysis in qlikview
Ans. QlikView set analysis is used when you want to create a set or a group of information independent of your current
selection. In other words, a data set that has no influence of your current selections. Sets can be used in aggregation
functions. Aggregation functions normally aggregate over the set of possible records defined by the current selection.
For those of you who know SQL, set analysis is just like SELECT. GROUP BY statements. Qlikview Set analysis
starts and ends with a curly bracket: {}
E.g.
Qlikview Set analysis begins and ends with { }
Modifier begins and ends with < >
Operator: =
Identifier is not shown but it is $ which is the default state in Qlikview
Qlikview Set analysis IDENTIFIERS:
Identifier defines the state of the set.
$ is the default state, meaning the current selection for a given sheet.
1 ignores the current selection and considers all the values in the data set.
Bookmark10 state defined by a stored bookmark. If you are new, please review this article to learn more about book
marks.
Now, the fun begins

You can subtract one state from another. For example,


1 $ Selects all values from the data set but the current selection.
1- Bookmark10 Selects all values from the data set but those defined by a given bookmark.
Qlikview Set analysis MODIFIERS:
Identifier is like a SELECT keyword and Modifier is like a WHERE clause or a filter in your SQL select statement. It
works on the selected data set based on your identifier to add, remove or to modify existing selections. Modifiers
start with < and end with >. In this example, the returned data set gets modified to filter Year with 2005 and 2006 values.
Thus, the resulting data set contains only data for those 2 years. If you want to do a year vs year analysis, modifier allows
you to select data set for the previous year. Like identifier, modifier can make otherwise complicated programming a
simple task. For instance, if you want to ignore certain field from your data set, you can simply add a modifier with
<Field=>.
Qlikview Set analysis OPERATORS:
Operators are like executors of the Qlikview set analysis. Operators somewhat control behavior of modifier statements.
They are like a method of an object as they allow interactions between two different data sets in a single expression.
Example: sum({$ + Year20052006} TotalDue)
6:What is Synthetic key and how to avoid it in QlikView .
Ans. It is undesirable to have multiple common keys across multiple tables in a QlikView data structure. This may cause
QlikView to use complex keys (a.k.a. synthetic keys) to generate the connections in the data structure. Synthetic keys are
generally resource heavy and may slow down calculations and, in extreme cases, overload an application. They also make
a document harder to understand and maintain. Thereare some cases where synthetic keys cannot be avoided (e.g. Interval
Match tables),but, in general, synthetic keys should always be eliminated, if possible.
1. comment the fields in load script
2. rename the fields in load script
3. rename the fields using UNQUALIFY operator;
8:Difference between KEEP and JOIN in QlikView
Ans. Left Keep and Left join gives the same output. The only difference is that Left Keep keeps the Table separate in Data
Model, whereas Left join merges the Tables that are joined.
9:Difference between simple table and pivot table in QlikView
Ans. Pivot table1) A pivot table is better at grouping: you can easily see which group a specific row belongs to, and a group can have a
subtotal.
2) You can also display a pivot table like a cross table (one or several horizontal dimensions).
3) But when you sort a pivot table, you have to sort it first according to the first dimension, then according to the next,
etc.You cannot sort it any way you want.
Straight tableA straight table is better at sorting than a pivot table: you can sort it according to any column. But it is not so good at
grouping. Subtotals are not possible, for instance.
11:What is Incremental Load in qlikview
Ans. As BI apps are expected to deal with larger and larger amounts of data the amount of time that it takes to retrieve
that data becomes a serious issue. This could be due to shear volume of data or the need for frequent refreshes. Either
way, you do not want to be pulling all of the data all of the time. What you want to be able to do is just pull the data that
has changed, append to that the data that you stored away previously and then get back to the business of analysing. This
will reduce load on the source database, the network infrastructure and your QlikView server.
12:Whta is Inline memory in QlikView
Create table or add field to table
13:what is Set and let in QlikView and difference between it
Ans. SET or a LET statement is often usedTo define the variable. The SET statement is used when you want a variableto
hold the string or numeric value that is to the right of the Equal (=) sign.

The LET statement is used when you need to evaluate what is to the right of the Equal sign
e.g
set myVar=5*2 the result is 5*2
Let myVar=5*2 the result is 10
14:Explain QlikView Resident Load
Ans. Create a new logical table in QlikView, based on a previously loaded (resident) table.
15:Which sources QlikView can load and interpret the data
The result of a database query, made by SQL via OLE DB/ODBC.
Any type of character-delimited text files, e.g. comma separated files.
Fixed field value position format files.
Excel files in standard BIFF format.
XML tables HTML tables QlikView Data (qvd) files.
Previously created QlikView-files
Dif files (common export format from AS/400).
Custom data sources (e.g. Web Services) via a plug-in interface
16:What is MAPPING TABLES in QlikView
Ans. Sometimes you need to add an extra field to a table to use a combination of fields
from different tables, or you want to add a field to clean up the data structure. QlikView has an effective way to add single fields to a table called mapping tables. In this
chapter,
syntax mapping ( load statement | select statement )
applymap( mapname, expr, [ , defaultexpr ] )
17:The QlikView Peek function has the following syntax:
Ans. Peek( fieldname [ , row [ , tablename ] ] ).
18:QLIKVIEW DATA (QVD) FILES
Ans. One of the most important features in writing scripts within QlikView is the use of QlikView Data (QVD) files. A
QVD file contains a table of data exported from QlikView. QVD is a native QlikView format. It can only be written to
and read from QlikView. The file format is optimized for speed when reading data from a QlikView script but it is also
very compact.
store [(*|<field_list>) from] <table> into <file_name>;
19:Preceding Load in QlikView.
Ans. The preceding load gives you the advantage of working with the QlikView syntax instead of the SQL syntax.
20:What is Dimensions
Each data warehouse consists of dimensions and measures. Dimensions allow data analysis fromvarious perspectives. For
example, time dimension could show you the breakdown of sales by year, quarter, month, day and hour. Product
dimension could help you see which products bring in the most revenue. Supplier dimension could help you choose those
business partners who always deliver their goods on time. Customer dimension could help you pick the strategic set of
consumers to whom youd like to extend your very special offers.
21:Explain about Normalized Data
Ans. Well Structured Form of Data, which doesnt have any repetition or redundancy of data. Its a kind of Relational data.
Its mainly used in OLTP kind of stuffs Denormalized Data Its a whole bunch of data without any relationship among
themselves, with redundancy of data. Its mainly used in OLAP kind of stuffs.
22:What Is Star Sechma ?
Ans. A star schema is the simplest form of dimensional model, in which data is organized into facts and dimensions. A
fact is an event that is counted or measured, such as a sale or login. A dimension contains reference information about the
fact, such as date, product, or customer. A star schema is diagramed by surrounding each fact table with its associated
dimensions table. The output diagram resembles a star.

23:What is Snowflaking Schema ?


Ans.Snowflaking is a form of dimensional modeling, dimensions are stored in multiple relational dimension tables. A
snowflake schema is a variation of the star schema. Snowflaking is used to improve the performance of specific queries.
The schema is diagramed with each fact surrounded by its associated dimensions as in a star schema, and those
dimensions are further related to other dimensions, branching out into a snowflake pattern.
24:What is binary load in QlikView
Ans. Binary load is loading data from another QV file. For example, you have application A.qvw. You can create another
application B.qvw with script binary A.qvw.
The syntax is:
binary file
where:
file ::= [ path ] filename
Examples:
Binary customer.qvw;
Binary c:\qv\customer.qvw;
The path is the path to the file, either absolute, or relative to the .qvw file containing this script line.
25:What is container in QlikView
Ans. A container object can be used to hold multiple charts. You can use a container object to put multiple charts in the
same box. All charts will appear in the same window but only one chart will appear active at a given time. You can click
the chart title to switch or toggle between charts. A word of advice: Use containers with caution. They form linked objects
and might affect the properties of all linked objects.
26:What is Circular references and how to avoid it. in QlikView
Ans. It is undesirable to have multiple common keys across multiple tables in a QlikView data structure. This may cause
QlikView to use Circular references to generate the connections in the data structure. Circular references are generally
resource heavy and may slow down calculations and, in extreme cases, overload anapplication.
1. comment the fileds in load script
2. rename the fileds in load script
3. rename the fileds using UNQUALIFY operator.
27:Project Plan in Qlikview
Steps and Activity
1. Install QV Server and Client in the DEV Server & Ensure all the services are functioning
2 . Meeting up the users & understanding requirements
3 . Create a BRD (Business Req. Doc.) detailing all the business logics, reports, etc (discussed above)
4. SignOff on BRD
5. Extract ALL SQL table into QVDs (Try to identify only the relevant required)
6. Creating the datamodel.
7. Testing the datamodel.
8. Decide upon a base theme to start up.
9. Create reports/charts
10. Test reports/charts (use sample reports in LIVE system)
11. UAT
12. SignOff on reports/charts
13 . GO LIVE
28:Does the QVD data get stored in an RDBMS like Oracle, or is it in a file system?
QVD files are stored in the file system.
29:What is the compression factor for QVD's?
QVD files are stored uncompressed. A QVD contains the physical representation of an in-memory Qlikview Table. This
RAM image format is what allows an optimized QVD load to be so quick. The physical blocks of disk are read directly

into RAM, ready to go. Because QVD is the RAM image, there is no compression.
30:Can we trace back QVD to its source?
As of QV10SR2, the XML header in a QVD file contains the name of the QVW that created the QVD as well as file
sources and database connections/SQL statements.
31: Why is sorting not possible while loading QVD?
Sorting (ORDER BY) is only possible with Resident (already in memory) files. Sorting is not possible when reading from
files.
32:Could you go over again the concept of "forcing" un-optimized load for the MAPPING function, respective to the
qvd?
MAPPING tables may be loaded from a QVD, but it must be an un-optimized load (this is sometimes called
unwrapping).
MyMap:
MAPPING LOAD F1, F2 FROM sometable.qvd (qvd);
The above mapping table will be created but it will appear to be empty when used in MAP USING or ApplyMap(). No
error, just no resulting mapping. One workaround is to create a condition that will cause an un-optimized load. We want
all the rows, so we create an always-true condition that will return all rows.
MyMap:
MAPPING LOAD F1, F2 FROM sometable.qvd (qvd)
WHERE 1=1;
Note: In QV10+, the MAPPING prefix will trigger an unoptimized load. The 1=1 trick is not necessary.
A corollary to this is that the target of a mapping operation cannot be an optimized QVD.
MAP Country USING MyMap;
// Optimized load, Country will not get mapped.
LOAD Customer, Country FROM customer.qvd (qvd);
33: use of the Where 1=1 is something that will be good for mapping fields in the future or is possible that The qlikview
will determine that where 1=1 will allow optimization?
Good question. We use WHERE 1=1 to force the un-optimized load required by MAPPING LOAD. Im hopeful that if
Qlikview were changed to consider 1=1 as an optimized load, they will also recognize that MAPPING LOAD should be
non-optimized. (Note: In QV10, MAPPING LOAD is automatically non-optimized).
34: How would you handle the need to load multiple models (ie multiple qvws)?? I don't think you can do multiple
binary loads, so what do you recommend.
You can generate QVDs from each model and then load all the QVDs to form the larger model. You can generate all
QVDs from a qvw with a simple loop. You can add this code to each of your model qvws.
FOR i = 1 to NoOfTables()
LET vTableName = TableName($(i)-1);
LET vOutfile = '$(vTableName).qvd';
STORE [$(vTableName)] INTO [$(vOutfile)] (qvd);
NEXT i
35: How are QVD refresh scheduled?
QVDs are created by script in a QVW executed by the reload process. Schedule the reload as you would the reload of a
user facing qvw, using the Qlikview Enterprise Management Console (QEMC) or a batch file.
36: Is QVD Optimized load really worthwhile since it is fairly limited? In other words, should we load data to the
memory striving for QVD optimized and then work with the memory tables within the script?
Optimized vs non-optimized load has two impacts: Load duration and Server RAM usage. If your application is relatively
small or you do not have concerns about the impact, dont spend time trying to maintain an optimized load. Some of the
script techniques used to maintain optimized can make your script harder to follow. If, for a given document, you have
concerns about load duration or RAM usage, then making the effort to maintain an optimized load would be worthwhile.
37: Can a QVD be accessed from a AS400 DB2 database to get some data?

Nothing but Qlikview can read from QVDs, so no, DB2 cannot read directly from a QVD. In the same script that creates
the QVD with the store statement:
STORE mytable INTO mytable.qvd (qvd);
You can also create a CSV copy for other consumers:
STORE mytable INTO mytable.csv (txt);
The csv file can be read by any number of programs, including an ODBC text driver or a bulk database loader. You can
use QV to do the ETL and then push csv files back into a Data Warehouse, using something like SQL Server DTS or other
data pump.
38: Im pulling data from a database over a slow WAN link. Would using a qvd speed this up? If so, would the qvd
file reside on the same side as the database or at the end of WAN Link (client side)?
Using QVDs could speed up your overall process by allowing multiple reloads to load from the qvd instead of going to
the database over the slow WAN link. The QVD should live at the client end of the link where the qvw is reloading.
39: If the data source is constantly changing (such as portfolio management software) can we refresh qvds frequently?
Will this overburden the process?
QVDs may be refreshed frequently. Exactly how frequently depends on your data volumes and architecture. Refreshing
every 30 minutes is common, and I have seen intervals of 5 minutes. Frequent refresh of large volumes usually requires
incremental load, which is covered in the Reference Guide and the Forums.
40: IF add the BUFFER command before each load statement pulling from DBMS, the first execution pulls from the DB
but all after are incremental loads pulling from a file system created batch of QVDs?
The BUFFER prefix does not provide incremental load when loading from a DBMS. Subsequent reloads will load from
the buffered file system QVD, but new rows will not be fetched from the database. When used with a load from txt files,
BUFFER will provide automatic incremental load. Subsequent reloads will add new data from the file to the buffered
QVD.
41: I am running SBE Server so documents are reloaded right from the Documents folder. What is your recommendation
for location of the QVD generator documents? In other words, do you place them in the Documents folder alongside your
production QVWs?
I recommend putting the QVD generators in a separate "Loaders" folder. Make this a mounted folder in QVS and
schedule reloads as needed. Use NTFS permissions to hide the folder from standard AP users A number of questions were
asked about the QVX format. I havent had much experience with QVX yet. Rob Patterson has indicated he will schedule
a QlikLearn webinar specifically on the topic of QVX.
42: Does VX also have two types of load, optimized and not optimized?
No optimized load only applies to QVD.
43: What are the other differences between QVD and QVX?
QVD is a proprietary file format provided by QlikView for storage. Only QlikView software can read and write to QVD
files. The QVX is in an open format performance file for storage of QlikView data. A customer or third party can create
QVX files on any platform, without needing Qlikview software. QVD files will typically load faster than a QVX file.
44: Is QVX used as a source to other source systems or is it used to pull the data from source systems which has no
ODBC provider?
The use cases for QVX are still being discovered, and Im sure well see some interesting uses. The scenario I currently
understand is to provide data to Qlikview when there is no ODBC provider.
45: How can I create a QVX?
46: How do you write out to a QVX?
47: How can you read QVX from other software than Qlikview .
Documentation of the internal QVX format is available in the Qlikview SDK. The SDK can be installed from the
Qlikview Server installation package. Also look for examples in the Share Qlikviews section of QlikCommunity.
You can also create a QVX with a script STORE statement:

STORE mytable INTO mytable.qvx (qvx);


This is useful to generate a sample QVX for examination or testing

48.Types of loads in qlikview?


1. Laod from file: You can load your data from excel/msdb/txt etc files or by creating ODBC and connecting
to your database directly.
e.g.
LOAD BudgetYear,
Country,
Budget
FROM
[C:\Freight Budget 1996.xls]
(biff, embedded labels, table is Data$);
2. Inline Load: You can load data from file or can define the data within Qlikview and load (Inline) from
there. The inline data can be defined in the Inline Data
Wizard as: Insert > Load Data > Inline Data.
e.g.
LOAD * INLINE [
Display as
Dollars
Percentage
];
3. Resident Load: You can load data intoa Qlikview table. Then you can use that table as a resident table and
data from that table with transfomation and calculation
in resident load.
e.g.
emp1:
Select Name,DOJ,Salary,Bonus from employee;
Load Name,month(DOJ),Salary+Bonus as 'Total Payout' resident emp1;
You can also load from an existing field or a succeeding table.
4. Incremental Load (Differential/Delta Load): Suppose your database data volume is big and you do not
want to load the whole dataset everyday. Rather you want to load only the new/changed
records for optimization. Incremental load is th solution then.
In this case, the typical process is to load the new data from database, load the old data from QVD and
combine into a new QVD (repeated for
each table).
The implementation can be done in the following way (think about SCD)
i. Append only - tracked by number of records. The number of records previously read is tracked and only the
records from the last recodr till EOF
is appended
ii. Insert Only - I - (No Updt/Del) - The records inserted after the last execution of the script, are added. This
requires an SCD2 like effective data
field.
iii. Insert and Update - IU - (No Del) - Records inserted or updated after last script execution are taken care of.
Needs an effective date and PK
field.
iv. Insert Update and Delete - IUD - This is basically a full fledged sync with the database.
5. Binary Load: Binary load is used to share the entire dtamodel between 2 QVWs. Basically, the datamodel
of one QVW (Q1) is copied from RAM to disk in 0
and 1 form, for another QVW (Q2). Thus Q2 inherits entire data of Q1.
e.g. if you have a base QVW where the common metrices are designed and you want to enhance this to build
more business specific dashboards,

Binary load is a good option.


Also, if you want to do incremental load, the loading of high volume historical data can be done by binary
mothod, to utilize its speed.
Point to be noted here is: Binary has tobe the first statement of the script.
e.g.
Binary order.qvw;
Binary c:\order.qvw;
6. Add load: Simply put, this statement blindly appends data from one table to the data of another table,
having similar signature, during partial reload. It does not check for any duplicate. Hence, ADD LOAD or
ADD SELECT is usually follwed by distinct or a proper where clause.
e.g.
LOAD OrderID, OrderAmt from Order_May.csv;
ADD LOAD OrderID, OrderAmt from Order_June.csv;
This will simply concate data from Order_June to Order_May. But OrderID might be duplicated. Hence, this
statement can be properly shaped to
remove duplicate data as:
LOAD OrderID, OrderAmt from Order_May.csv;
ADD LOAD OrderID, OrderAmt from Order_June.csv Where Not Exists(OrderID);
7. Buffer load: With the BUFFER prefix, QVD files are created and maintained autmatically (QVDs cache or
buffer the result of the statement). This is handy
while doing incremenal load.
The QVD name is an internal one; 160 bit hex hash name comprising the entire the followingload/select
statement. It is stored in the location as
set in the User Preferences > Locations.
e.g.
Buffer without option:
buffer select * from Table1;
Internally a QVD file is created and the content of Table1 is internally stored in the QVD. This would be used
indefinitely untill some other method
is used.
buffer (incremental) load * from MyLog.log;
Same as incremental load. It is a typical solution for log files (text). Not for DB files.
buffer (stale after 7 days) select * from Table1;
It overwrites the current QVD and make a full load after 7(n) days. It can be used with DB tables. This is the
timestamp till the QVD would be used
7:How many object used in QlikView
10:Which graph will you used for two years difference sale

Anda mungkin juga menyukai