Qlik Community

Ask a Question

Blogs

Hear directly from Qlik employees in our ten unique blogs.

cancel
Showing results for 
Search instead for 
Did you mean: 

Qlik Academic Program Blog

This forum was created for professors and students using Qlik within academia.

Qlik Product Innovation Blog

Learn about what's new across all of the products in our growing Qlik product portfolio.

Support Updates Blog

Important and useful support information about end-of-product support, new service releases, and general support topics.

Qlik Design Blog

All about product and Qlik solutions: scripting, data modeling, visual design, extensions, best practices, etc.

Community News

Updates about Qlik Community Platform as well as news and announcements.

Qlik Education Blog

On this forum you can access and follow the latest updates of our courses and programs with the Qlik Education team.

Qlik Technical Bulletin Blog

Information on all new product releases, connectors, beta programs, and technical product information.

Qlik Architecture Deep Dive Blog

Deep dives into specific back-end technologies which allow for the extension of Qlik to fit the needs of the enterprise.

Qlik Customer Success Blog

All about Qlik's Voice of the Customer program and Customer Success initiatives

Product Insight Blog

Learn about what's new in the Qlik Product Insight & Ideas forum.

Recent Blog Posts

  • Image Not found

    Support Updates Blog

    The Reload Analyzer for Qlik SaaS customers is available NOW!

    Hello Qlik Users!  “How can I monitor reloads across the tenant?”  “How can I see what data connections and files are being used?”   “How can I view reload concurrency and peak reload RAM over time?”  These are a few of the questions we frequently hear. To enable you to find better answers for those, we are happy to share with you the new Reload Analyzer for Qlik SaaS!    The Reload Analyzer will help answer those questions and more! The app pro... Show More

    Hello Qlik Users! 

    “How can I monitor reloads across the tenant?” 

    “How can I see what data connections and files are being used?” 

     “How can I view reload concurrency and peak reload RAM over time?” 

    These are a few of the questions we frequently hear. To enable you to find better answers for those, we are happy to share with you the new Reload Analyzer for Qlik SaaS! 

    Jamie_Gregory_0-1627925970959.png

     

    The Reload Analyzer will help answer those questions and more! The app provides insights on: 

    • Number of reloads by type (Scheduled, Hub, In App, API) and by user 
    • Data connections and used files of each app’s most recent reload 
    • Reload concurrency and peak reload RAM 
    • Reload tasks and their respective statuses 
    • And much more! 

     

    Jamie_Gregory_1-1627925970960.png

    (Available sheets) 

     

    The Reload Analyzer uses Qlik’s RESTful APIs to fetch all the required data and stores the history in QVD files, allowing for efficient reloads and historical analysis. 

    A few things to note: 

    • This app is provided as-is and is not supported by Qlik Support. 
    • This app leverages an undocumented API (reload-tasks) that is experimental, and relies on the users API, which is also experimental. 
    • It is recommended to always use the latest app. 
    • Information is not collected by Qlik when using this app. 

     

    The app as well as the configuration guide can be found at the bottom of this post. This app was created internally and will be supported by the developers of the app. They will be following this thread so be sure to post any questions or issues here so they can be addressed. 

    Be sure to subscribe to the Qlik Support Updates Blog by clicking the green Subscribe button to stay up-to-date with the latest Qlik Support announcements. Please give this post a like if you found it helpful! 

     

    Kind regards, 

    Qlik Digital Support Team 

    Show Less
  • Image Not found

    Support Updates Blog

    The Entitlement Analyzer for Qlik Sense Enterprise SaaS customers is available N...

    Hello Qlik Users!  How can I track the usage of my Tenant over time? How are my entitled users using the Tenant?  How can I better understand the usage of Analyzer Capacity vs. Analyzer & Professional Entitlements?  These are a couple of the questions we frequently hear. To enable you to find better answers for those, we are happy to share with you the new Entitlement Analyzer for Qlik Sense Enterprise SaaS!  The Entitlement Analyzer will help an... Show More

    Hello Qlik Users! 

    How can I track the usage of my Tenant over time? How are my entitled users using the Tenant? 

    How can I better understand the usage of Analyzer Capacity vs. Analyzer & Professional Entitlements? 

    These are a couple of the questions we frequently hear. To enable you to find better answers for those, we are happy to share with you the new Entitlement Analyzer for Qlik Sense Enterprise SaaS! 

    Entitlement Analyzer.pngThe Entitlement Analyzer will help answer those questions and more! The app provides insights on: 

    • Entitlement usage overview across the Tenant 
    • Analyzer Capacity – Detailed usage data and a predication if you have enough 
    • Understand how users are using the system and if they have the right Entitlement assigned to them 
    • And much more! 

     

    (Available sheets)(Available sheets)

     

    The Entitlement Analyzer uses a new API Endpoint to fetch all the required data and will store the history in QVD files to enable even better Analytics over time. 

     A few things to note: 

    • This app is provided as-is and is not supported by Qlik Support. 
    • It is recommended to always use the latest app. 
    • Information is not collected by Qlik when using this app. 

     

    The app as well as the configuration guide can be found at the bottom of this post. This app was created internally and will be supported by the developers of the app. They will be following this thread so be sure to post any questions or issues here so they can be addressed. 

    Be sure to subscribe to the Qlik Support Updates Blog by clicking the green Subscribe button to stay up-to-date with the latest Qlik Support announcements. Please give this post a like if you found it helpful! 

    Kind regards, 

    Qlik Digital Support Team 

    Show Less
  • qlik-community-blogs.jpg

    Qlik Design Blog

    Qlik Sense Wordpress Plugin

    There are a lot of people that use Wordpress as their company's portal. If you are one of these people then, you may find this plugin very useful. You can create a mashup from within wordpress, using the Capabilities API, without writing a single line of code. Just add the settings with the host and the App ID, then the shortcode for the objects that you want and you are done.Here, I will show you how to do that. First go to your wp admin panel, ... Show More

    There are a lot of people that use Wordpress as their company's portal. If you are one of these people then, you may find this plugin very useful. You can create a mashup from within wordpress, using the Capabilities API, without writing a single line of code. Just add the settings with the host and the App ID, then the shortcode for the objects that you want and you are done.

    Here, I will show you how to do that.

     

    1. First go to your wp admin panel, under "Plugins" click on "Add New" and then search for "Qlik"
      install.png
    2. Click on "Install Now" and then on "Activate"
    3. This will create a "Qlik Sense" settings page, just open that
    4. Settings.png
    5. Here you need to define your host, the Virtual Proxy (prefix) and the App Id, as you would in a regular mashup. If you are planning on using a second app, then add the second app id in "App2 ID".
    6. Save changes.
    7. Then add the shortcode into your posts "[qlik-sense-object id="page1-obj2" qvid="nvqpV" height="400" app2="true"]"

    - id: is the unique div id. This is needed especially when you want to display the same object in 2 different instances

    - qvid: Is the object id as found in the "dev-hub/single-configurator"
    - height: The height of the visualization in pixels
    - nointeraction: Add this if you want to disable interactions. If you want the objects to have interaction, you can just omit this.

    - app2: Add this if your object is coming from the second app that you have specified in the settings

     

     

    EditPost.png

    • I have added few objects with a specific height in a bootstrap template for better layout. Now, lets preview the page
      Helloworld.pngHelloworld2.png

    Make sure you whitelist your url in the virtual proxy.

     

    If you use it and like it, please give it a 5 star in Wordpress.

     

    This is it!

    Yianni

     

    In Portuguese: Qlik Sense Plugin para Wordpressby cleveranjos. Thank you Clever!

    GitHub - yianni-ververis/qlik-sense-wordpress-plugin: A Wordpress plugin to create a Qlik Sense Mashup

    Qlik Branch

    Show Less
  • Image Not found

    Qlik Education Blog

    Qlik Sense Qualification Exams - 2021 Update

    Qlik Education is pleased to announce the Business Analyst and Data Architect Qualification Exams have been updated and are based on the SaaS editions* of Qlik Sense. 
  • qlik-community-blogs.jpg

    Qlik Design Blog

    Using webpack with Capability APIs

    I've seen a few people asking recently if and how they can use webpack to build their mashup. The answer is yes, and I'm gonna discuss a few implementation details and provide some example code.So to use the Qlik Capability APIs, you're probably already aware that you need to load the Qlik Capability API code, which includes loading a custom require.js file, and then requiring the qlik.js file through the loaded instance of require.js. The thing ... Show More

    I've seen a few people asking recently if and how they can use webpack to build their mashup. The answer is yes, and I'm gonna discuss a few implementation details and provide some example code.

    So to use the Qlik Capability APIs, you're probably already aware that you need to load the Qlik Capability API code, which includes loading a custom require.js file, and then requiring the qlik.js file through the loaded instance of require.js. The thing is, there's really no way to get around this, that's how the Qlik Capability APIs are loaded.

    But you can still use webpack for all of your own project code, you just have to decide how you are going to load the custom require.js file and where you'll use the require.js instance to require qlik.js. This is how I've been doing it.

    First, I load the Qlik custom require.js file in a script tag in the head of the document. Can you get fancier if you'd like with something like the script-loader, yea sure you can, but the goal here is to load that Qlik custom require.js file in a global context, and to me the simplest way to do it is to just include it in a script tag in the head of my html document.

    Then, you'll need to set the require.js config and require the qlik.js file through require.js somehow. The trick here is that the require.js instance can be accessed with window.require. Also, since requiring files with require.js is asynchronous, and you'll almost certainly want to return some stuff when qlik.js is done loading, it's useful to use a promise here. This is what my module looks like for this in ES2015 -

    webpackcapabilityconfig.png

    You'll notice the config object which you should be used to for mashups, then how I'm using window.require.config to set the require.js config. Also, I explicitly set the path for 'qlik' because I find this helps avoid some errors, especially with regards to loading extensions. Then, I export a promise which resolves with the app from the openApp() method as the value. You can resolve this promise with the 'qlik' object, or multiple apps, or whatever your needs are, but for myself, most of the time, I'm just opening 1 app and I just resolve the app.

    So in summary, if you want to use webpack with the Capability APIs then the Qlik custom require.js file will need to be loaded in a global context in some way, and then you'll be able to access the require.js instance on 'window.require' (but not just simply 'require' since webpack will use that keyword).

    Show Less
  • qlik-community-blogs.jpg

    Qlik Academic Program Blog

    Earn a Qlik Sense Qualification – New Exams Available!

    Do not miss out on the opportunity to receive a Qlik Sense Business Analyst or Data Architect certificate and digital badge!  
  • qlik-community-blogs.jpg

    Qlik Design Blog

    Peek() vs Previous() – When to Use Each

    As many QlikView developers have grown accustomed to, QlikView offers developers more than one way to accomplish a task.  Knowing when to use each function is half of the battle. For example let’s take a look at Peek() vs Previous(). There are certainly some similarities between the two functions but there are also distinct differences that need to be taken into account when deciding which function to use.The SimilaritiesBoth allow you to look ba... Show More

    As many QlikView developers have grown accustomed to, QlikView offers developers more than one way to accomplish a task.  Knowing when to use each function is half of the battle. For example let’s take a look at Peek() vs Previous().

    There are certainly some similarities between the two functions but there are also distinct differences that need to be taken into account when deciding which function to use.

    The Similarities

    • Both allow you to look back at previously loaded rows in a table.

    • Both can be manipulated to look at not only the last row loaded but also previously loaded rows.

    The Differences

    • Previous() operates on the Input to the Load statement, whereas Peek() operates on the Output of the Load statement. (Same as the difference between RecNo() and RowNo().) This means that the two functions will behave differently if you have a Where-clause.

    • The Peek() function can easily reference any previously loaded row in the table using the row number in the function  e.g. Peek(‘Employee Count’, 0)  loads the first row. Using the minus sign references from the last row up. e.g. Peek(‘Employee Count’, -1)  loads the last row. If no row is specified, the last row (-1) is assumed.  The Previous() function needs to be nested in order to reference any rows other than the previous row e.g. Previous(Previous(Hires))  looks at the second to last row loaded before the current row.

    So, when is it best to use each function?

    • The previous() and peek() functions could be used when a user needs to show the current value versus the previous value of a field that was loaded from the original file. 

    • The peek() function would be better suited when the user is targeting either a field that has not been previously loaded into the table or if the user needs to target a specific row.

    I wrote a technical brief that shows you how and why to use the Peek() and Previous() functions. You can see it here.

    Happy Qliking!

    Show Less
  • qlik-community-blogs.jpg

    Qlik Design Blog

    PurgeChar and KeepChar Functions

    Do you even need to delete or keep some characters in a string field?  The PurgeChar and KeepChar functions allow you to purge and keep characters that are in a string.  The PurgeChar function takes two parameters.  The first is the string and the second is the character(s) that are to be removed from the string.  The KeepChar function also takes two parameters but in this case the second parameter is the character(s) that are to be kept in the s... Show More

    Do you even need to delete or keep some characters in a string field?  The PurgeChar and KeepChar functions allow you to purge and keep characters that are in a string.  The PurgeChar function takes two parameters.  The first is the string and the second is the character(s) that are to be removed from the string.  The KeepChar function also takes two parameters but in this case the second parameter is the character(s) that are to be kept in the string.  Let’s take a look at some examples.

     

    Sometimes you may have a dataset that has garbage in it like in the FirstName field below.

    FirstName.png

    In this case there are characters after each name that I do not need.  In order to remove these characters from the field, I can use the PurgeChar function in my script (see below) to remove all the unwanted characters from the FirstName field.

    Purge script.png

    Once I run the script the names look like this:

    FirstName Clean.png

    The KeepChar function works similar except in this function you indicate what characters you would like to keep.  This may be helpful when you have field that includes a mix of numbers and letters but you only want to keep the numbers or the letters.  In this example, I have a ProductCode field that has codes that are made up of numbers and letters but I only want the numeric data.

    ProductCode.png

    In my script, I can use the KeepPurge function and use the second parameter to list all the numbers since those are the characters I want to keep in the string.

    Keep script.png

    The end result looks like the image below.  The product codes are now all numeric and the letters have been removed.

    ProductCode Clean.png

    There are a host of string functions that can be used to clean up or modify a string but when there are specific characters that you need to remove or keep, PurgeChar and KeepChar can be helpful and easy to add to your script or chart expression.  These functions work well when you need to remove or keep ALL references to a character in a string.

     

    Thanks,

    Jennell

    Show Less
  • Image Not found

    Qlik Academic Program Blog

    NEW Qlik Sense Feature!

    Collaborative notes is an academics dream
  • Image Not found

    Support Updates Blog

    New QlikView Installation Guide Available!

    Hello Qlik Users!Picture this: You're installing QlikView and everything is going smoothly... until it's not. You hit a roadblock and have no idea how to resolve the issue.Enter: the QlikView Installation Guide! A step by step guide to walk you through the installation procedure with illustrative screenshots and links to common issues that may occur. Tips and Tricks from the Qlik Digital Support team appear in the guide with the following format:... Show More

    Hello Qlik Users!

    Picture this: You're installing QlikView and everything is going smoothly... until it's not. You hit a roadblock and have no idea how to resolve the issue.

    Enter: the QlikView Installation Guide! A step by step guide to walk you through the installation procedure with illustrative screenshots and links to common issues that may occur. 

    Tips and Tricks from the Qlik Digital Support team appear in the guide with the following format:

    White Paper QlikView Installation Guide.docx.png 

     

    The current uncommitted goal at the time of publishing this guide is to have these new sections eventually added to the Help Site. In the meantime, our hope is that you will find the supplementary information provided in the guide useful.

    For access to the QlikView Installation Guide, please see A QlikView Installation Guide.

    Kind regards,

    Qlik Digital Support Team

    Show Less
  • qlik-community-blogs.jpg

    Qlik Design Blog

    Repeat Function

    The Repeat function can be used in both Qlik Sense and QlikView to repeat an input string a defined number of times.  It can be used in both the script and a chart expression.  This is how the Repeat function is defined in Qlik Sense Help: Repeat() forms a string consisting of the input string repeated the number of times defined by the second argument. Syntax: Repeat(text[, repeat_count]) The function takes 2 arguments.  The first argument is th... Show More

    The Repeat function can be used in both Qlik Sense and QlikView to repeat an input string a defined number of times.  It can be used in both the script and a chart expression.  This is how the Repeat function is defined in Qlik Sense Help:

     

    Repeat() forms a string consisting of the input string repeated the number of times defined by the second argument.

     

    Syntax:

     

    Repeat(text[, repeat_count])

     

    The function takes 2 arguments.  The first argument is the text that you would like to repeat.  This can be a single character or a combination of many characters.  It can be text defined in single quotes or a field name or variable.  The second argument is the repeat count which is the number of times the first argument should be repeated.  In the example measure below, the text to repeat is ‘My name is Jennell.’ along with chr(13) which represents a carriage return.  The second argument is 5 indicating that this input string should be repeated 5 times.

     

    name.png

     

    Here are the results in a Text & image object:

     

    jennell.png

     

    Simply enough, right?  In the example, the repeat count argument was set to 5 but I also could have used a variable or a numeric field to indicate the number of times the text should be repeated.  Let’s look at an example that uses Repeat in the script using field names.  In the script below, I am loading an inline table with a Letter field and a Number field.  In the Example table that I load, I am using the Repeat function to create the RepeatExample field which will repeat the string in the Letter field the number of times specified in the Number field.

     

    script.png

     

    Here is a preview of the Example table once the script is executed:

     

    table.png

     

    By using the fields, Letter and Number, for the arguments, the Repeat function is dynamic based on the data being loaded.  The Repeat function is a basic, easy-to-use function that can manipulate your data.  I am sure there are many other ways this function can be used.  Feel free to share how you use the Repeat function.

     

    Thanks,

    Jennell

    Show Less
  • Image Not found

    Qlik Design Blog

    Not another Qlik Sense Spotify App - no really!

    This is an interesting and fun way to showcase not only Qlik Sense's Associative Difference and visualization features, but actually shows you a sample flow from problem to solution that we can all relate to; finding that next music track / artist to listen to.
  • Image Not found
  • Image Not found

    Support Updates Blog

    Join our Experts to talk about Qlik Sense Mobile and win some Qlik SWAG!

    Hello Qlik Users! Today at 10 am Eastern we will be having a Talk to Experts Tuesday session on Qlik Sense Mobile! Talk to Experts Tuesday: Qlik Sense Mobile   Product Manager, Caique Zaniolo will be on the call along with others from Qlik Support, Professional Services and Marketing! You could also win some Qlik SWAG! Join us during the session to find out how. What questions do you have about Qlik Sense Mobile? Let me know in the comments below... Show More

    Hello Qlik Users!

    Today at 10 am Eastern we will be having a Talk to Experts Tuesday session on Qlik Sense Mobile!

    Talk to Experts Tuesday: Qlik Sense Mobile

    Jamie_Gregory_0-1595880365550.jpeg 

    Product Manager, Caique Zaniolo will be on the call along with others from Qlik Support, Professional Services and Marketing!

    You could also win some Qlik SWAG! Join us during the session to find out how.

    What questions do you have about Qlik Sense Mobile? Let me know in the comments below!

    We hope to see you on the call!

    Kind regards,

    Qlik Digital Support

    Show Less
  • Image Not found

    Qlik Design Blog

    Using Color Functions in Qlik Sense

    When developing a Qlik Sense app, there will come a time where you are going to want to define your own colors for certain values in a visualization. Did you know that Qlik Sense offers many ways to achieve your desired outcome?
  • Image Not found

    Support Updates Blog

    Reminder - No Qlik patches July 28th or August 11th

    Hello Qlik Users, Happy Wednesday! This is a quick reminder that there will NOT be any Qlik patches released on July 28th, 2021 or August 11th, 2021. The normal patch schedule will resume on August 25th, 2021. Be sure to subscribe to the Qlik Support Updates Blog by clicking the green Subscribe button to stay up-to-date with the latest releases. Please give this post a like if you found it helpful! Also, please let us know if you have any questio... Show More

    Hello Qlik Users,

    Happy Wednesday!

    This is a quick reminder that there will NOT be any Qlik patches released on July 28th, 2021 or August 11th, 2021. The normal patch schedule will resume on August 25th, 2021.

    Be sure to subscribe to the Qlik Support Updates Blog by clicking the green Subscribe button to stay up-to-date with the latest releases. Please give this post a like if you found it helpful! Also, please let us know if you have any questions or leave your feedback in the comments.

    Thank you for choosing Qlik!

    Kind Regards,

    Qlik Global Support

    Show Less
  • qlik-community-blogs.jpg

    Qlik Design Blog

    Coalesce and EmptyIsNull Functions

    There are two script and chart functions that I recently became aware of that I will start to use in future scripts. They are: Coalesce and EmptyIsNull. In this blog, I will explain how they both can be used. Let’s start with the Coalesce function.Coalescecoalesce(expr1[ , expr2 , expr3 , ...])According to Qlik Help, the Coalesce “function returns the first of the parameters that has a valid non-NULL representation.” This function can take an unl... Show More

    There are two script and chart functions that I recently became aware of that I will start to use in future scripts. They are: Coalesce and EmptyIsNull. In this blog, I will explain how they both can be used. Let’s start with the Coalesce function.

    Coalesce

    coalesce(expr1[ , expr2 , expr3 , ...])

    According to Qlik Help, the Coalesce “function returns the first of the parameters that has a valid non-NULL representation.” This function can take an unlimited number of parameters. Let’s see it in action. In the table below, there are two fields: FirstName and LastName. The last column uses the Coalesce function to check first the FirstName field and then the LastName field for any non-NULL values. The first one found is returned. If neither the FirstName or LastName fields contain a value, then the last parameter (the default) is returned. In this example, that is “No name provided.”

    table.png

     

     

     

     

     

     

     

     

    You can see that when there is a first name in the FirstName field, it is returned and when there is not a first name but just as a last name in the LastName field, the last name is returned as seen with Johnson. The last row in the table did not have a first name or last name, so the default “No name provided” is returned. The first row has an empty string in both the FirstName and LastName fields, so an empty string is returned by the Coalesce function.

    In the future, I will use the code below when I want to replace fields that are empty with a value.

    I would replace expressions like this:

    If(Len(Gender)>0, Gender, ‘Unknown’)

    With this expression:

    Coalesce(Gender, ’Unknown’)

    EmptyIsNull

    EmptyIsNull(exp )

    The EmptyIsNull function converts empty strings to NULL. In the first row of the table below, FirstName and LastName are empty strings. When using the EmptyIsNull function in the last column, you can see that it returns NULL in place of the empty string in the LastName field. Whereas in the other rows (rows 2-6), the last name is returned.

    table2.png

     

     

     

     

     

     

     

    When I have a field that is not 100% populated, I sometimes replace the empty strings with NULL. In the past, I would use an expression like this:

    If(Len(Gender)=0, Null(), Gender)     or    If(IsNull(Gender) or Gender=’’, Null(), Gender)

    Now, using the EmptyIsNull function, I can shorten my expression to this:

    EmptyIsNull(Gender)

    The Coalesce and EmptyIsNull functions are less complex and effective for use in chart expressions and in the script. Test them out the next time you need to replace empty strings in a field.

     

    Thanks,

    Jennell

    Show Less
  • Image Not found

    Support Updates Blog

    Qlik Sense Migration Part 1: Migrating your Entire Qlik Sense Environment

    Hi everyone,For various and valid reasons, you might need to migrate your entire Qlik Sense environment, or part of it, somewhere else. In this post, I’ll cover the most common scenario: a complete migration of a single or multi-node Qlik Sense system, with the bundled PostgreSQL database (Qlik Sense Repository Database service) in a new environment. So, how do we do that? Introduction and preparationBackup your old environmentDeploy and restore ... Show More

    Hi everyone,

    For various and valid reasons, you might need to migrate your entire Qlik Sense environment, or part of it, somewhere else.

    In this post, I’ll cover the most common scenario: a complete migration of a single or multi-node Qlik Sense system, with the bundled PostgreSQL database (Qlik Sense Repository Database service) in a new environment.

    So, how do we do that?

    1. Introduction and preparation
    2. Backup your old environment
    3. Deploy and restore the new central node
    4. What about my rim nodes?
    5. Finalizing your migration

     Introduction and preparation

     

    Let’s start with a little bit of context: Say that we are running a 3 nodes Qlik Sense environment (Central node / Proxy-Engine node / Scheduler node).

    On the central node, I also have the Qlik shared folder and the bundled Qlik Sense Repository Database installed.

    This environment has been running well for years but I now need to move it to a brand new hardware ensuring better performance. It’s not possible to reinstall everything from scratch because the system has been heavily used and customized already. Redoing all of that to replicate the environment is too difficult and time-consuming.  

    I start off with going through a checklist to verify if the new system I’m migrating to is up to it:

    And then I move right over to…

     

    Backup your old environment

     

    The first step to migrate your environment in this scenario is to back it up.

    To do that, I would recommend following the steps documented on help.qlik.com (make sure to select your Qlik Sense version top left of the screen).

    https://help.qlik.com/en-US/sense/April2019/Subsystems/PlanningQlikSenseDeployments/Content/Sense_Deployment/Backing-up-a-site.htm

    Once the backup is done you should have:

    • A backup of the database in .tar format
    • A backup of the content of the file share which includes your applications, application content, archived logs, extensions,…
    • Backups of any data source files that need to be migrated and are not stored in the shared folder like QVDs

    Then we can go ahead and…

     

    Deploy and restore the new central environment

     

    The next steps are to deploy and restore your central node. In this scenario, we will also assume that the new central node will have a different name than the original one (just to make things a bit more complicated 😊).

    Let’s start by installing Qlik Sense on the central node. That’s as straightforward as any other fresh install.

    You can follow our documentation. Before clicking on Install simply uncheck the box “Start the Qlik Sense services when the setup is complete.

    The version of Qlik Sense you are going to install MUST be the same as the one the backup is taken on.  

    Now that Qlik Sense is deployed you can restore the backup you have taken earlier into your new Qlik Sense central node following Restoring a Qlik Sense site.

    Since the central node server name has also changed, you need to run a Bootstrap command to update Qlik Sense with the new server name. Instruction provided in Restoring a Qlik Sense site to a machine with a different hostname.

    The central node is now almost ready to start.

    If you have changed the Qlik Share location, then the UNC path has also changed and needs to be updated.

    To do that

    • Go to C:\Program Files\Qlik\Sense\Repository\Util\QlikSenseUtil
    • Run QlikSenseUtil.exe as Administrator
    • Click on Connect to the database and enter the credential to connect to the new PostgreSQL database
    • Click on Service Cluster and press OK. This should display the previously configured UNC Path
    • You simply need to update each path, save and start/restart all the Qlik sense services.

    01.png

    At this point make sure you can access the Qlik Sense QMC and Hub on the central node. Eventually, check that you can load applications (using the central node engine of course). You can also check in the QMC -> Service Cluster that the changes you previously made have been correctly applied.

    Troubleshooting tips: If after starting the Qlik Sense services, you cannot access the QMC and/or Hub please check the following knowledge article How to troubleshoot issue to access QMC and HUB

     

    What about my rim nodes?

     

    You’ve made it here?! Then congratulation you have passed the most difficult part.

    If you had already running and configured rim nodes in your environment that you now need to migrate as well, you might not want to remove them from Qlik Sense to add the new ones since you will lose pretty much all the configuration you have done so far on these rim nodes.

    By applying the following few steps I will show you how to connect to your “new” rim node(s) and keep the configuration of the “old” one(s).

    Let’s start by installing Qlik Sense on each rim node like it was a new one.

    The process is pretty much the same as installing a central node except that instead of choosing “Create Cluster”, you need to select “Join Cluster

    Detailed instruction can be found on help.qlik.com - Installing Qlik Sense in a multi-node site

    Once Qlik Sense is installed on your future rim node(s) and the services are started, we will need to connect to the “new” Qlik Sense Repository Database and change the hostname of the “old” rim node(s) to the “new” one so that the central node can communicate with it.

    To do that install PGAdmin4 and connect to the Qlik Sense Repository Database. Detailed instruction in Installing and Configuring PGAdmin 4 to access the PostgreSQL database used by Qlik Sense or NPrinting knowledge article.

    Once connected navigate to Databases -> QSR -> Schemas -> public -> Tables

    You need to edit the LocalConfigs and ServerNodeConfigurations table and change the Hostname of your rim node(s) from the old one to the new corresponding one (Don’t forget to Save the change)

    LocalConfigs table

    02.png

     

    ServerNodeConfigurations table

    03.png

     

    Once this is done, you will need to restart all the services on the central node.

    When you have access back, login to the QMC and go to Nodes. Your rim node(s) should display the following status, “The certificate has not been installed

    04.png

     

    From this point, you can simply select the node, click on Redistribute and follow the instruction to deploy the certificates on your rim node. After a moment the status should change and you should see the services being up and running.

    Do the same thing on the remaining rim node(s).

    Troubleshooting tips: If the rim node status is not showing “The certificate has not been installed” it means that either the central node cannot reach the rim node or the rim node is not ready to receive new certificates.

    Check that the port 4444 is opened between the central and rim node and make sure the rim node is listening on port 4444 (netstat -aon in command prompt)

    Still no luck?! You can completely uninstall Qlik Sense on the rim node and reinstall it.

     

    Finalizing your migration

     

    At this point, your environment is completely migrated and most of the stuff should work.

    Data Connection

    There is one thing to consider in this scenario. Since the Qlik Sense certificates between the old environment and the new one are not the same, it is likely that data connections with passwords will fail.  This is because passwords are saved in the repository database with encryption.  That encryption is based on a hash from the certs.  When the Qlik Sense self-signed cert is rebuilt, this hash is no longer valid, and so the saved data connection passwords will fail.  You will need to re-enter the passwords in each data connection and save.  This can be done in the QMC -> Data Connections.

    See knowledge article: Repository System Log Shows Error "Not possible to decrypt encrypted string in database"

    Licensing

    Do not forget to turn off your old Qlik Sense Environment. As per your license agreement, you can only use one license per active Qlik Sense environment. Reach out to your account manager for more details.

    Best practices

    Finally, don’t forget to apply best practices in your new environment:

     

    Thank you for reading my blog post and I really hope it helps you. This is the first part of a post covering multiple migration scenarios. Coming soon,  I will explain how to migrate your PostgreSQL Database from the bundled Qlik Sense Repository Database to a dedicated PostgreSQL Instance.

    I’ll be watching for your questions, feedback or suggestions so please comment and share (and like if you liked 😊)!  

     

    Show Less
  • Image Not found

    Qlik Academic Program Blog

    Students securing opportunities after learning from the Qlik Academic Program

    Increasingly, students enrolled into the Qlik Academic Program have at their disposal various opportunities to forward their career. Students are securing internships and jobs within Qlik and with customers and partners of Qlik across the globe.The academic program provides free resources in the form of online training, qualifications and certification to students and professors. The program offers structured pathways to become a Qlik Sense Busin... Show More

    Increasingly, students enrolled into the Qlik Academic Program have at their disposal various opportunities to forward their career. Students are securing internships and jobs within Qlik and with customers and partners of Qlik across the globe.

    The academic program provides free resources in the form of online training, qualifications and certification to students and professors. The program offers structured pathways to become a Qlik Sense Business Analyst and Qlik Sense Data Architect after which students can appear for the exams and get their certifications. This program has been quite popular with more than 26,000 students from 2400+ Universities leveraging these free resources. Being industry developed makes it more relevant to the market demands.

    Relationship between National University of Singapore ( NUS) has been thriving and students from National University of Singapore (NUS)  have enrolled into the program quite regularly. The Singapore office of Qlik has recruited from the University which has resulted in a successful partnership between Qlik and NUS. The academic program continued to build engagement with NUS with various initiatives.

    Another recent example is that of Sri Vishnu Educational Society ( SVES) in India which has more than 250 students and Professors enrolled into the Qlik Academic Program. Data analytics start up Diagonal wanted to recruit Qlik trained students for its expansion plans. The company consults technology clients in data analytics and for its projects and they wanted students who are up to speed in analytics and Qlik technologies so that they could be deployed on their projects immediately. The academic program was supportive of this initiative and facilitated the engagement between BVRIT and Diagonal.

    Qlik has an R&D Centre in Bangalore and they have a continuous requirement of qualified candidates. Recently, they advertised their requirement for interns for their R&D projects. These projects are great opportunities for students to learn latest advancements in analytics technologies and fast forward their career. With the help of the academic program, the R&D team at Qlik are able to meet their requirements.

    Many such opportunities are sprouting for students across the globe and the Qlik Academic Program continues to bridge the skills gaps for analytics trained resources. If you are a student or Professor and wish to know about the academic program and learn from its free resources, visit: qlik.com/academicprogram or email: academicprogram@qlik.com  

    Show Less
  • qlik-community-blogs.jpg

    Qlik Product Innovation Blog

    Move QlikView Bookmarks to the Qlik Sense Hub to Accelerate Your Cloud Transitio...

    We’re happy to announce the availability of QlikView Object Migration for Cloud. This free utility gives QlikView customers using the Qlik Sense Cloud Hub the ability to migrate server bookmarks from on-premises QlikView deployments to Qlik Sense Enterprise SaaS tenants to save you time and provide users with a more customized experience.