A Comprehensive Strategy for Moving from QlikView to Qlik Cloud

Introduction

With the increasing adoption of cloud-based analytics, organizations are now exploring the benefits of Qlik Cloud and considering a transition from QlikView. However, this move can be challenging and requires a well-planned approach. In a previous insight by Reinout Lesage the main differences between Qlik Sense Enterprise and Qlik Sense Enterprise SaaS were highlighted. In this insight, we will explore a comprehensive strategy for transitioning to Qlik Cloud, including an assessment phase, app conversion to Qlik Sense, and app refactoring in Qlik Cloud.

Assessment

Before you start the transition process, you need to assess your current QlikView environment to identify any potential roadblocks that might impede the transition. This includes security and governance, your QlikView apps, and accessing your data.

Security and Governance

By default, Qlik Cloud uses your Qlik Account for authorization. However, it is recommended to use an external identity provider, like Azure Directory, to authenticate. Using an external identity provider will allow you to manage access to your Qlik tenant and spaces individually.

QlikView and Qlik Sense allow the use of rules and custom properties to determine user access. However, this functionality is not available in the Cloud version. Instead, Qlik Cloud ties security to specific groups or individual users. Users can define security measures at either the space level, which pertains to apps and data, or at the system level, which applies to administrative roles. Additional information on security can be found here.

Apps

The governance dashboard is a useful tool for assessing your QlikView apps. This app can be downloaded here (for Qlik Sense here) and opened in QlikView to help govern your apps. Within the governance dashboard, you'll find the 'Sense Profile Score' which provides a relative score based on the app's compatibility with Qlik Sense. This score is calculated by factoring in the app adoption rate (frequency of app usage), sheet object density (amount of objects per sheet), and object compatibility with Qlik Sense. However, certain elements such as triggers, macros, layers, and specific chart properties are not taken into account. It's important to note that while the Sense Profile Score can help determine the order in which to migrate apps, it does not indicate the complexity of migrating to Qlik Sense.

Image
Governance Dashboard Profile Score

Figure 1 - Governance Dashboard Sense Profile Score

As part of the assessment phase, it's important to clean your Qlik environment by eliminating unused apps before migration. To achieve this, it's recommended to adopt an opt-out strategy for your production apps, while using an opt-in strategy for your test apps. Additionally, any retired apps should be exported and archived to long-term storage outside of the Qlik deployment. An opt-out strategy entails requesting app owners to provide a list of apps that can be retired, while an opt-in strategy involves requesting a list of apps that need to be migrated from app owners.

Accessing your data

There are two main options for accessing your on-premise data within Qlik Cloud. The first option is Qlik DataTransfer. QDT is a tool designed to push on-premises data to a Qlik Cloud tenant. It has been designed as a tool to support small to medium-sized organizations. QDT supports loading data from

  • Data Connections: Upload data from an existing or newly created data connection.
  • Qlik apps: Useful when you want to apply complex transformations on the data before uploading to the cloud.
  • Folders: When the data in these folders change, QDT automatically uploads the updated files to your SaaS tenant.

The data can be transferred either manually or on a schedule.

Image
Qlik DataTransfer

Figure 2 Qlik DataTransfer

Note that QDT, as a single-user tool, has limits on the number of monitored files, requires a third-party solution and does not support web proxies. Furthermore, the QDT software should be installed on a dedicated Windows Server. Do not install it on the actual data source server or on a server that already has Qlik Sense Enterprise on Windows or Qlik Data Gateway installed. Detailed information on the limitations can be found here.

The second option for accessing your on-premise data is by using Qlik Data Gateway. Two types of gateways exist, namely the direct access gateway and the data movement gateway. For accessing on-premise data within Qlik Cloud the direct access gateway should be used. It works as follows:

  1. The Direct Access gateway establishes a mutually authenticated and encrypted connection to Qlik Cloud, using HTTPS.
  2. Qlik Cloud sends a load statement (query) to the Direct Access gateway.
  3. The Direct Access gateway relays the query to the relevant data source.
  4. The data is pushed (streamed) directly from the data source to Qlik Cloud.
Image
Qlik Data Gateway - Direct Access

