Business Intelligence - M1DAC OLAP

Documents pareils
2 Serveurs OLAP et introduction au Data Mining

OLAP : Mondrian + Pentaho. Maguelonne Teisseire Hugo Alatrista Salas hugo.alatrista- salas@teledetec9on.fr Flavien Bouillot

Les Entrepôts de Données

Entrepôts de données. NEGRE Elsa Université Paris-Dauphine

ETL Extract - Transform - Load

Datawarehouse: Cubes OLAP. Marlyse Dieungang Khaoula Ghilani

2014/2015. Rapport 4 REALISE PAR : ISMAIL NAIT ABDELLAH OUALI SOUFIANE HOURRI MOHAMED OUSSAFI ENCADRE PAR : MME L.LAMRINI ANOUAR OUFQIR SMARTSIR

Bases de données multidimensionnelles et mise en œuvre dans Oracle

et les Systèmes Multidimensionnels

FreeAnalysis. Schema Designer. Cubes

Les entrepôts de données

Urbanisation des SI-NFE107

Introduction aux outils BI de SQL Server Création de cubes dans SQL Server Analysis Services (SSAS)

Fouille de Données : OLAP & Data Warehousing

L informatique des entrepôts de données

La place de la Géomatique Décisionnelle dans le processus de décision

Bases de Données OLAP

Le "tout fichier" Le besoin de centraliser les traitements des fichiers. Maitriser les bases de données. Historique

Chapitre IX. L intégration de données. Les entrepôts de données (Data Warehouses) Motivation. Le problème

Introduction à la B.I. Avec SQL Server 2008

SQL Server 2012 Implémentation d'une solution de Business Intelligence (Sql Server, Analysis Services...)

LES ENTREPOTS DE DONNEES

Business Intelligence : Informatique Décisionnelle

et les Systèmes Multidimensionnels

Plan. Ce qu est le datawarehouse? Un modèle multidimensionnel. Architecture d un datawarehouse. Implémentation d un datawarehouse

Bases de Données Avancées

Hervé Couturier EVP, SAP Technology Development

Plan. Introduction Eléments de la théorie des systèmes d'informations Les entrepôts de données (Datawarehouse) Les datamart Architecture Modélisation

25/05/2012. Business Intelligence. Plan de Présentation

1 Introduction et installation

UE 8 Systèmes d information de gestion Le programme

Fournir un accès rapide à nos données : agréger au préalable nos données permet de faire nos requêtes beaucoup plus rapidement

BI = Business Intelligence Master Data-ScienceCours 3 - Data

Didier MOUNIEN Samantha MOINEAUX

Présentation du module Base de données spatio-temporelles

PHP 5. La base de données MySql. A. Belaïd 1

RÉPUBLIQUE ALGÉRIENNE DÉMOCRATIQUE ET POPULAIRE. Ministère de l Enseignement Supérieur et de la Recherche Scientifique I.N.I THEME : Les outils OLAP

Le Géodécisionnel. P7 : Projet Bibliographique Dans le cadre du Mastère ASIG. Les SIG au service du géodécisionnel.

Magasins et entrepôts de données (Datamart, data warehouse) Approche relationnelle pour l'analyse des données en ligne (ROLAP)

BUSINESS INTELLIGENCE. Une vision cockpit : utilité et apport pour l'entreprise

Mémoire de fin d études. Thème Conception et réalisation d un Data Warehouse pour la mise en place d un système décisionnel

Introduction aux SGBDR

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

BI2 : Un profil UML pour les Indicateurs Décisionnels

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

A QUOI SERVENT LES BASES DE DONNÉES?

MTI820 Entrepôts de données et intelligence d affaires. Les applica+ons de BI

OpenPaaS Le réseau social d'entreprise

Bases de Données. Stella MARC-ZWECKER. Maître de conférences Dpt. Informatique - UdS

Le Data Warehouse. Fait Vente. temps produit promotion. magasin. revenu ... Produit réf. libellé volume catégorie poids. Temps jour semaine date ...

Ministère de l Enseignement Supérieur et de la Recherche Scientifique. Ecole nationale Supérieure d Informatique (ESI) (Oued Semar, Alger) Mémoire

Oracle Décisionnel : Modèle OLAP et Vue matérialisée D BILEK

Les bases de données

SQL Server 2012 et SQL Server 2014

