Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases now! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
QlikView for Developers

You're reading from   QlikView for Developers Design and build scalable and maintainable BI solutions

Arrow left icon
Product type Paperback
Published in Jun 2017
Publisher Packt
ISBN-13 9781786469847
Length 546 pages
Edition 1st Edition
Arrow right icon
Authors (2):
Arrow left icon
Miguel  Angel Garcia Miguel Angel Garcia
Author Profile Icon Miguel Angel Garcia
Miguel Angel Garcia
Barry Harmsen Barry Harmsen
Author Profile Icon Barry Harmsen
Barry Harmsen
Arrow right icon
View More author details
Toc

Table of Contents (17) Chapters Close

Preface 1. Meet QlikView FREE CHAPTER 2. What's New in QlikView 12? 3. Seeing is Believing 4. Data Sources 5. Data Modeling 6. Styling Up 7. Building Dashboards 8. Scripting 9. Data Modeling Best Practices 10. Basic Data Transformation 11. Advanced Expressions 12. Set Analysis and Point In Time Reporting 13. Advanced Data Transformation 14. More on Visual Design and User Experience 15. Security 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:

When QlikView use expands

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.

You have been reading a chapter from
QlikView for Developers
Published in: Jun 2017
Publisher: Packt
ISBN-13: 9781786469847
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $19.99/month. Cancel anytime