Figure 3 Qlik Data Gateway - Direct Access
 

When using Qlik Data Gateway – Direct Access, some limitations need to be considered as well.

  • If the Direct Access gateway server is rebooted during a Qlik app reload, the reload will fail.
  • Similarly to QDT, the Data Gateway software should be installed on a dedicated Window Server. Do not install it on the actual data source server or on a server that already has Qlik Sense Enterprise on Windows or Qlik DataTransfer installed.
  • All ODBC data sources available in Qlik, except ServiceNow, are supported. The Data source connectors supported by Qlik Data Gateway – Direct Access appear twice in the Add data connection dialog. The first will only display the data source name, while the second will display the data source name followed by (via Direct Access gateway)

Both QDT and Data Gateway – Direct Access are viable options for accessing on-premise data. QDT is particularly useful if you already have folders of QVDs and need to push them into Qlik Cloud, or if it addresses a connectivity requirement that Qlik Data Gateway does not support. However, in general, using the Data Gateway is recommended. It provides a pull-like experience that connects you to on-premises data sources with minimal load script changes, requiring only an update to your LIB statement. On the other hand, with QDT, you may need to make remote desktop connections to the on-premise server to adjust how data is sent to the cloud or when data is loaded. Therefore, we recommend exploring Qlik Data Gateway first and then considering QDT as an alternative option.

App Conversion to Qlik Sense

Once you’ve completed the assessment phase, the next step is to convert your QlikView applications to Qlik Sense. This can be done in one of two ways: either manually or by using the QlikView Converter Tool.

Manual conversion involves rebuilding the application in Qlik Sense. While you can copy the script from QlikView since both platforms use the same engine, the visualizations themselves will need to be rebuilt. This method is most suitable for apps without visualizations, like an extraction or transformation app, because it's relatively straightforward and easy to implement.

The QlikView converter tool automatically converts your QlikView app to a Qlik Sense app, with the added benefit of retaining any variables and master items defined in the original QlikView app. Additionally, any objects and measures used in the original app will be available in the Qlik Sense app as master items, making the conversion process more streamlined and efficient.

Limitations of the QlikView Converter:

  • The QlikView app should be less than 500 MB. We recommend exporting the app without data to circumvent this.
  • Containers, triggers, macros, conditional statements, text boxes, object layers, custom chart colours and expressions in list boxes are not supported.

Differences between QlikView and Qlik Sense

Although QlikView and Qlik Sense use the same engine, there are some differences to be aware of. For instance, QlikView does not distinguish between uppercase and lowercase values when filtering certain fields in the data load editor, while Qlik Sense does. To work around this issue, you can use the upper() function. Additionally, while single and double quotes behave the same way in QlikView (as a search), in Qlik Sense, you should use single quotes for a literal string (such as '2023') and double quotes for a search (such as “202*”). 

Section access functions the same way in both tools, but the content of the table differs slightly. Firstly in QV the field NTNAME is used for any authenticated user, while in QS the field is called USERID. Secondly, in QV security groups can be stored in NTNAME. In QS, security groups should be stored in GROUPS. Finally, the fields NTSID, NTDOMAINSID, SERIAL, and PASSWORD do not exist in QS.

There is no native alternative available for certain QlikView objects: containers of type grid, input fields, cyclic groups and drill-down field selections (with path function).

App Repointing and Refactoring in Qlik Cloud

The final step is to repoint and refactor your apps in Qlik Cloud. Simply reconnect the apps to the correct source and rebuild them with optimizing for Qlik Cloud in mind. This phase also involves reviewing your data security and access controls to ensure that they meet your organization’s security requirements. 

Conclusion

Transitioning from QlikView to Qlik Cloud is a complex process that requires careful planning and execution. By following the above strategy, you can make a successful transition to Qlik Cloud and take advantage of the benefits of cloud-based analytics. Remember that this is a continuous process, and you'll need to keep optimizing your Qlik Sense apps to take full advantage of the cloud. If you require assistance with transitioning to the cloud, don’t hesitate to reach out for expert guidance and support.

For more insights & research visit the element61 Knowledgebase at www.element61.be