L offre décisionnel IBM. Patrick COOLS Spécialiste Business Intelligence

Entrepôt de données et l Analyse en ligne. Maguelonne Teisseire Hugo Alatrista Salas hugo.alatrista- salas@teledetec9on.fr Flavien Bouillot

Les entrepôts de données et l analyse de données

Compétences Business Objects

Bases de données cours 4 Construction de requêtes en SQL. Catalin Dima

Introduction aux outils BI de SQL Server Fouille de données avec SQL Server Analysis Services (SSAS)

Workflow/DataWarehouse/DataMining LORIA - Université d automne Informatique décisionnelle - L. Mirtain 1

Les BASES de DONNEES dans WampServer

Intégration de données hétérogènes et réparties. Anne Doucet

A QUOI SERVENT LES BASES DE DONNÉES?

Les Entrepôts de Données. (Data Warehouses)

BI = Business Intelligence Master Data-Science

Langage SQL : créer et interroger une base

Chapitre VIII. Les bases de données. Orientées Objet. Motivation

CREATION WEB DYNAMIQUE

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

Un datawarehouse est un entrepôt de données (une base de données) qui se caractérise par des données :

La problématique. La philosophie ' ) * )

Présentation Windows Azure Hadoop Big Data - BI

Tout ce que vous avez toujours voulu savoir sur SAP HANA. Sans avoir jamais osé le demander

Information utiles. webpage : Google+ : digiusto/

Bases de données et sites WEB

Rapport de DEA. Intégration de versions fonctionnelles dans les entrepôts de données multimédias au sein des systèmes OLAP. Anne-Muriel ARIGON

SQL SERVER 2008, BUSINESS INTELLIGENCE

Bases de données et sites WEB Licence d informatique LI345

CONCEPTION ET REALISATION D'UN GENERATEUR DE TABLEAUX DE BORD PROSPECTIFS MULTIDIMENSIONNELS

SQL Historique

Intégrité des données

Bases de données relationnelles

Introduction aux entrepôts de données (2)

Entrepôt de données 1. Introduction

Exploration de problèmes de performance d un entrepôt de données. par. Louisa Demmou

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

Techniques d optimisation des requêtes dans les data warehouses

Introduction à l Informatique Décisionnelle - Business Intelligence (7)

Grégoire de Lassence. Copyright 2006, SAS Institute Inc. All rights reserved.

Systèmes d information décisionnels (SIAD) Extraction de connaissances (KDD) Business Intelligence (BI)

BIRT (Business Intelligence and Reporting Tools)

Bases de Données relationnelles et leurs systèmes de Gestion

Traitements linguistiques et business intelligence (BI) pour mieux comprendre ce que recherchent les visiteurs d'un site Web Le projet GALATEAS

Introduction au Système de Gestion de Base de Données et aux Base de Données

Devoir Data WareHouse

Le concept de Data Warehouse a été formalisé pour la première fois en 1990.

Fonctionnalités des différentes éditions de SQL Server 2012

Intelligence Economique - Business Intelligence

Transcription:

Business Intelligence - M1DAC OLAP Ludovic Denoyer et Laure Soulier Université Pierre et Marie Curie LIP6, Paris - France 6 février 2017 1 / 66

ENTREPÔT DE DONNÉES Les entrepôts de données (data warehouse) sont : Orientés sujet Les données sont organisées par sujet ou faits (ex : clients, produits, ventes, etc.). Les données sont organisées selon des dimensions Intégrés Les données, qui proviennent de diverses sources hétérogènes, sont consolidées et intégrées dans l entrepôt. Historiques Les données ont très souvent une composante temporelle (ex : date et heure d une transaction). Non-volatiles Une fois insérées dans l entrepôt, les données ne sont jamais modifiées ou effacées ; elle sont conservées pour des analyses futures. 2 / 66

MODÈLE DIMENSIONNEL Contrairement aux systèmes opérationnels, le stockage des données dans un DW se fait habituellement sous la forme d un schéma dimensionnel. Un tel schéma nécessite de définir : des dimensions des faits Dimensions Les dimensions sont les axes sur lesquels on souhaite baser l analyse des données : la date, la région géographique, le type de produit, etc... 3 / 66

