Migration of Qlik on-premises services to cloud services

Sree Sabarish
BI3 Technologies
Published in
6 min readJul 25, 2024

Introduction:

Migrating from Qlik Sense Enterprise on-premises to Qlik Cloud marks a pivotal shift in an organization’s data analytics strategy. This transition aligns with the growing trend of cloud adoption in business intelligence, offering enhanced scalability, accessibility, and reduced infrastructure management. Qlik Migration tool involves transferring the users, streams, apps and more from Qlik Sense Enterprise Client-Managed environment to Qlik Cloud.

Follow the below steps to migrate from Qlik Sense Enterprise on-premises to Qlik Cloud

Step 1: Setting up migration tool

A. Installing Qlik migration tool:

Download and unzip the given Qlik migration tool Zip file, that contains Qlik cloud migration app, migration scripts and migration worksheet excel file (used to gather information of users, roles, security rules, licenses, spaces, and more).

Qlik migration tool

B. Generating API key:

Login into the given link to enter Qlik Cloud. In Qlik Cloud (Qlik Management Console), Enable the API Key in settings and generate a new API Key by setting expiration to the key.

Generating API Key

C. Creating REST connection:

Import the app SaaS Migration 1.x.qvf into the Qlik Sense Enterprise

Qlik Sense Enterprise

Open SaaS Migration app from Qlik Sense Enterprise, create new data connection in Data load editor and select the data source as REST. In the URL section, enter the URL in the following format:

https://<tenant>.<region>.qlikcloud.com/api/v1/items
Creating Data Connection

In the Additional request parameters -> Query header section, enter the name as Authorization and value as Bearer followed by the generated API key which was created in the Qlik Cloud (Give space between Bearer and API key). Give the connection name and give test connection. Once the connection gets successful succeeded, then click the create button.

Creating REST connection

D. Configuring load script:

Go to Data load editor tab and open configuration section. Set the vu_tenant_fqdn variable as domain name of the tenant
(example: my_tenant.eu.qlikcloud.com). Set the vu_rest_connection_SaaS variable as Rest connection name. Set the vu_central_node_host_name variable as central host name or machine name. Once everything is modified, then click load data button.

Configuring scripts

Step 2: Setting up JWT Authentication

A. Create new virtual proxy:

In Qlik management console, open the virtual proxies which was under the configuration system section.

Qlik Management Console

Create a new virtual proxy and in the Identification section, Enter the any description name (example: JWT) and give any name to prefix (example: JWT). Under authentication section, choose the JWT for authentication method. Paste the certificate used to sign/decrypt JWT in “JWT certificate. To find the certificate, go to

C:\ProgramData\Qlik\Sense\Repository\Exported Certificates\.Local Certificates

Open server.prem file in the text editor. Copy the whole content in the file and then paste it in the JWT certificate section. Give the value for JWT attribute for user ID as userId and JWT attribute for user directory as userDirectory. In the load balancing section, give the server node as central and then click apply.

B. Generate JWT:

a) Open https://jwt.io
b) Go to debugger tab and choose the algorithm as RS256.
c) Paste the below given JSON code in the payload field.

{
"userId": "User",
"userDirectory": "DOMAIN"
}

d) In the verify signature field, in first field paste the server.prem and in second field paste the server_key.prem contents. Both files are located in below given file location.

C:\ProgramData\Qlik\Sense\Repository\Exported Certificates\.Local Certificates

e) Copy the JWT generated in the left field and test it.

C. Test the generated JWT:

a) Install ModHeader Extension from the Chrome Web Store.
b) Go to ModHeader and set the header name as Authorization and header value as Bearer yourjwt.
c) Then, try to go to the Qlik Sense hub:

https://{your server name}/{prefix for JWT virtual proxy}/hub/

Step 3: Setting up migrating scripts

A. Install Chocolatey:

Install Chocolatey by given below given command in the PowerShell

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

or Install Chocolatey by following the steps from below given website
Chocolatey Software | Installing Chocolatey

B. Install Qlik-Cli for windows:

Open PowerShell and type the below given command

choco install qlik-cli

C. Connect to SAAS tenant:

Type the below given command in the PowerShell,

qlik context init

Now enter the tenant URL and click enter, then paste the generated API key in the Qlik management console.

Connecting to SaaS Tenant

Step 4: Migrating using Qlik-Cli

A. Configure script file:

Unzip the downloaded Qlik migration tool file that contains PowerShell scripts, migration app and data. Data folder contains the list of CSV files such as Apps, links, spaces, users, etc. Open 0_globals.ps1 PowerShell script file and need to configure the variable to connect with Qlik SAAS tenant.
Set the QlikSaaSContext variable as domain name of the tenant
(example: my_tenant.eu.qlikcloud.com). Set QlikWindowContext variable as Qlik sense enterprise domain name on windows. Set tenantid variable as
Tenant Id of the Qlik SAAS. To find the tenant ID, navigate to the ‘About’ tab in the Qlik SaaS tenant, and from there, find the tenant ID. Finally, save the 0_globals.ps1 file.

Configure script file

B. Exporting data:

Open the configured SaaS migration app. The app includes sheets such as applications, data connections, users, streams and spaces that is undergoing migration. Open the sheet which need to migrate, that contains the information that are going to migrate. Export the data by right clicking and save it as CSV file. In Qlik migration tool file, Replace the exported csv data with the respected data in the Data folder.

Example: If need to move the users from on-premises to cloud, download the csv data file from SaaS migration app and replace the csv data in data folder.

Exporting user’s data

C. Migrating from on-premises to cloud using Qlik-Cli:

Open PowerShell and change the file path directory to the location of the Qlik migration tool file. Add ‘.\’ to the front of the PowerShell script file name and run the necessary PowerShell script for the migration. The Qlik migration tool file will contain the PowerShell Script file name. To use it, just copy the file name, paste it into PowerShell, and hit Enter. Return to the browser and launch the Qlik Cloud Tenant after the script has completed successfully and without any errors. To view the newly added migrated data, refresh the page.

(Example: Need to migrate users, open the PowerShell and copy the file name of the user script file in the Qlik migration tool file. After that, run the following command to migrate user data).

Example : .\1_setusers.ps1
Migrated user’s from on-premises

Conclusion:

The above migration steps can significantly reduce manual processes and streamline the transition. This automation not only saves time but also minimize the risk of human error during the migration. Overall, migrating Qlik to the cloud with migration tools can lead to a more efficient and seamless transition while reducing the reliance on manual processes.

About Us

Bi3 has been recognized for being one of the fastest-growing companies in Australia. Our team has delivered substantial and complex projects for some of the largest organizations around the globe, and we’re quickly building a brand that is well-known for superior delivery.

Website: https://bi3technologies.com/

Follow us on,
LinkedIn:
https://www.linkedin.com/company/bi3technologies
Instagram:
https://www.instagram.com/bi3technologies/
Twitter:
https://twitter.com/Bi3Technologies

--

--