Comparing QlikView and Qlik Cloud Analytics
This topic describes some of the key similarities and differences between QlikView and Qlik Cloud Analytics.
The document and the app
The QlikView document and the Qlik Cloud Analytics app are similar in their architecture. Both are containers for the objects that are used to present data for analysis. They can contain data connections, load scripts, data models, sheets, charts, variables, and so on.
Development and consumption
In both QlikView and Qlik Cloud Analytics, you need to build an app or document before you can analyze the data. This means:
- Adding data to a new or existing application:
In QlikView this involves creating and running a load script that defines what data to load into the app. The load script pulls data from one or several data sources into the app, and then creates the data model that is the foundation for all analysis.
In Qlik Cloud a user can create an application from data already in the data catalog, from data files, from existing data connections either via the traditional script editor or with the Data Manager's drag and drop user interface.
- Creating a user interface is needed for the analysis. This means creating different visualizations (for example bar charts, pie charts, tables), different expressions to define the different KPIs, and different selection objects (list boxes, sliders, input boxes, and so on). It also means grouping different components visually, for example on sheets, so the data is presented to a user that is not familiar with the content.
Traditionally, these two steps have been made by a dedicated business intelligence expert who is not the primary consumer of the data. The primary consumer of data is a business user who consumes the app. This scenario is often referred to as guided analytics, since the business user is guided to some extent in what data to analyze. Consumers are not, however, guided in what selections to make. They still have total freedom to select anything in the app and in any order.
Both Qlik Cloud and QlikView can be used for guided analytics.
Qlik Cloud Analytics offers industry-leading modern analytics capabilities across a full range of users and use cases — from self-service analytics to interactive dashboards and applications, conversational analytics, metadata catalog and lineage, mobile analytics, reporting and alerting. It augments and enhances human intuition with AI (artificial intelligence) powered insight suggestions, automated machine learning, automation, and natural-language interaction. This is a change in thinking from QlikView.
Consequently, Qlik Cloud Analytics is a better tool for self-service. In QlikView, some self-service is still possible, but it demands a much higher level of technical proficiency from the user.
In QlikView, you need to have the desktop version to be able to develop an app. Development is done locally, without a connection to a QlikView server. QlikView Desktop only runs on Microsoft Windows.
Qlik Cloud Analytics is a cloud based collaborative environment for developing and sharing content and insight. This means that users can have different operating systems on their computer. The user interface is highly intuitive and provides simple authoring tools that can help users of all levels create advanced charts and visualizations.
Qlik Cloud Analytics also provides a fully native conversational analytics experience, Insight Advisor, which uses natural language processing to understand user intent and learns with each interaction to reveal associations, correlations, and trends within your data.
Moving data from source to analysis
In both QlikView and Qlik Cloud Analytics, data is loaded at a specific point in time and then analyzed in memory.
The analysis is made on a data set that is a snapshot of the real data. The snapshot is from the point in time when the load script for the app was run. The analysis is never in real time, although you can make it near-real-time by running the load script more frequently, for example every 15 seconds.
From an administrative perspective, this means that you first create the app, and then set up a scheduler to refresh the data (run the script) according to your business requirements.
In QlikView this requires a manual reload or saving the application to a source folder and subsequently scheduling the reload with QlikView Publisher and QlikView Server.
With Qlik Cloud Analytics, users with the appropriate permissions can easily reload or schedule reloads of their applications securely in the Qlik Cloud environment.
QlikView does not have a library of data connections. It utilizes files or databases via the Microsoft OLE DB/ ODBC interface. To do so, you must install a driver to support your database management system (DBMS) and you must configure the database as ODBC data source. This is done on your PC and the Qlik Server. For web connections like Amazon S3, Snowflake, and Azure, you must download and install Qlik Web Connectors.
Qlik Cloud Analytics has a library of built-in data connections that can be used to connect to files, on premise databases as well as cloud data sources. The library allows data sources to be shared between users and applications. It is also easier to apply governance to data connections.
In QlikView, you do not have a graphical interface to load data. The app developer has to create the load script in the script editor.
In Qlik Cloud Analytics, you can also create the load script in the script editor. Alternatively, a cloud user can create an application from data already in the Data Catalog, from data files, from existing data connections either via the traditional script editor or with Data manager drag and drop graphical interface.
The script syntax in QlikView and Qlik Cloud Analytics are mostly identical. There are, however, some notable differences in how the scripts are made.
Qlik Cloud does not support the use of Windows file system paths in functions, statements, and variables. Instead, library connections, which are connection strings to data and script files, are used, for example, lib://DataFiles/myData.txt.
Several statements, variables, and functions applicable to QlikView and Client-Managed Qlik Sense (in standard or legacy modes) cannot be used or have limitations in Qlik Cloud. Generally, these limitations are imposed on statements, variables, and functions that are associated with Windows file system paths.
Using unsupported statements in the data load script produces an error when the load script runs. Error messages can be found in the script log file. Using unsupported variables and functions does not produce error messages or log file entries. Instead, the function returns NULL.
There is no indication that a variable, statement, or function is unsupported when you are editing the data load script.
Applicability of variables, statements, and functions in Qlik Cloud
If you plan on re-using data load scripts from QlikView or client-managed Qlik Sense in Qlik Cloud, consult the following tables to see which variables, statements, and functions are supported and their requirements.
|Returns the drive letter of the first floppy drive found, normally a:.|
|Returns the drive letter of the first CD-ROM drive found. If no CD-ROM is found, then c: is returned.|
|Returns the browse string to the Qlik Sense executable.|
|Returns the root directory of the Qlik Sense executable.|
|Returns the browse string to the current Qlik Sense app.|
|Returns the root directory of the current Qlik Sense app.|
|Returns the browse string to Windows.|
|Returns the root directory of Windows.|
|$(include=...)||Supported input: Path using library connection||The Include/Must_Include variable specifies a file that contains text that should be included in the script and evaluated as script code. It is not used to add data. You can store parts of your script code in a separate text file and reuse it in several apps. This is a user-defined variable.|
Regular script statements
|Supported input: Path using library connection||The binary statement is used for loading data from another app.|
|Connect||Not supported||The CONNECT statement is used to define Qlik Sense access to a general database through the OLE DB/ODBC interface. For ODBC, the data source first needs to be specified using the ODBC administrator.|
|Supported input: Path using library connection||The Directory statement defines which directory to look in for data files in subsequent LOAD statements, until a new Directory statement is made.|
|Execute||Not supported||The Execute statement is used to run other programs while Qlik Sense is loading data. For example, to make conversions that are necessary.|
|Supported input: Path using library connection||The LOAD statement loads fields from a file, from data defined in the script, from a previously loaded table, from a web page, from the result of a subsequent SELECT statement or by generating data automatically.|
|Supported input: Path using library connection||The Store statement creates a QVD, or text file.|
Script control statements
|Statement||Supported input||Returned output||Definition|
filelist mask/dirlist mask
|The filelist mask syntax produces a comma separated list of all files in the current directory matching the filelist mask. The dirlist mask syntax produces a comma separated list of all directories in the current directory matching the directory name mask.|
|Function||Supported input||Returned output||Definition|
|Library connection||Returns the value of the meta tags of different media files as text.|
|Library connection name||Returns the active connect string for ODBC or OLE DB connections.|
|Library connection||The FileDir function returns a string containing the path to the directory of the table file currently being read.|
|Library connection||The FilePath function returns a string containing the full path to the table file currently being read.|
|The FileSize function returns an integer containing the size in bytes of the file filename or, if no filename is specified, of the table file currently being read.|
|The FileTime function returns a timestamp in UTC format of the last modification of a specified file. If a file is not specified, the function returns a timestamp in UTC of the last modification of the currently read table file.|
Returned output: Absolute path
|The GetFolderPath function returns the value of the Microsoft Windows SHGetFolderPath function. This function takes as input the name of a Microsoft Windows folder and returns the full path of the folder.|
|Library connection||This script function returns the XML-header timestamp from a QVD file, if any is present, otherwise it returns NULL. In the timestamp, time is provided in UTC.|
|Library connection||This script function returns the name of field number fieldno in a QVD file. If the field does not exist NULL is returned.|
|Library connection||This script function returns the number of fields in a QVD file.|
|Library connection||This script function returns the number of records currently in a QVD file.|
|Library connection||This script function returns the name of the table stored in a QVD file.|
|This function returns a string containing the full path to the current Qlik Sense app.|
|Returns the value of a named registry key with a given registry path. This function can be used in chart and script alike.|
In QlikView, the app developer must manually create the calendar.
In Qlik Cloud Analytics, a calendar is created automatically by the data manager. The calendar uses a feature called derived fields, which does not exist in QlikView.
Load from web files
In QlikView, you can have a Load statement that loads directly from a web table.
In Qlik Cloud Analytics, you load the data from a web file data connection.
Section access can be used in both QlikView and Qlik Cloud Analytics to define authorization. The basic functionality is identical. Section access compares the externally supplied user ID with the content of the authorization table.
However, the content of this table differs slightly between the two products.
In QlikView, the name of the authenticated user should be stored in a field called NTNAME. In Qlik Cloud Analytics the corresponding field is called USERID. In both cases, this field is used for any authenticated user, including when Windows integrated security is not used.
In QlikView, security groups can be stored in NTNAME. In Qlik Cloud Analytics, security groups should be stored in a separate field called GROUPS.
In QlikView, there are additional fields NTSID and NTDOMAINSID that can be used for authorization. They both refer to the internal security IDs of Windows. These fields do not exist in Qlik Cloud Analytics.
In QlikView, the legacy fields SERIAL, USERID and PASSWORD should not be used in order to ensure a secure environment. These fields do not exist in Qlik Cloud Analytics.
In both products, a proper security level is achieved if the app is published on a server. However, if a file with section access is opened with the desktop version, the two products behave differently. In QlikView Desktop, NTNAME is matched against the Windows user name supplied by the operating system, and if it is correct, the user can open the file. In Qlik Sense Desktop, the program will refuse to open the file.
Document and content management
In both products, there are a number of properties at the app or document level. These include app name, theme, and styling. In QlikView, all relevant properties are gathered in the document properties window. In Qlik Cloud Analytics, properties can be accessed from the app overview.
In QlikView, there is an expression overview dialog that lists all expressions in the app. You can search and replace strings among all expressions in the app.
In Qlik Cloud Analytics, you can use master items to define dimensions and measures that you can use in many places in the app.
The Management Console
Qlik Cloud has a Management Console for managing licenses, user assignments, spaces, themes, and extensions. The Management Console should not be confused with the Qlik Management Console (QMC), which is used for managing QlikView. For more information about the Management Console for Qlik Cloud, see Management Console.
Distribution of apps
In Qlik Cloud, apps are organized in spaces. Spaces are areas in the cloud hub where apps are stored. A shared space is used to develop apps collaboratively and control access to apps. For more information, see Managing spaces.
Apps in the cloud hub do not automatically update when their data sources are updated. You can manually reload your apps or schedule reloads. For more information, see Reloading app data in the cloud hub.
Qlik Cloud manages security by assigning access permissions to users and spaces. A user with tenant admin role can add and remove access for users. For more information, see User management and Managing spaces. If you are maintaining a mixed environment of both a Qlik Cloud and QlikView environments, see Mixed environments.