Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi everyone,
I have been using Resident loads and Preceding loads to populate a model/app with data or to transform some tables in the ETL process. But, from a performance perspective, I do not have a clear idea which one is better to use in some specific scenarios.
So, I would love to know if anyone has some "under the hood" documentation that could be shared talking about this two options or, even better, someone knows the answer and is willing to share it.
Thank you
Ryuma Nakano.
The preceding load is just like a pipeline the bottom-most statement in the chain pipes the rows upwards to the next preceding load which can be preceded by many more preceding loads. So it is very efficient as only the end result needs to be stored in memory.
A resident load use an already existing table in memory as it's source so if you intend to drop the resident table after doing a resident load it is much less efficient than a preceding load. There are some things you can't do with preceding load so you can't always replace a resident load with a preceding load.
Have a look at Henric Cronström blog about preceding loads: https://community.qlik.com/blogs/qlikviewdesignblog/2013/03/04/preceding-load
The preceding load is just like a pipeline the bottom-most statement in the chain pipes the rows upwards to the next preceding load which can be preceded by many more preceding loads. So it is very efficient as only the end result needs to be stored in memory.
A resident load use an already existing table in memory as it's source so if you intend to drop the resident table after doing a resident load it is much less efficient than a preceding load. There are some things you can't do with preceding load so you can't always replace a resident load with a preceding load.
Have a look at Henric Cronström blog about preceding loads: https://community.qlik.com/blogs/qlikviewdesignblog/2013/03/04/preceding-load
As @petter-s mentioned, there might be some things which may not be done using preceding load (Which ones I am not sure), if a requirement can be implemented using both, then Preceding load is efficient. As it starts processing the data which is already available in the memory. Resident load has to copy the data from the original table again to process it which is not efficient, if at the end the original table has to be dropped.
With Resident loads, there might be some scenarios where 'No Concatenate' has to be used to avoid auto concatenation. If forgot to use that, it might lead to longer debugging efforts.
Preceding load script may be relatively difficult to understand but the efficient way.
Resident Load:
You can load data into a Qlikview table. Then you can use that table as a resident table and data from that table with transformation and calculation in resident load.
Resident table only for reusable and calculation purpose, and reload is last.
Everytime we dont need to scratch from Source data.
Example:
Select EmpID, EmpName, Sal, Bonus from Employee
Select EmpName, sal+Bonus as Sal_Bonus Resident Employee
Partial Laod:
Whenever you just want to add some new data without reloading all other tables.
Using ADD and REPLACE attribute to LOAD statement.
Example:
Suppose in your Qlikview file you have 10 tables which has millions of records, if you want one new table then you need to add the script, if you give normal reload it will reload all the 10 tables and the new table. Suppose if you don't want to reload the old 10 tables and just want to add new table then Partial Reload would be helpful.
ADD LOAD * INLINE [
Key, Value
A, 100
B, 200
C, 100
];
Ryuma,
Preceding load is faster than Resident Load.
Helpful post
What is Residant Load?
Loading Data already Loaded Data into Qlikview Table is Possible To Residant Load
Transformation and Caluclations Performed in Scripting Level
Loading Existing Field Is Possible to
Ex: Select EmployeeName , Employee Address,HireDate,Salary, Intensitive from Emloyee table;
Load employeename, month(Hire date), Salary+intestives as Gross Salry Residant Laod;
Preceding Load:
1) a Load which is followed by another load
2) absence of From or Resident keywords
3) If a result of any load being used in another load without From or Resident keywords is called as a preceding load
4) benefit is you can directly do some aggregation ....
Ramya.