MODÈLE DIMENSIONNEL Faits Les faits sont les données que l on souhaite analyser : On aura des tables de faits pour les ventes (chiffre d affaire net, quantités et montants commandés, quantités facturées, quantités retournées, volumes des ventes, etc.) par exemple ou sur les stocks (nombre d exemplaires d un produit en stock, niveau de remplissage du stock, taux de roulement d une zone, etc.), ou peut être sur les ressources humaines (performances des employés, nombre de demandes de congés, nombre de démissions, taux de roulement des employés, etc.). 4 / 66

STOCKAGE DE DONNÉES DIMENSIONNELLES DANS UNE BD RELATIONNELLE Différents schéma de stockage : Schéma en étoile Schéma en flocon Schéma en constellation 5 / 66

STOCKAGE DE DONNÉES DIMENSIONNELLES DANS UNE BD RELATIONNELLE Table des faits La table des faits contient une clef, ainsi que des champs dimension (foreing keys) et des champs de mesure. Les champs dimension permettent de relier un fait à ses dimensions, les champs de mesure sont des mesures sur le fait : nombre de vente, etc... Table des dimensions Chaque dimension est associée à une table (ou plusieurs dans le cas de dimensions hiérarchiques). Les dimensions contiennent à la fois une clefs, ainsi que des champs descriptifs des dimensions. 6 / 66

MODÈLE DIMENSIONNEL : ÉTUDE DE CAS Petit énoncé : Considérons le cas classique d une société de vente de produit. Elle possède des sources de données sur les produits, les ventes et les clients. On propose de concevoir une ED qui permette de fournir le chiffre d affaires des ventes d un produit, par date, client, et vendeur, ainsi que toutes les sommations possibles de chiffre d affaires. Dessinez le schéma de BD correspondant 7 / 66

ETUDE DE CAS Source : J.-F. Desnos 8 / 66

DÉFINITION OLAP En informatique, et plus particulièrement dans le domaine des bases de données, le traitement analytique en ligne (anglais online analytical processing, OLAP) est un type d application informatique orienté vers l analyse sur-le-champ d informations selon plusieurs axes, dans le but d obtenir des rapports de synthèse tels que ceux utilisés en analyse financière. Les applications de type OLAP sont couramment utilisées en informatique décisionnelle, dans le but d aider la direction à avoir une vue transversale de l activité d une entreprise. Source : wikpiedia OLAP s oppose au traitement de transactions en ligne (online transaction processing abr. OLTP) qui s inscrit dans un système opérationnel (en production). 9 / 66

OLAP OLAP fournit donc un cadre générique permettant l analyse des données sur plusieurs dimensions. OLAP définit principalement des opérations génériques sur les hypercubes permettant l analyse des données (y compris par des non experts). OLAP repose sur des technologies permettant le calcul et la mise à jour des hypercubes. OLAP définit aussi un langage de requête permettant l interrogation d un hypercube (langage MDX) 10 / 66

DIFFÉRENTES TECHNOLOGIES Plusieurs techinlogies/philosophies sont liées à l implémentation d un système OLAP : ROLAP - Relational OLAP : OLAP sur du relationnel MOLAP - Multidimensional OLAP : OLAP sur un DW dimensionnel HOLAP - Hybrid OLAP : Mélange des deux (relationnel si nécessaire) Mais aussi : Spatial OLAP (SOLAP), Desktop OLAP (DOLAP),... 11 / 66

TECHNOLOGIES Source : B. Espinasse 12 / 66

ROLAP ROLAP est la technolgoies la plus utilisée en OLAP car les SGBD relationnels sont très largement répandus Cependant les SGBDs relationnels tout seuls ne sont pas adaptés à des anlayses OLAP nécessité d étendre les fonctionnalités d un SGDB Un moteur ROLAP : Permet de faire les calculs adaptés aux requêtes OLAP sur le SGBD relationnel Il permet aussi de générer des requêtes adaptée au schéma de l entrepôt 13 / 66

ROLAP Source : B. Espinasse 14 / 66

MOLAP La philosophie MOLAP consiste au stockage des données directement dans une structure de cube multidimensionnel : MOLAP nécessite le pré-calcul et le stockage des informations du cube, mais il permet des extractions très rapides et optimisées. 15 / 66

MOLAP Source : B. Espinasse 16 / 66

