Learning on feeders
Feeders are weird, and core of any TM1 implementation. You can hell of a lot improve the performance of your server if you’re careful writing feeders. Sometimes I feel crazy while working on them. Learn everyday something new. So I maintain a list of all my learnings.
1. Feeders are required to feed cells which are calculated using formulae.
2. Let’s say A = B * C and C = D * E. If you feed C by E, you can either feed A by C or directly by E.
E => C
Either C => A or E => A
3. Order doesn’t matter in feeders. For example, in above example you could have written:
1)E => C
2)C => A or
1)C => A
2)E => C
4. If a chain of calculation is being performed, you need to feed multiple elements in the calculation tree. For example, in above tree, you have to feed A and C both. you can not leave A.
5. Once you’ve applied feeders and refreshed the cube, the values are stored in memory. Now even if you remove the feeders, you’ll see all values loaded. To revert the values to their pre-feeder state, once you’ve removed your feeders, unload the cube and browse again.
6. If calculation has arithmetic operations comprising addition or subtraction, you need to feed by all elements.
for example in a rule: A = N: c+d+e;
you should feed using all three (c, d and e)
7. If calculation has arithmetic operations comprising multiplication or division, you should feed using sparse elements.
if rule is –
Revenue = N: units_sold * price
Here, the sparse dimension is units_sold, so you should try feeding with units_sold instead of price.
8. Never write a feeder when a rule has been written for consolidated cells.