Book Image

QlikView for Developers

By : Miguel Angel Garcia, Barry Harmsen
Book Image

QlikView for Developers

By: Miguel Angel Garcia, Barry Harmsen

Overview of this book

QlikView is one of the most flexible and powerful Business Intelligence platforms around. If you want to build data into your organization, build it around QlikView. Don't get caught in the gap between data and knowledge – find out how QlikView can help you unlock insights and data potential with ease. Whether you're new to QlikView or want to get up to speed with the features and functionality of QlikView, this book starts at a basic level and delves more deeply to demonstrate how to make QlikView work for you, and make it meet the needs of your organization. Using a real-world use-case to highlight the extensive impact of effective business analytics, this book might well be your silver bullet for success. A superb hands-on guide to get you started by exploring the fundamentals of QlikView before learning how to successfully implement it, technically and strategically. You'll learn valuable tips, tricks, and insightful information on loading different types of data into QlikView, and how to model it effectively. You will also learn how to write useful scripts for QlikView to handle potentially complex data transformations in a way that is simple and elegant. From ensuring consistency and clarity in your data models, to techniques for managing expressions using variables, this book makes sure that your QlikView projects are organized in a way that's most productive for you and key stakeholders.
Table of Contents (24 chapters)
QlikView for Developers
Credits
About the Authors
Acknowledgements
About the Reviewer
www.PacktPub.com
Customer Feedback
Preface
Index

The technology and components behind QlikView


Now that we have seen how QlikView works from the point of view of a business user, it is time to get a little more technical. Let's take an in-depth look at the various components that QlikView consists of.

One of the key elements of QlikView is that it utilizes an in-memory database. Compared with a disk-based database, this offers a great advantage when it comes to performance. While disk-access time is measured in milliseconds, RAM access time is measured in nanoseconds, making it many orders of magnitude faster.

But hold on... you may say, "my hard-disk has much more space than I have RAM in my PC; won't that mean that I can only load limited amounts of data into memory?"

This is a very valid question. Fortunately, there are two factors which counter this potential problem:

  • Cheap memory and the advancement of 64-bit processors and operating systems: While 1 MB of memory, in 1957, would have cost a staggering US $411 million, nowadays, a gigabyte can be had for less than US $5. Coupled with 64-bit operating systems, which can address much larger amounts of RAM than 32-bit systems (up to 4 TB on Windows 2012, and up to 24 TB on Windows 2016), it is feasible and (relatively) affordable to load huge amounts of data into RAM.

  • Clever compression: QlikView utilizes some sophisticated compression algorithms (and some common sense, such as de-duplicating data) to significantly reduce the amount of memory that is required to store data. Typically, on-disk data is compressed to 10 percent of its original size when it is loaded into QlikView.

These two factors make it possible to create QlikView applications that contain hundreds of millions—even billions—of records.

The way the data flows

While the in-memory database is excellent technology, it cannot function on its own. Functionally, data flows through QlikView in the following manner:

  • It starts with the source data. QlikView can load data from a large variety of sources, including ODBC, OLEDB, flat files (Excel, CSV, and so on), XML, and REST interfaces (for extracting data from web-based APIs). There are also many different connectors, ranging from big enterprise applications such as SAP to social networks such as Twitter.

  • The data is loaded into QlikView using a load script. This script can be used to extract, transform, and load data into the in-memory data model or to store it to the disk in intermediary data files called QVD files.

  • Data in the in-memory database is stored in an unaggregated format, meaning all aggregations are calculated on the fly. This simplifies data modeling in QlikView, as there is no need for separate aggregation tables.

  • Selections made by the user automatically cascade throughout the entire data model and these changes are shown by QlikView's presentation engine.

  • QlikView applications can be presented in multiple clients. The Windows application we used earlier is an example of a client; other similar examples will be covered in the next section.

When QlikView use expands

While QlikView deployments within an organization often start with a single (or few) local installations, they often do not stay that way. As the use of QlikView expands, keeping track of different versions, dealing with huge amounts of data, reloading and distributing applications, and making sure that only the right people have access to applications becomes increasingly hard when using only the Windows client.

Fortunately, Qlik offers a large range of components that ensure that QlikView can scale from a local deployment on a laptop all the way to an enterprise-wide solution. These components can be classified into three classes:

  • Create content

  • Reload, publish, and distribute content

  • Consume content

It is also shown in the following screenshot:

Create content

The Windows application we used earlier to navigate and analyze the data in Movies Database cannot only be used to consume content, but it is also the main tool with which to create QlikView documents. As this book is focused on developers, this will be the main focus for the remaining chapters.

Reload, publish, and distribute content

When QlikView deployments expand, it becomes impractical to update and distribute files manually. Also, data is loaded into RAM when using a local Windows application to open QlikView files. When working with huge amounts of data, each PC would also need a huge amount of RAM. This might work for developer PCs, but it is hardly a cost-effective solution to outfit each user in the organization with large amounts of RAM.

Fortunately, QlikView has three components to mitigate these potential roadblocks to broader adoption:

  • QlikView Publisher: This component can take care of reloading, reducing, and distributing the QlikView documents. Jobs can be scheduled or triggered by external events. When QlikView Publisher has not been licensed, QlikView Server can handle the task of reloading QlikView documents.

  • QlikView Server: This is a centralized server which can load QlikView documents into memory and allows clients to interact with these documents remotely by using one of the QlikView clients. In addition to providing a central place where documents are stored, this also has the advantage of clients not needing huge amounts of RAM and CPU cores. The clients do not need to load all of the data locally and the processing power of the server is used for calculating and aggregating data.

  • QlikView Access Point: This is a portal through which users can access their documents

Consume content

QlikView documents can be consumed in multiple ways. While this book mainly focuses on the QlikView desktop Windows application, it is interesting to take note of the other possibilities for deployment:

  • Web browser (IE plugin or AJAX client): When accessing a QlikView document through the web browser, the AJAX client is a safe option as it offers great flexibility as it does not require any software to be installed and works with most modern browsers. The second option is the Internet Explorer plugin. As its name implies, it is a plugin (ActiveX object) made to be used with Microsoft's Internet Explorer. While this plugin offers an experience that is closest to the native Windows application, it only works in Internet Explorer and requires the QlikView plugin software to be installed on each client PC.

  • iPad and other tablets: Tablets can access QlikView by using the AJAX client in their browser. The AJAX client automatically detects when a tablet is being used and switches to a touch-enabled interface. This makes it possible to develop a single QlikView document which can then be rolled out to both regular computers and mobile devices.

  • iPhone, Android, and other smartphones: Mobile devices with a smaller screen, such as most smartphones, can use a special version of the AJAX client: the small device version. Instead of displaying complete worksheets, which would be unreadable on a small screen, this client shows each of the objects (chart, table, and so on) one by one.

  • QlikView Workbench: Using QlikView Workbench, objects from QlikView documents can be embedded within .NET-based web solutions

When going through this list of clients, you probably noticed that the AJAX client is the most versatile of all clients. While it hasn't always been that way, nowadays, the visual and functional differences between the AJAX client and the ActiveX client are small enough for the AJAX client to be considered the preferred client for the consumption of QlikView documents by users.