HOLAP Les systèms HOLAP tente d exploiter le meilleur des deux mondes : La structure du moteur SGBD pour le stockage des données détaillées Un système de type MOLAP comme structure de données pour un certain nombre de requêtes (données agrégées) 17 / 66

HOLAP Source : B. Espinasse 18 / 66

HOLAP 19 / 66

HOLAP 20 / 66

OPÉRATIONS GÉNÉRIQUES IDÉE GÉNÉRALE A partir du schéma en étoile précédent, il est possible de construire des tableaux multi-dimensionnels (ou hypercubes) permettant l analyse des données du DW. Source : J.-F. Desnos 21 / 66

OPÉRATIONS DE MANIPULATION MULTIDIMENSIONNELLES Catégorie Opérateur Description Forage DrillDown Forage vers le bas RollUp Forage vers le haut Frotate Rotation des faits Paramétrage Rotation Drotate Rotation des dimensions d une TM Hrotate Rotation des hiérarchies d une dimension Sélection Select Sélection des valeurs des paramètres ou mesures UnSelect Désélection Permutation Switch Permutation de deux valeurs d un même paramètre des Présentation paramètres Order Ordonnancement de valeurs de paramètres d une TM Nest Permutation de deux paramètres Calcul Cube Permet de spécifier une fonction d agrégation UnCube Permet de supprimer une fonction d agrégation Modification DelM Suppression d une mesure Transformation du fait AddM Ajout d une mesure d une TM Modification Push Transformation d un paramètre en mesure dimension Pull Transformation d une mesure en paramètre 22 / 66

OPÉRATIONS DRILLDOWN ET ROLLUP DrillDown (TM1,Temps,Jour) RollUp (TM2,Temps,Mois) 23 / 66

OPÉRATIONS - DRILL(S) 24 / 66

OPÉRATIONS - SLICE/SELECTION 25 / 66

OPÉRATIONS - DICE/SÉLECTION D UN CUBE 26 / 66

OPÉRATIONS - ROTATION 27 / 66

OPÉRATIONS - DELM/ADDM : AJOUT ET SUPPRESSION DE DIMENSION 28 / 66

MONDRIAN Nous allons nous intéresser concrètement au système ROLAP Mondrian : Serveur OLAP écrit en JAVA Supporte le langage MDX Supporte l interface olap4j permettant l utilisation de plusieurs technologies OLAP en JAVA Attention : ceci est un exemple illustratif... 29 / 66

MONDRIAN Mondrian est utilisé pour : L analyse interactive haute performance de grands ou de petits volumes d informations. L exploration de données multi-dimensionnelles, par exemple l analyse des ventes par ligne de produits, par région, par période de temps Le calcul avancé en utilisant les expressions de calcul du langage MDX La transformation de requêtes MDX en Structured Query Language (SQL) pour récupérer des réponses aux requêtes dimensionnelles La formulation de requêtes à grande vitesse grâce à l utilisation des tableaux aggrégés stockés dans le SGBDR 30 / 66

MONDRIAN Le schéma OLAP est écrit en XML. Ce XML permet la description de : La base physique (relationnelle) sur laquelle seront basés les calculs La définition sur cette base des table de faits et tables de dimensions La définition sur cette base des mesures La définition de tables agrégées 31 / 66

MONDRIAN <Schema> <Cube name=" Sales "> <Table name=" sales_ fact_ 1997 "/> <Dimension name="gender " foreignkey =" customer_id "> <Hierarchy hasall =" true " allmembername=" All Genders " primarykey=" customer_id <Table name=" customer"/> <Level name="gender " column=" gender " uniquemembers=" true "/> </Hierarchy > </Dimension> <Dimension name="time " foreignkey =" time_id "> <Hierarchy hasall =" f a l s e " primarykey =" time_id "> <Table name=" time_by_day"/> <Level name=" Year " column=" the_year " type ="Numeric " uniquemembers=" true "/> <Level name=" Quarter " column=" quarter " uniquemembers=" f a l s e "/> <Level name="month" column=" month_of_year " type ="Numeric " uniquemembers=" f </Hierarchy > </Dimension> <Measure name=" Unit Sales " column=" u ni t _ s a le s " aggregator ="sum" formatstring ="#,###"/ > <Measure name=" Store S a l e s " column=" s t o r e _ s a l e s " aggregator ="sum" formatstring ="#,###.##"/ > <Measure name=" Store Cost " column=" s t o r e _ c o s t " aggregator ="sum" formatstring ="#,###.00"/ > <CalculatedMember name=" P r o f i t " dimension =" Measures " formula ="[ Measures ]. [ Store S a l e s ] [ Measures ]. [ Store Cost ]" > <CalculatedMemberProperty name="format_string" value =" $ #,##0.00"/ > </CalculatedMember> </Cube> </Schema> 32 / 66

