Opérations OLAP - Présentation et optimisation Flashcards
Exploitation des entrepôts de données
Trois types d’exploitation des entrepôts de données :
- Traitement de l’information : Requêtes, analyses statistiques de base, rapports, diagrammes et graphiques
- Traitement analytique : Analyse multidimensionnelle, opérations OLAP
- Data mining : Découverte de connaissances (motifs cachés), associations, modèles analytiques, classification et prédiction, mécanismes de visualisation
OLTP versus OLAP
OLTP : On-line transaction processing
- Traitement typique dans les systèmes opérationnels (BD)
- Transaction et requêtes
- Données courantes et détaillées
- Structures de données optimisées pour les petites transactions
- Peu d’enregistrements accédés par requête
- Court temps de réponse
- Tables normalisées et dont peu de redondance
OLAP : On-line analytical processing
- Traitement analytique interactif typique dans les systèmes informationnels
- Analyses diverses (multidimensionnelles)
- Information : surtout dérivée et sommaire
- Aide à la prise de décision
- Structures de données optimisée pour les requêtes complexes
- Beaucoup d’enregistrements accédés à chaque requête
- Temps de réponse peut être long
- Les tables ne sont généralement pas normalisées, donc redondance de l’information
Quelles sont les opérations OLAP?
Roll-up ou drill-up : zoom arrière ou cumul
- Agrégation en remontant la hiérarchie de dimension(s). Ex. ventes par produit, ville et mois; ventes par catégorie de produits, ville et trimestre
- Agrégation par réduction de la dimension : ventes selon deux dimensions seulement (ex. produit et ville)
Drill-down : zoom avant
- En descendant la hiérarchie de dimension. Ex. ventes par produit, ville et heure (au lieu de produit, ville et jour)
- Par ajout d’une dimension. Ex. ventes par produit, localisation, temps et fournisseur
Slice & dice : coupe et dé
- Slice : Sélection sur une seule dimension du cube (ex. ventes du 31 janvier 97; ventes dans la ville de Montréal)
- Dice : Sélection sur deux ou plusieurs dimensions du cube (ex. ventes de jus ou de coca cola dans la ville de Montréal)
Pivot : Rotation
- Rotation du cube, passage d’un cube à n dimensions (hypercube) à plusieurs cubes à n-1 dimensions
Autres opérations :
- Drill-across, drill-through, union, différence, etc.
- Drill-across : Création d’un nouveau cube à partir de deux cubes existants en prenant les mesures des deux cubes
- Drill-through : Passage des données du plus bas niveau d’un cube à la BD de laquelle le cube a été constitué. Peut être utilisé par exemple pour valider une valeur exceptionnelle.
- Union : Union de deux cubes de même structure dans avec des instances disjointes. Ex. ventes au Québec et ventes en Ontario
Optimisation des requêtes OLAP
Optimisation des requêtes OLAP :
- Dépend en partie de l’optimiseur de requête du gestionnaire de l’entrepôt (ex. SQL Server, Oracle)
- Dépend du programmeur d’applications/requêtes
Indexation des données
Matérialisation des cubes :
- Stockage physicque (et non virtuel) des cubes
- Sélection des cubes à matérialiser (taille, partage, fréquence d’accès, pertinence du cube)
- Plusieurs cuboïdes possibles : Pour n dimensions et Li niveaux de la dimension Di, le nombre de cuboïdes est : T = Produit de 1 à n (Li + 1)
Précalcul des agrégations
- Stockage MOLAP vs ROLAP
- Utilisation de l’antémémoire (caching)
Optimisation des requêtes OLAP dans SQL Server :
- Exploitation des ressources du noyan de SQL Server : Optimiseur de requêtes, partitions
- Précalcul des agrégations : Cas extrême -> stockage MOLAP à 100% d’un cube de données
- Formulation de requêtes OLAP avec MDX
– En incitant l’optimiseur de requête à choisir la manière la plus efficace d’exécuter la requête
– En favorisant une réutilisation des calculs
- Utilisation d’index bitmap
- Exploitation de partitions pour un traitement parallèle de données, etc.
Indexation des données
Deux principaux types d’index :
- Index bitmap
- Index de jointure
- Possibilité de mixage des deux structures
Index bitmap :
- Populaire dans les produits OLAP
- Facilite la recherche dans les cubes de données
- l’index sur un attribut A suppose la création d’autant de vecteurs de bits (“bit vector”) qu’il y a de valeurs possibles de A
- Strucutre avantageuse lorsque le nombre n de modalités de A est faible (ex. égal à 2 pour le genre). Si n est élevé, il y a un risque d’avoir une matrice éparse (beaucoup de zéros)
- Possibilité de compression des index épars
- Les opérations de comparaison, jointure et d’agrégation sont réduites à une arithmétique sur les bits, d’où un traitement plus efficace
- La réponse à une requête multidimensionnelle va consister à faire l’intersection des vecteurs de bits des diverses dimensions
- Réduction significative en espace et nombre d’accès en mémoire secondaire
Index de jointure :
- Répandu dans les BD relationnelles
- Utile dans les ED pour relier les tuples des tables de dimensions à ceux de la table de faits dans un schéma en étoile
- L’index sur l’attribut A comporte les valeurs des clés (ou plutôt surrogates) des tables à joindre ayant la même valeur de l’attribut de jointure A
- Permet d’écarter les enregistrements qui ne participent pas à la jointure
- Dans certains cas, la réponse à une requête nécessite uniquement la consultation de l’index