Skip to main content
Announcements
Accelerate Your Success: Fuel your data and AI journey with the right services, delivered by our experts. Learn More
cancel
Showing results for 
Search instead for 
Did you mean: 
Sunilkumar3
Contributor III
Contributor III

How to Reduce to Application Size Without Splitting

Below are the Details:

1) We have Developed Snowflake Schema Data Model.

2) We are using only Required Fields. 

3) Currently we have application Size is 1.9 GB and Base memory footprint Size is more than 5 GB.

4). So, we wanted to Reduce Base memory Size less than 5 GB.

5) We can't Split the Application based on the year or Dimension Because user want to See all years Data in One Application.

 

 

Labels (3)
9 Replies
Or
MVP
MVP

Check if you've optimized all fields (make sure they are correctly formatted, that numbered keys are used instead of concatenated strings, that timestamp fields are split into date and time, etc.)

I'd be surprised if that'll get you under 5GB, though, unless your app is super bloated. It sounds like you just have too much data in one place.

paulcalvet
Partner - Specialist
Partner - Specialist

Hello,

Check if you don't have string field in the fact table, only integer/decimal or date :

Use autonumber on all your key fields with :

set HidePrefix = '%';
Autonumber '$(HidePrefix)KEY_*';

Sunilkumar3
Contributor III
Contributor III
Author

Hi thanks for the Update. The Points which you have Highlighted which we have already taken care.  

Or
MVP
MVP


@paulcalvet wrote:

Hello,

Check if you don't have string field in the fact table, only integer/decimal or date :


Just a quick response to this - it has almost no impact on the application size / memory footprint. Because of the way Qlik stores information, it doesn't really matter if you keep strings in your fact table.

Load RowNo() as Row, Rand() as Random, 'This is a text string' & Mod(RowNo(),10000) as String Autogenerate(10000000);

vs

Load RowNo() as Row, Rand() as Random, Autonumber('This is a text string' & Mod(RowNo(),10000)) as Key Autogenerate(10000000);

Load Autonumber('This is a text string' & Mod(RowNo(),10000)) as Key, ('This is a text string' & Mod(RowNo(),10000)) as String Autogenerate(10000);

 

Results in a 30KB size difference for a 90MB file.

Or
MVP
MVP

Then you're going to have to reduce the number of fields, or reduce the number of records, or reduce the contents of fields to make the app smaller.

You could consider using an ODAG approach to let the user pick which subset of the data they want, rather than using the entire large app for everything.

Kushal_Chawda

@Sunilkumar3  If possible try to reduce data in your application. There are many ways to do it. You can filter your data or you can aggregate your data if your data is at lower granular (transaction) level. Once you aggregate your data, you can use ODAG to go to lower level in transaction. Check which field is occupying more memory using App metadata anlyzer app. If that field is just used in measure calculation, try to apply autonumber function on it.

marcus_sommer

Beside the other suggestions you may consider to use different granularities within your facts - see:

Fact Table with Mixed Granularity - Qlik Community - 1468238

rwunderlich
Partner Ambassador/MVP
Partner Ambassador/MVP

It sounds like you done all the right things. Hard to make further suggestions without seeing the app. Use a tool like QSDA Pro to identify what are the largest fields and look at making them smaller or eliminating the need for the field altogether. 

-Rob

ali_hijazi
Partner - Master II
Partner - Master II

use QSDA to see if there are unused fields
then you can drop them ; this has quiet good impact on the size of the app

I can walk on water when it freezes