MONDRIAN Le schema physique donne des informations sur la structuration de la BD : <Schema> <PhysicalSchema > <Table name=" sales_ fact_ 1997 "/> <Table name=" customer"/> <Table name=" time_by_day"/>... </PhysicalSchema > <Cube>.... </Cube> </Schema> 33 / 66

MONDRIAN Définition du cube et du fait <Schema>.... <Cube name=" Sales "> <Table name=" sales_ fact_ 1997 "/>.... </Cube> </Schema> 34 / 66

MONDRIAN Définition des mesures <Measure name=" Unit Sales " column=" u ni t _ s a le s " aggregator ="sum" formatstring ="#,###"/ > <Measure name=" Store S a l e s " column=" s t o r e _ s a l e s " aggregator ="sum" formatstring ="#,###.##"/ > <Measure name=" Store Cost " column=" s t o r e _ c o s t " aggregator ="sum" formatstring ="#,###.00"/ > <CalculatedMember name=" P r o f i t " dimension =" Measures " formula ="[ Measures ]. [ Store S a l e s ] [ Measures ]. [ Store Cost ]" > <CalculatedMemberProperty name="format_string" value =" $ #,##0.00"/ > </CalculatedMember> 35 / 66

MONDRIAN Définition des dimensions (membres, hiérarchie, niveau) (1/2) <Dimension name="gender " foreignkey =" customer_id "> <Hierarchy hasall =" true " allmembername=" All Genders " primarykey=" customer_id <Table name=" customer"/> <Level name="gender " column=" gender " uniquemembers=" true "/> </Hierarchy > </Dimension> <Dimension name="time " foreignkey =" time_id "> <Hierarchy hasall =" f a l s e " primarykey =" time_id "> <Table name=" time_by_day"/> <Level name=" Year " column=" the_year " type ="Numeric " uniquemembers=" true "/> <Level name=" Quarter " column=" quarter " uniquemembers=" f a l s e "/> <Level name="month" column=" month_of_year " type ="Numeric " uniquemembers=" f </Hierarchy > </Dimension> 36 / 66

MONDRIAN Définition des dimensions (2/2) <Dimension name= Promotion table = promotion key= Promotion Id > <Attributes > <Attribute name= Promotion Id keycolumn= promotion_id hashierarchy = false / > <Attribute name= Promotion Name keycolumn= promotion_name hashierarchy = f a l s e /> <Attribute name= Media Type keycolumn= media_type hierarchyallmembername= All Media hashierarchy = false / > </Attributes > <Hierarchies > <Hierarchy name= Media Type allmembername= All Media > <Level a t t r i b u t e = Media Type /> </Hierarchy > <Hierarchy name= Promotions allmembername= AllPromo > <Level a t t r i b u t e = Promotion Name /> </Hierarchy > </Hierarchies > </Dimension> 37 / 66

MONDRIAN Plusieurs outils permettant de réaliser ces hypercubes sont disponibles : Eclipse Pentaho Cube Designer Mondrian Workbench 38 / 66

MDX Définition Le MDX (de l anglais Multidimensional Expressions, «expressions multidimensionnelles») est un langage de requête pour les bases de données OLAP, analogue au rôle de SQL pour les bases de données relationnelles. C est aussi un langage de calcul avec une syntaxe similaire à celle des tableurs. Le langage des expressions multidimensionnelles possède une syntaxe appropriée à l interrogation et manipulation des données multidimensionnelles mémorisées dans un cube OLAP1. Bien qu il soit possible de traduire certaines expressions dans le langage SQL traditionnel, cela nécessite une syntaxe SQL souvent maladroite même pour des expressions MDX très simples. MDX a été adopté par une large majorité de fournisseur de la technologie OLAP et est devenu un standard de facto pour les systèmes OLAP. Source : wikipedia 39 / 66

