<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog Homsys &#187; SSAS</title>
	<atom:link href="http://blog.homsys.com/tag/ssas/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.homsys.com</link>
	<description>Business Intelligence</description>
	<lastBuildDate>Tue, 10 Aug 2010 13:10:40 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Réaliser un système décisionnel avec SQL Server 2008 R2</title>
		<link>http://blog.homsys.com/divers/realiser-un-systeme-decisionnel-avec-sql-server-2008-r2</link>
		<comments>http://blog.homsys.com/divers/realiser-un-systeme-decisionnel-avec-sql-server-2008-r2#comments</comments>
		<pubDate>Fri, 16 Jul 2010 09:17:07 +0000</pubDate>
		<dc:creator>Gaëlle Dumur</dc:creator>
				<category><![CDATA[Actualité événementielle]]></category>
		<category><![CDATA[Divers]]></category>
		<category><![CDATA[Retours d’expérience / Cas client]]></category>
		<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[Microsoft BI]]></category>
		<category><![CDATA[PowerPivot]]></category>
		<category><![CDATA[SQL Server 2008 R2]]></category>
		<category><![CDATA[SSAS]]></category>
		<category><![CDATA[SSIS]]></category>

		<guid isPermaLink="false">http://blog.homsys.com/?p=368</guid>
		<description><![CDATA[Sébastien Fantini, expert Microsoft au sein d&#8217;Homsys, publie un des premiers ouvrages en français sur la nouvelle suite BI de Microsoft : &#171;&#160;Business Intelligence avec SQL Server 2008 R2 &#8211; Maîtrisez les concepts et réalisez un système décisionnel&#160;&#187;.
Il s&#8217;adresse à tous les membres d&#8217;une équipe décisionnelle : chef de projet, architecte, développeur ETL, développeur de rapports, assistance [...]]]></description>
			<content:encoded><![CDATA[<p>Sébastien Fantini, expert Microsoft au sein d&#8217;Homsys, publie un des premiers ouvrages en français sur la nouvelle suite BI de Microsoft : &laquo;&nbsp;Business Intelligence avec SQL Server 2008 R2 &#8211; Maîtrisez les concepts et réalisez un système décisionnel&nbsp;&raquo;.</p>
<p>Il s&#8217;adresse à tous les membres d&#8217;une équipe décisionnelle : chef de projet, architecte, développeur ETL, développeur de rapports, assistance à la maîtrise d&#8217;ouvrage (AMOA). Les concepts clés du décisionnel sont détaillés tout au long du livre et mis en application concrètement au travers d&#8217;un cas. Ainsi, au cours des différents chapitres, le lecteur va utiliser les différents outils de la suite SQL Server pour bâtir progressivement le système décisionnel d&#8217;une société virtuelle, Distrisys. L&#8217;ouvrage regorge de solutions concrètes et professionnelles et de bonnes pratiques issues des retours d&#8217;expérience de l&#8217;auteur. Sont abordés les sujets suivants : &#8211; L&#8217;architecture des serveurs et le choix des licences &#8211; La modélisation de l&#8217;entrepôt de données &#8211; La conception du cube Analysis Services &#8211; La réalisation des différents types de flux d&#8217;alimentation ETL avec Integration Services &#8211; L&#8217;utilisation d&#8217;Excel et de PowerPivot pour exploiter les données décisionnelles &#8211; La réalisation de rapports opérationnels et décisionnels avec Reporting Services.</p>
<p>Nouveauté juillet 2010 aux <a title="Editions ENI" href="http://www.editions-eni.fr/Books/Business-Intelligence-avec-SQL-Server-2008-R2-Maitrisez-les-concepts-et-realisez-un-systeme-decisionnel/.6_3a6222cf-b921-41f5-886c-c989f77ba994_75c514cc-b7b3-49ed-a7ca-c8e516ab7429_97dcef86-d499-427d-9fb1-9377e15745ae_1_1_d9bd8b5e-f324-473f-b1fc-b41b421c950f.html" target="_blank">Editions ENI</a> &#8211; Lien <a title="Livre SQL Server 2008 R2 sur Amazon" href="http://www.amazon.fr/Business-Intelligence-avec-Server-2008/dp/274605566X/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1278761355&amp;sr=8-1" target="_blank">Amazon</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.homsys.com/divers/realiser-un-systeme-decisionnel-avec-sql-server-2008-r2/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SSAS : Aggréger des mesures de cube sous forme de médiane</title>
		<link>http://blog.homsys.com/retours-experience-cas-client/ssas-aggreger-des-mesures-de-cube-sous-forme-de-mediane</link>
		<comments>http://blog.homsys.com/retours-experience-cas-client/ssas-aggreger-des-mesures-de-cube-sous-forme-de-mediane#comments</comments>
		<pubDate>Tue, 05 Jan 2010 15:48:33 +0000</pubDate>
		<dc:creator>Clément Lefaure</dc:creator>
				<category><![CDATA[Retours d’expérience / Cas client]]></category>
		<category><![CDATA[Trucs & astuces]]></category>
		<category><![CDATA[agrégation]]></category>
		<category><![CDATA[median]]></category>
		<category><![CDATA[médiane]]></category>
		<category><![CDATA[mesure]]></category>
		<category><![CDATA[SSAS]]></category>

		<guid isPermaLink="false">http://blog.homsys.com/?p=152</guid>
		<description><![CDATA[Lors d&#8217;une récente mission chez un client nous avons été confronté au besoin d&#8217;agréger des mesures de cube sous forme de médiane.
Intérêt d&#8217;agréger une mesure en médiane
Concrètement, ce besoin revient à retourner la valeur médiane d&#8217;une mesure pour les dimensions en cours, plutôt que classiquement la somme ou la moyenne.  Sur un exemple basique, pour [...]]]></description>
			<content:encoded><![CDATA[<p>Lors d&#8217;une récente mission chez un client nous avons été confronté au besoin d&#8217;<strong>agréger</strong> des mesures de cube sous forme de <strong>médiane</strong>.</p>
<h4>Intérêt d&#8217;agréger une mesure en médiane</h4>
<p>Concrètement, ce besoin revient à retourner la <em>valeur médiane</em> d&#8217;une mesure pour les dimensions en cours, plutôt que classiquement la somme ou la moyenne.  Sur un exemple basique, pour une mesure Chiffre d&#8217;Affaire, autour d&#8217;un axe d&#8217;analyse Région, le besoin client est de retourner la valeur médiane du CA de chacune des régions :</p>
<p style="padding-left: 30px">EX :   <span style="color: #000080"> [</span><span style="color: #000080">Bretagne=10M€,   Sud Ouest=17M€, </span><span style="color: #000080">PACA=23M€,   Rhone Alpes=31M€,   IDF=51M€ ]</span></p>
<p style="padding-left: 30px">Le CA au niveau national sera la valeur médiane de la liste des valeurs régions, soit 23M€.</p>
<p>Fonctionnellement prendre la valeur médiane (plutôt que la valeur moyenne) a pour effet de minimiser l&#8217;impact des valeurs extrêmes, et donc de <strong>minimiser le &laquo;&nbsp;bruit&nbsp;&raquo;</strong> que pourrait provoquer des erreurs de saisie ou de chargement.</p>
<p style="padding-left: 30px">EX : Si l&#8217;on rajoute <span style="color: #000080">[Alsace=300M€]</span> à la liste précédente (ce qui pourrait correspondre à une erreur de saisie &#8211; avec un zéro de trop)</p>
<p style="padding-left: 30px">La valeur médiane au niveau national est 27M€</p>
<p style="padding-left: 30px">=&gt; L&#8217;impact de l&#8217;erreur de saisie de l&#8217;opérateur Alsacien sur le CA national est minimisé. Une agrégation en moyenne aurait &laquo;&nbsp;tiré vers le haut&nbsp;&raquo; le CA national (moyenne = 72M€)</p>
<p>Sur l&#8217;exemple donné &#8211; qui est volontairement simpliste &#8211; le bénéfice de l&#8217;agrégation en médiane est plutôt léger, mais sur une liste de valeurs plus importante, il y a de nombreux cas fonctionnels où la médiane d&#8217;une liste de valeurs est bien plus représentative (et intéressante pour l&#8217;utilisateur) que la moyenne .</p>
<h4>Problématique</h4>
<p>Le problème vient du fait que les agrégation de type médiane <strong>n&#8217;est pas supporté nativement </strong>par Analysis Services.</p>
<div id="attachment_156" class="wp-caption aligncenter" style="width: 296px"><img class="size-full wp-image-156" src="http://blog.homsys.com/wordpress/wp-content/uploads/2010/01/median.jpg" alt="Type d'agrégation supportés par SSAS" width="286" height="248" /><p class="wp-caption-text">Types d&#39;agrégation supportés par SSAS</p></div>
<h4>Solution</h4>
<p><span style="color: #000000">La solution que nous avons proposée est d&#8217;utiliser la <strong>fonction MDX  MEDIAN</strong>(). C&#8217;est une fonction mathématique de base qui retourne la valeur médiane d&#8217;une mesure pour un &laquo;&nbsp;set&nbsp;&raquo; donné.<br />
</span></p>
<p><span style="color: #000000">Elle doit être appelée avec 2 paramètres :</span></p>
<ul>
<li><span style="color: #000000">L&#8217;ensemble de valeurs sur lequel &laquo;&nbsp;ventiler&nbsp;&raquo; la valeur médiane, le &laquo;&nbsp;set&nbsp;&raquo;<br />
</span></li>
<li><span style="color: #000000">et la mesure à agréger</span></li>
</ul>
<p><span style="color: #000000">Dans le cas du CA par région cela donnerait une mesure calculée du style  :</span></p>
<p style="padding-left: 30px"><span style="color: #000080"><span style="color: #0000ff">CA_National =     MEDIAN( [Geography].[Region].Members</span><span style="color: #000000"><span style="color: #0000ff">, </span>(= liste de valeurs)</span><br />
<span style="color: #0000ff">[Measures].[CA])</span> <span style="color: #000000">(= mesure à agréger)</span></span></p>
<p>=&gt; Cette solution fonctionne et retourne effectivement la valeur médiane du CA de chaque région</p>
<h4>En allant plus loin</h4>
<p>On remarquera qu&#8217;<strong>en réalité la solution proposée n&#8217;agrège pas &#8211; à proprement parler &#8211; en médiane</strong> : elle calcule la valeur médiane d&#8217;une mesure existante. Et ce n&#8217;est pas tout à fait la même chose ! Car cette mesure existante a son propre type d&#8217;agrégation&#8230;</p>
<p>C&#8217;est à dire, qu&#8217;elle calcule la valeur médiane, d&#8217;une liste de valeurs qui restent à leur type d&#8217;agrégation par défaut. Dans l&#8217;exemple, la formule d&#8217;agrégation ne fonctionne qu&#8217;au niveau national : la valeur retournée est la médiane des valeurs CA au niveau région, valeurs qui sont elle même agrégées&#8230; dans leur type d&#8217;agrégation par défaut définit dans SSAS (c&#8217;est à dire Somme, Moyenne etc&#8230;)</p>
<p>Le besoin de notre client était plus complexe que cela : il souhaitait une valeur médiane d&#8217;une mesure quelque soit l&#8217;axe d&#8217;analyse et quelque soit le niveau de navigation dans la dimension.</p>
<p>Par exemple sur une mesure <span style="color: #000080"><em>DélaisRésolutionIncident</em></span>, le souhait est de voir retournée la valeur médiane (de toute les valeurs disponibles) <strong>quelque soit l&#8217;axe d&#8217;analyse</strong> : que ce soit au niveau d&#8217;un mois, d&#8217;une année, d&#8217;un service, d&#8217;une région, d&#8217;une sous région etc.</p>
<p>Nous avons proposé une solution calée sur la précédente : utiliser la fonction MEDIAN en passant cette fois comme &laquo;&nbsp;set&nbsp;&raquo;  l&#8217;ensemble des lignes  de faits disponibles. Cela donne quelque chose comme :</p>
<p style="padding-left: 30px"><span style="color: #0000ff">MEDIAN_DelaisResIncident =     MEDIAN( [DimFait].[DimFait hierarchy].[DimFait fact line].Members,<span style="color: #000000"> (= ensemble des lignes de fait)</span><br />
[Measures].[ValDelaisResolutionIncident])<span style="color: #000000"> (= mesure à agréger)</span></span></p>
<p>Pour cette formule nous avons du créer dans le cube &#8211; via le DSV &#8211; une dimension de fait dont le nombre de lignes au niveau le plus fin est exactement le même que celui de la table de fait. Cette dimension &laquo;&nbsp;virtuelle&nbsp;&raquo; ne sert qu&#8217;à définir le &laquo;&nbsp;set&nbsp;&raquo; de valeurs.</p>
<p>=&gt; Cette solution fonctionne et permet une réelle agrégation de mesure sous forme de médiane.</p>
<p>PS : Ce second exemple illustre bien l&#8217;intérêt de la médiane évoqué en introduction : si par exemple un incident est resté non clôturé plusieurs mois, alors que généralement ils le sont en quelques minutes, cette anomalie &laquo;&nbsp;pourrira&nbsp;&raquo; l&#8217;indicateur de moyenne. L&#8217;indicateur de médiane en revanche sera bien plus pertinent pour l&#8217;utilisateur.</p>
<h4>Temps de réponse</h4>
<p>Si la solution proposée fonctionne sur le papier et avec nos jeux de tests, elle s&#8217;est révélée un peu décevante dans la pratique. Avec l&#8217;augmentation du nombre de lignes de faits, <strong>le temps de réponse du cube explose</strong> lorsque l&#8217;on fait appel à la mesure utilisant la médiane.</p>
<p>En effet, avec un nombre de ligne de l&#8217;ordre de plusieurs dizaines de milliers d&#8217;enregistrements, le temps de réponse dépasse les 2 minutes (le &laquo;&nbsp;time out&nbsp;&raquo; de notre outil de restitution). A titre de comparaison, l&#8217;agrégation classique en moyenne, sur les mêmes données met moins d&#8217;une seconde&#8230;</p>
<p><strong>=&gt; Cette solution est donc à utiliser avec précaution.</strong></p>
<h4>Analyse</h4>
<p><span style="color: #000000"> <span style="color: #333333">Mais pourquoi cela prend-t-il autant de temps ?<br />
</span> </span></p>
<p><span style="color: #333333">Cette fonction MDX  MEDIAN est à l&#8217;origine une fonction mathématique, pas une fonction d&#8217;agrégation. Les valeurs ne sont donc pas pré-calculées avec cette médiane comme elles le seraient avec les agrégations en Moyenne ou en Somme. La solution proposée est en réalité <strong>une utilisation détournée de la fonction</strong> MEDIAN</span></p>
<p><span style="color: #333333">Dans tous les exemples d&#8217;utilisation que l&#8217;on trouve de cette fonction,  le premier paramètre (le &laquo;&nbsp;set&nbsp;&raquo;) est de cardinalité très faible. Alors que dans le cas exposé ci-dessus l&#8217;ensemble de &laquo;&nbsp;ventilation&nbsp;&raquo; est l&#8217;ensemble des lignes de faits, donc un ensemble à cardinalité plutôt élevée.</span></p>
<p><span style="color: #333333">La <strong>fonction Median ne permet pas de pré-aggrégation </strong>dans la mesure ou son algorithme de résolution nécessite 2 &laquo;&nbsp;passages&nbsp;&raquo; sur la liste de valeur (là où la Moyenne n&#8217;en nécessite qu&#8217;un) : un passage pour trier toutes les valeurs, un autre pour prendre la moyenne des deux valeurs du milieu de la liste triée.</span></p>
<p><span style="color: #333333">Dans le premier exemple avec le CA par région, en réalité le cube se base sur les pré-agrégations sous forme de Somme du CA stockées pour chaque région, et calcule ensuite la médiane de ces pré-agrégations. L&#8217;algorithme des 2 &laquo;&nbsp;passages&nbsp;&raquo; n&#8217;est en fait déroulé que sur une liste de 22 valeurs. Tandis que dans notre cas il est déroulé sur le nombre de lignes de fait.</span></p>
<p><span style="color: #000000"><span style="color: #333333"><strong>=&gt; La fonction MDX  MEDIAN n&#8217;est donc à utiliser pour agréger une mesure que sur des tables de faits de faible population.</strong></span><br />
</span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.homsys.com/retours-experience-cas-client/ssas-aggreger-des-mesures-de-cube-sous-forme-de-mediane/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
