Actualité‎ > ‎

Multidimensionnel vs Tabulaire

publié le 24 févr. 2014 à 12:11 par Thomas Gauchet

La différence fondamentale entre le mode multidimensionnel et le mode tabulaire d'Analysis Services est la nature du moteur: multidimensionnelle dans le premier cas et relationnelle dans le second. Qu’est ce que cela signifie au juste?


Le moteur dimensionnel utilise des dimensions comme axes d’analyse. A la façon du tableur -par exemple Excel- qui contient 2 axes, le cube multidimensionnel propose de nombreux axes d’analyse qui constituent autant de coordonnées pour adresser les données. Les données sont souvent extraites d’un moteur relationnel OLTP pour construire des dimensions et des tables de faits. Lorsque plusieurs tables de faits cohabitent, à différentes granularités, l'absence de  lien entre une table de faits et une dimension est courante, alors que dans le modèle relationnel source ce lien existe.Par exemple, une facture contient un entête et des lignes reliées par un numéro de facture. Lorsqu’une mesure de l’entête, comme les frais de transport, ne peut être imputée sur les lignes, il est possible de créer deux tables de faits dans le modèle décisionnel : les entêtes et les lignes. L’entête est relié à la dimension des clients. Les lignes sont reliées au produit. Dans le moteur multidimensionnel il est également nécessaire de relier les lignes au clients. Ainsi la relation entre produit et entête n’existe pas. Par défaut, le moteur résout le calcul des frais de port pour un produit A, comme le total des frais de ports de toutes les factures, y compris celle ne contenant pas le produit A. Ce comportement peut être modifié en changeant la valeur de la propriété IgnoreUnrelatedDimension, auquel cas au lieu du total le moteur n’affichera rien (ce qui présente également l’avantage de ne pas générer des produits cartésiens). Il reste la possibilité d’écrire du code MDX pour simuler la relation entre les deux tables de faits, mais cele signifie résoudre des calculs au moment de la requête à la granularité la plus fine: une opération très peu performante dans le cas d’Analysis Service multidimensionnel.

Le moteur relationnel, de type décisionnel, d’Analysis Services sait lui résoudre naturellement les relations. Il ne repose pas sur la construction de dimensions mais sur un moteur relationnel proche de celui des systèmes sources OLTP. Il peut donc nativement prendre en charge la relation entre entête et lignes par exemple. C’est probablement une des raisons de son succès.

Comments