MDX - EXEMPLE SELECT { [Measures].[Store Sales] } ON COLUMNS, { [Date].[2002], [Date].[2003] } ON ROWS FROM Sales WHERE ( [Store].[USA].[CA] ) 40 / 66

MDX - EXEMPLE SELECT { [Measures].[Store Sales] } ON COLUMNS, { [Date].[2002], [Date].[2003] } ON ROWS FROM Sales WHERE ( [Store].[USA].[CA] ) Sales est le cube sur lequel la requête est faite 41 / 66

MDX - EXEMPLE SELECT { [Measures].[Store Sales] } ON COLUMNS, { [Date].[2002], [Date].[2003] } ON ROWS FROM Sales WHERE ( [Store].[USA].[CA] ) Sales est le cube sur lequel la requête est faite [Measures].[Store Sales] et [Date].[2002], [Date].[2003] sont les dimensions conservées [Store].[USA].[CA] est le slicer 42 / 66

MDX SELECT Measures.[Unit Sales] ON COLUMNS, [Store].[All Stores] ON ROWS FROM [Sales] Délimiteurs Les délimiteurs [ et ] peuvent ne pas être mis si pas d ambiguité. 43 / 66

MDX SELECT Measures.MEMBERS ON COLUMNS, Product.Style.CHILDREN ON ROWS FROM [Adventure Works] équivalent à : SELECT [Measures].MEMBERS ON COLUMNS, [Product].[Style].CHILDREN ON ROWS FROM [Adventure Works] 44 / 66

MDX SELECT [Measures].MEMBERS ON COLUMNS, [Date].[Calendar Year].MEMBERS ON ROWS FROM (SELECT [Measures].[Internet Sales Amount] ON COLUMNS, [Date].[Calendar Year].[2004] ON ROWS FROM [Adventure Works]) Expressions de sous-cube Attention : ne marche pas dans tous les systèmes OLAP 45 / 66

MDX SELECT Measures.MEMBERS ON COLUMNS, [Store].MEMBERS ON ROWS FROM [Sales] MEMBERS Retourne le jeu des membres d une dimension, d un niveau ou d une hiérarchie. 46 / 66

MDX SELECT Measures.MEMBERS ON COLUMNS, {[Store].[Store State].[CA], [Store].[Store State].[WA]} ON ROWS FROM [Sales] Exercice Dessinez la sortie de cette requête? 47 / 66

MDX SELECT Measures.MEMBERS ON COLUMNS, {[Store].[Store State].[CA].CHILDREN, [Store].[Store State].[WA].CHILDREN} ON ROWS FROM [Sales] CHILDREN Retourne le jeu des enfants d un membre spécifié. 48 / 66

MDX SELECT Measures.MEMBERS ON COLUMNS, {[Store].[Store State].[CA], DESCENDANTS([Store].[Store State].[CA], [Store City])} ON ROWS FROM [Sales] DESCENDANTS DESCENDANTS(member, level [, flags]) Retourne le jeu de descendants d un membre à un niveau spécifié ou à une distance spécifiée, en incluant ou en excluant éventuellement des descendants dans d autres niveaux. 49 / 66

MDX DESCENDANTS Le flag peut être BEFORE, AFTER, SELF ou bien BEFORE_AND_AFTER selon le niveau désiré SELECT Measures.MEMBERS ON COLUMNS, {[Store].[Store State].[CA], DESCENDANTS([Store].[Store State].[CA], [Store City],AFTER)} ON ROWS FROM [Sales] SELECT Measures.MEMBERS ON COLUMNS, {[Store].[Store State].[CA], DESCENDANTS([Store].[Store State], [Store City],BEFORE_AND_AFTER)} ON ROWS FROM [Sales] 50 / 66

MDX select AddCalculatedMembers([Measures].Members) ON COLUMNS, {[Store].[USA].[CA], Descendants([Store].[USA].[CA], [Store].[Store City])} ON ROWS from [Sales] AddCalculatedMembers Retourne un ensemble généré par l ajout de membres calculés à un ensemble spécifié. 51 / 66

MDX SELECT {[Store Type].[Store Type].MEMBERS} ON COLUMNS, {[Store].[Store State].MEMBERS} ON ROWS FROM [Sales] WHERE (Measures.[Unit Sales]) Slicer WHERE spécifie une tranche dimensionnelle dans le cube 52 / 66

