TI load data with delayed rule and feed recalculation
- ioscat
- Regular Participant
- Posts: 209
- Joined: Tue Jul 10, 2012 8:26 am
- OLAP Product: Contributor
- Version: 9.5.2 10.1.1 10.2
- Excel Version: 07+10+13
- Contact:
TI load data with delayed rule and feed recalculation
TI load data with delayed rule and feed recalculation - is it possible?
When we load huge amounts of data to huge models with a lot of dependence connections we can get stack (about 100 operations per sec). So we have to comment rule files to delay recalculation. Is it possible not to resave rules but use special TI code?
When we load huge amounts of data to huge models with a lot of dependence connections we can get stack (about 100 operations per sec). So we have to comment rule files to delay recalculation. Is it possible not to resave rules but use special TI code?
- qml
- MVP
- Posts: 1094
- Joined: Mon Feb 01, 2010 1:01 pm
- OLAP Product: TM1 / Planning Analytics
- Version: 2.0.9 and all previous
- Excel Version: 2007 - 2016
- Location: London, UK, Europe
Re: TI load data with delayed rule and feed recalculation
Take a look at the TI function RuleLoadFromFile() which you can use to load an empty file to clear your rules in the Prolog and to load back the original rules file in the Epilog.
Kamil Arendt
-
- MVP
- Posts: 2832
- Joined: Tue Feb 16, 2010 2:39 pm
- OLAP Product: TM1, Palo
- Version: Beginning of time thru 10.2
- Excel Version: 2003-2007-2010-2013
- Location: Atlanta, GA
- Contact:
Re: TI load data with delayed rule and feed recalculation
Just be aware that the RuleLoadFromFile command is going to re-evaluate all your feeders so this can be very costly, time-wise.
- ioscat
- Regular Participant
- Posts: 209
- Joined: Tue Jul 10, 2012 8:26 am
- OLAP Product: Contributor
- Version: 9.5.2 10.1.1 10.2
- Excel Version: 07+10+13
- Contact:
Re: TI load data with delayed rule and feed recalculation
but if put at prolog dummy file - i get temporally clear cubes (without any rules and feeders). Not?
- qml
- MVP
- Posts: 1094
- Joined: Mon Feb 01, 2010 1:01 pm
- OLAP Product: TM1 / Planning Analytics
- Version: 2.0.9 and all previous
- Excel Version: 2007 - 2016
- Location: London, UK, Europe
Re: TI load data with delayed rule and feed recalculation
Isn't this what you asked for in your first post? Yes, you will remove all the rule-calculated values in the cube when you load an empty rule file. Actually, you do not even need to load an empty one, loading one with no feeder statements should be enough as typically this is what slows down data loads.
Whether it will actually result in an overall load time improvement, it largely depends on your specific circumstances, but it might be a solution worth looking at.
Whether it will actually result in an overall load time improvement, it largely depends on your specific circumstances, but it might be a solution worth looking at.
Kamil Arendt
- ioscat
- Regular Participant
- Posts: 209
- Joined: Tue Jul 10, 2012 8:26 am
- OLAP Product: Contributor
- Version: 9.5.2 10.1.1 10.2
- Excel Version: 07+10+13
- Contact:
Re: TI load data with delayed rule and feed recalculation
my reply was to last speaker - tomok. at that time i've tested your advice on dummy model. thanks for the solution, we will test it on our base model
-
- MVP
- Posts: 600
- Joined: Wed Aug 17, 2011 1:19 pm
- OLAP Product: TM1
- Version: 9.5.2 10.1 10.2
- Excel Version: 2003 2007
- Location: York, UK
Re: TI load data with delayed rule and feed recalculation
If processing feeders is taking a long time on cube load check that you don't have a situation where a number of leaf source cells are all targeting the same consolidated target cell in order to feed all its leaf descendants.
What happens in this case is that each source value will trigger the feeding of all the target leaf cells. There is no "memory" in the consolidated value that it has already been fed and it just passes the message on to its descendants.
One way to get round this is to create a dummy cube in which that consolidated value is leaf, feed from the source into the dummy and from the dummy into the target. If the consolidated value is the top item of its dimension you can simply do this by omitting the dimension from the intermediate dummy cube.
What happens in this case is that each source value will trigger the feeding of all the target leaf cells. There is no "memory" in the consolidated value that it has already been fed and it just passes the message on to its descendants.
One way to get round this is to create a dummy cube in which that consolidated value is leaf, feed from the source into the dummy and from the dummy into the target. If the consolidated value is the top item of its dimension you can simply do this by omitting the dimension from the intermediate dummy cube.
-
- MVP
- Posts: 3654
- Joined: Fri Mar 13, 2009 11:14 am
- OLAP Product: TableManager1
- Version: PA 2.0.x
- Excel Version: Office 365
- Location: Switzerland
Re: TI load data with delayed rule and feed recalculation
That is a top notch tip.Duncan P wrote:If processing feeders is taking a long time on cube load check that you don't have a situation where a number of leaf source cells are all targeting the same consolidated target cell in order to feed all its leaf descendants.
What happens in this case is that each source value will trigger the feeding of all the target leaf cells. There is no "memory" in the consolidated value that it has already been fed and it just passes the message on to its descendants.
One way to get round this is to create a dummy cube in which that consolidated value is leaf, feed from the source into the dummy and from the dummy into the target. If the consolidated value is the top item of its dimension you can simply do this by omitting the dimension from the intermediate dummy cube.
(shame performance modler is a few release generations away from taking heed.)
- Harvey
- Community Contributor
- Posts: 236
- Joined: Mon Aug 04, 2008 4:43 am
- OLAP Product: PA, TM1, CX, Palo
- Version: TM1 8.3 onwards
- Excel Version: 2003 onwards
- Contact:
Re: TI load data with delayed rule and feed recalculation
That is indeed a top-notch tip, Duncan!
When I was working on my complex calc engine model, I did something similar and it made a huge difference to the speed and kept the RAM usage similar, as you'd expect.
I was planning an article on the Flow blog at some point, do you guys think that would be useful?
To the OP, as far as I know, removing the rule statements is the only way to speed up a TI process' data phase. However, keep in mind that you will not be saving time overall, as all the same feeders still have to trigger at the end of the process.
In fact, it's likely it'll take longer overall, as ALL feeders will run when you re-load the feeder statements. I'd only think about it if there was some reason you wanted to release the database connection more quickly.
In the past, I've looked into having conditional feeders that can be turned off by flags in another cube and again, any gains that gives you in data load, it loses in other areas.
You're much better off looking into optimizing your feeders.
When I was working on my complex calc engine model, I did something similar and it made a huge difference to the speed and kept the RAM usage similar, as you'd expect.
I was planning an article on the Flow blog at some point, do you guys think that would be useful?
To the OP, as far as I know, removing the rule statements is the only way to speed up a TI process' data phase. However, keep in mind that you will not be saving time overall, as all the same feeders still have to trigger at the end of the process.
In fact, it's likely it'll take longer overall, as ALL feeders will run when you re-load the feeder statements. I'd only think about it if there was some reason you wanted to release the database connection more quickly.
In the past, I've looked into having conditional feeders that can be turned off by flags in another cube and again, any gains that gives you in data load, it loses in other areas.
You're much better off looking into optimizing your feeders.
Take your TM1 experience to the next level - TM1Innovators.net
- Steve Rowe
- Site Admin
- Posts: 2416
- Joined: Wed May 14, 2008 4:25 pm
- OLAP Product: TM1
- Version: TM1 v6,v7,v8,v9,v10,v11+PAW
- Excel Version: Nearly all of them
Re: TI load data with delayed rule and feed recalculation
Hi,
Thats an interesting approach to a common problem.
So
a, b, c, d, e are children of A in our detail cube, say all are populated
We have A^ as an N in our feeder staging cube
And then A* as a big conso in our destination cube, say this has five children too
Instead of writing, which results in 25 feeder events, (A has 5 children so does A* so that is 25 feeders)
A=>A*
We write
A=>A^=>A*
Which I think results in 11 feeder events. 5=>1=>5
So even in this trivial example we can see far less feeders get fired.
The big Q for me though is does A^ need to be populated? This isn't mentioned in the approach, though I think it is implied that it does not need to be.
So since A^ is a feeder source it triggers any onwards feeders as soon as itself is fed? I guess this implies that once the feeder for A^ has fired into A* then it doesn't fire again or we would be back to 25 feeders again?
Cheers,
Thats an interesting approach to a common problem.
So
a, b, c, d, e are children of A in our detail cube, say all are populated
We have A^ as an N in our feeder staging cube
And then A* as a big conso in our destination cube, say this has five children too
Instead of writing, which results in 25 feeder events, (A has 5 children so does A* so that is 25 feeders)
A=>A*
We write
A=>A^=>A*
Which I think results in 11 feeder events. 5=>1=>5
So even in this trivial example we can see far less feeders get fired.
The big Q for me though is does A^ need to be populated? This isn't mentioned in the approach, though I think it is implied that it does not need to be.
So since A^ is a feeder source it triggers any onwards feeders as soon as itself is fed? I guess this implies that once the feeder for A^ has fired into A* then it doesn't fire again or we would be back to 25 feeders again?
Cheers,
Technical Director
www.infocat.co.uk
www.infocat.co.uk