Aujourd’hui je vous propose d’aborder le sujet du writeback dans SSAS qui permet aux utilisateurs de faire des simulations à travers Excel.
4 types de simulations sont possibles :
- USE_EQUAL_ALLOCATION : répartition égale dans les membres de la hiérarchie
- USE_EQUAL_INCREMENTAL : répartition en prenant en compte des valeurs pré-existantes
- USER_WEIGHTED_ALLOCATION : répartition dans les membres en fonction d’un poids (valeur entre 0 et 1)
- USER_WEIGHTED_INCREMENTAL : répartition dans les membres en fonction d’un poids et de valeurs pré-existantes
Pour en savoir plus, j’ai trouvé sur la toile un super article: http://blogs.msdn.com/b/querysimon
Tout d’abord merci à Simon pour cet article et surtout pour le petit zip que l’on peut télécharger. En effet ce zip permet de mettre en application ce qu’il explique.
Pour compléter son article et comprendre encore plus vite voici :
1) une correspondance pour chacun des champs qu’il a créé :
- USE_EQUAL_ALLOCATION : M divided equal
- USE_EQUAL_INCREMENTAL : M incremental equal
- USER_WEIGHTED_ALLOCATION : M allocation equal
- USER_WEIGHTED_INCREMENTAL : M allocated incremental
2) La vision du cube avant toute simulation
3) Voici un premier tableau récapitulatif avec les différentes ventilations d’une valeur 100:
4) Voici les calculs associés pour une compréhension plus rapide :
Et enfin en bonus voici le genre de questions que nous nous sommes posés :
Question 1 : Une mesure A est basée sur une mesure B. Est ce que si une simulation est faite sur la mesure B cela impacte la mesure A?
Réponse : Oui. Exemple d’un cube avec 2 mesures : le CA et une mesure calculée se basant sur le CA, le CA/nb produit. Si une simulation est faite sur le CA, alors la mesure CA/nb sera impactée en conséquence.
Question 2 : Si je rafraichis les données du cube, est ce que l’on retrouve les valeurs de simulation?
Réponse : Oui. Exemple j’ai une valeur 10 dans une cellule. Je passe la valeur à 20 (simulation). En base de données le résultat de la simulation sera 10. Si la valeur dans mon cube passe de 10 à 30, après process et mise à jour de mon TCD excel, j’aurai la valeur 30 + 10 (valeur stockée dans la table partition de simulation) soit 40. Une simple addition est faite entre la nouvelle valeur du cube et le résultat du calcul qu’il a fallu faire pour arriver à la simulation faite précédemment soit + 10.
Question 3 : Dans le cas d’application de la formule Excel dans une cellule, est ce que cette dernière est stockée en base et est ce que si les valeurs en sources bougent le résultat sera mis à jour?
Réponse : La formule Excel n’est pas stockée en base. Par contre la résultante de ce calcul sera stockée en base après publication. Si une formule Excel est ajoutée sur une cellule du cube exemple : =20*Feuil1!C11, la cellule en question ne sera plus mise à jour car le calcul Excel fait sur cette valeur primera sur les valeurs mises à jour.
Question 4 : Est ce que le writeBack est présent dans la version standard d’SQL server?
Réponse : Oui d’après le site msdn
Si vous avez des astuces à partager sur le sujet, n’hésitez pas à mettre un commentaire!