MDX SELECT {[Store Type].[Store Type].MEMBERS} ON COLUMNS, {[Store].[Store State].MEMBERS} ON ROWS FROM [Sales] WHERE (Measures.[Unit Sales], [Time].[Year].[1997]) Slicer WHERE spécifie une tranche dimensionnelle dans le cube 53 / 66

WITH SET WITH SET permet la création d ensembles WITH SET [ChardonnayChablis] AS {[Product].[All Products].[Drink].[Good Chardonnay], [Product].[All Products].[Drink].[Pearl Chardonnay], [Product].[All Products].[Drink].[Portsmouth], [Product].[All Products].[Drink].[Walrus Chardonnay], SELECT [ChardonnayChablis] ON COLUMNS, {Measures.[Unit Sales]} ON ROWS FROM Sales 54 / 66

CALCULATED MEMBERS WITH MEMBER MDX permet de rajouter des calculs directement dans les requêtes MDX. Ceci s effectue grâce à la syntaxe : WITH MEMBER parent.name AS expression WITH MEMBER Measures.ProfitPercent AS (Measures.[Store Sales] - Measures.[Store Cost]) / (Measures.[Store Cost]), FORMAT_STRING = #.00% 55 / 66

WITH MEMBER [Measures].[Special Discount] AS [Measures].[Discount Amount] * 1.5 SELECT [Measures].[Special Discount] on COLUMNS, NON EMPTY [Product].[Product].MEMBERS ON Rows FROM [Adventure Works] WHERE [Product].[Category].[Bikes] 56 / 66

CALCULATED MEMBERS WITH MEMBER MDX permet de rajouter des calculs directement dans les requêtes MDX. Ceci s effectue grâce à la syntaxe : WITH MEMBER parent.name AS expression WITH MEMBER [Time].[First Half 97] AS [Time].[1997].[Q1] + [Time].[1997].[Q2] MEMBER [Time].[Second Half 97] AS [Time].[1997].[Q3] + [Time].[1997].[Q4] 57 / 66

CALCULATED MEMBERS WITH MEMBER [Time].[First Half 97] AS [Time].[1997].[Q1] + [Time].[1997].[Q2] MEMBER [Time].[Second Half 97] AS [Time].[1997].[Q3] + [Time].[1997].[Q4] SELECT {[Time].[First Half 97], [Time].[Second Half 97], [Time].[1997].CHILDREN} ON COLUMNS, {[Store].[Store Name].MEMBERS} ON ROWS FROM [Sales] 58 / 66

WITH MEMBER measures.x AS [Product].children.count SELECT Measures.X ON 0 FROM [Sales] COUNT Retourne le nombre de cellules d un ensemble 59 / 66

SELECT Measures.MEMBERS ON COLUMNS, TOPPERCENT({[Store].[Store City].MEMBERS}, 50, Measures.[Sales Count]) ON ROWS FROM [Sales] TOPPERCENT Trie un jeu en ordre décroissant et retourne un jeu de tuples avec les valeurs les plus élevées dont le total cumulé est égal ou supérieur à un pourcentage spécifié. 60 / 66

WITH MEMBER Measures.[Maximum Sales] AS MAX(DESCENDANTS([Time].CURRENTMEMBER, [Time].[Month]), Measures.[Unit Sales]) SELECT {[Time].[1997]} ON COLUMNS, [Product].[Product Category].MEMBERS ON ROWS FROM [Sales] WHERE (Measures.[Maximum Sales]) Autres mesures Les fonctions disponibles sont AVG, MEDIAN, MAX, MIN, VAR, and STDDEV 61 / 66

REFERENCES MDX Reference @ MSDN : http://msdn2.microsoft.com/en-us/library/ms145506.aspx The Baker s Dozen : 13 Tips for Querying OLAP Databases with MDX : http://www.devx.com/codemag/article/37460/1954?pf=true Tutorial : Introduction to Multidimensional Expression (MDX). http://www.fing.edu.uy/inco/grupos/csi/esp/cursos/cursos_act/ 2005/DAP_SistDW/Material/2-SDW-Laboratorio1-2005.pdf MDX resources : http://www.mosha.com/msolap/mdx.htm http://www-igm.univ-mlv.fr/~dr/xpose2005/entrepot/multidim.html 62 / 66