Cognos Analytics

 View Only

Creating High Performance Dashboard and Report Using Cognos Data Set

By Archive User posted Sun April 15, 2018 12:00 AM

Authors: Kevin Nichols (Performance) and George Xu (Senior Software Developer)



  • The project timeline is tight. You need to come up with a reporting solution quickly with high performance.

  • The data set from IBM Cognos Analytics could be your best choice.

  • Building on top of the existing Cognos reporting platform, the new data set feature produces a data snapshot from a package, an external file or even a module. The data set provides on the fly, self-serving ETL capability without the need for a complex ETL tool and related technical expertise.

  • A report/dashboard developer can develop a report/dashboard against a data set using a module, produce much more improved performance because of the high-efficient data storage, simplified query process and better data cache in Cognos data set service.

Design Flows

  • The following flow chart demonstrates the possibilities of utilizing this new data set capability.

  • The first scenario delivers dashboard/report via dynamic generated queries directly against the data source, provides near “real time” data reporting.

  • The second scenario delivers much faster performance via data set with a smaller data volume however the data freshness depends on how frequent the data set is built.

  • The data set feature is perfectly designed to the situation when data does change, however in a manageable manner.

Performance Comparisons

  • Below is a performance comparison of a report based from a package vs a report based from the same package to a data set from a module. As you can see, first opens have increase by over 85% and subsequent run by over 58% by using this technique.

How to Create Data Set

  • Data Set/Module functionality can be used with reports that were based off a package. For creating a data set based from a package we used the following steps: Using a per-existing package, from the ellipsis select “Create data set” from the menu.

New Data Set UI

  • New Data set UI will display to the end user. From the source plain, select the desired items (essentially the same items from your report based on the package) you wish to be apart of the data set and drag them to “Add data here” window. This will pre-load the items with data from your reporting data tier, now save and load the data

  • Note: If the contents in which you are loading is more than 100K of rows, it would be best to save and load the data as a background process

Data Set Reload

  • To reload the data outside the New data set GUI, select your newly created data set and ellipsis select “Reload”

  • Note: This action will perform a background process data load from your data tier to your newly created data set.

Data Set Data Load Through Scheduling

  • As data changes on the data tier you may want to schedule a reload during after hours. By selecting the properties of the data set and selecting the schedule tab then New you can enter a time to best suite your needs

Module based on Data Set

  • Now that the data has been loaded into the data set you can create a new module based on the preloaded data set you just created. Select New > Data Module > Data Set

  • Select your data set which was based off your package and select Done

Module UI

  • New Data Module UI will now appear. Select and drag the new data set pre-load data based off the package under the new New data module from the Data module plain.

  • Save the newly created Module.

Module Report / Dashboard Creation

  • With the newly created Module, you can create a report or a dashboard to display the rows from the report data tier. The benefit of this is that on heavy server based reports, you could gain in performance up to 6 times for first hits and over 2 times with subsequent runs due to the pre-loaded parquet data set data.

Summary - Data Set Advantage

  • Empowers self serving capability without traditional ETL and IT development work

  • Produces faster performance with reduced resource requirement to overall system

#Expert Post




Thu September 12, 2019 03:39 PM

if you are not planning to use the module repeatedly for different widgets, then it is fine.... It is about reuse.

Wed January 23, 2019 02:01 PM

I also have the option of creating a dashboard based directly on the data set, without having to create a data module. I would create a data set based on a module and my dashboard would be based on it, considering that all the necessary data is already in my dataset and there is no need to create calculated fields. Is it a good practice? Or even if you do not need calculated fields, should I create a module based on the data set and create dashboard based on this module?