Post on 03-Apr-2015
transcript
DATA WAREHOUSES
Selection of Views to Materialize in a Data Warehouse
Himanshu Gupta
Department of Computer Science
Stanford University
Bernigaud Sébastien
Chervy Myriam
PLAN
• Présentation générale des datawarehouses• Formulation du problème de sélection des
vues• « AND View Graph »• « OR View Graph »• Sélection des vues dans des « AND-OR
Views Graphs »• Conclusion
Présentation générale des datawarehouses
• Entrepôt de données• Ensemble de vues de sources différentes• Objectif : Implémenter des supports de
décision , des requêtes OLAP• Contraintes : minimiser les temps de
réponse et les coûts de stockage des données
• Problème : choix de la sélection de vues
Formulation du problème de sélection des vues
• Quelques définitions sur les « AND-OR View Graphs »
• Problème de sélection des vues
• Benefit d ’un ensemble de vues séléctionnées
Définitions
• Graphe direct acyclique
• Racine : V
• Feuilles : relations de base
• v1…vK fils de u si tous les vi (1<i<k) sont nécessaires pour calculer u
• Dépendance entre les nœuds : AND arc
• Chaque AND arc : un opérateur et un coût
• Opérateur : une fonction k-ary impliquant des opérations comme jointure, union, agrégation…
• Coût : somme des coûts associés à chaque fils
AND-DAG expression pour une requête ou une vue V
Définitions (suite)
Exemple : AND
ANDAND
AND
kihg
dcb
a
Définitions (suite)
AND OR-DAG expression pour une requête ou une vue V
• Graphe direct acyclique• Racine : V• Feuilles : relations de base• Chaque nœud possède 1 ou plusieurs AND
arcs
Définitions (suite)
Exemple :
ANDAND
ANDAND AND
ANDAND
AND
a
b c d e f
g mlkjih
AND-OR View Graph pour les vues v1…vk
Rq : u calculable à partir de v,u1,…,uk et v calculable à partir de v1,…,vl u calculable à partir de u1,…,uk,v1,…,vl
Définitions (suite)
• Graphe G
• Pour chaque vi Gi
• Gi : sous graphe de G
• Gi : AO-DAG expression pour vi
• Pour chaque nœud u de G : fu, Su, gu
• fu : fréquence des requêtes sur u
• Su : espace occupé par u
• gu : fréquence des mises à jour sur u
Définitions (suite)
Exemple :
ANDAND
ANDAND AND
ANDAND
AND
a
b c d e f
g mlkjih
AND-OR View Graph pour n ’importe quels sous ensembles des vues a,b,c,d,e,f
Problème
• Donnée : un AND-OR View Graph G et une quantité d’espace libre S
• Pb : sélectionner un ensemble de vues M
• M : sous ensemble des nœuds de G
• Contraintes : minimiser les temps de réponse et les coûts de maintenance, espace occupée par M<S
Problème (suite)
• Q(u,M) : coût de réponse d ’une requête u utilisant le sous ensemble M
• U(u,M) : coût de maintenance pour la vue u dans M
Problème (suite)
• Donnée : un AND-OR View Graph G et une quantité d’espace libre S
• But : sélectionner M = {v1,…vm}
• Contrainte : minimiser (G,M) , (vM) SvS
(G,M) = (i=1 à k) fQiQ(Qi,M) + (i=1 à m) gviU(vi,M)
Conclusion :
Benefit
• Donnée : C un sous ensemble arbitraire de G
• Benefit de C = B(C,M)
• B(C,M) = (G,M) - (G,MC)
• Benefit de C par unité d’espace = B(C,M)/S(C)
• Benefit absolu de C = B(C,)
« AND View Graph »
• Motivations
• Sélection de vues dans un « AND View Graph »
• Incorporation des coûts de mise à jour
• « AND View Graph » avec index
Motivations
• Problème de sélection = simplifié
• Approximation du problème général
• Optimiseur de requêtes multiples plan global
• Plan global AND View Graph
Sélection de vues
• Contexte : AND View Graph sans mises à jour
• Donnée : AND View Graph G et une quantité S
• Trouver M qui minimise (G,M) avec S(M) S
Sélection de vues (suite)
Greedy Algorithm
BEGIN
M=;
while (S(M)<S)
Soit C tq B(C,M)/S(C)=max(B(X,M)/S(X))
M=M C;
end while;
return M;
END.
Sélection de vues (suite)
Greedy-Interchange Algorithm
BEGIN
M=solution du Greedy Algorithm;
repeat
Soit (C1,C2) une pair de vues tq C1M et le benefit absolude (M-C1)C2 est plus grand que celui de M.
M= (M-C1)C2;
until (il n’existe plus de pair (C1,C2));
return M;
END.
Sélection de vues (suite)
• Compétitivité : non prouvée
• Solution : au moins aussi bonne que Greedy Algorithm
• Temps d’exécution : illimité
• En pratique : plus performant que Greedy Algorithm
Mises à jour
• Si gv < fv Greedy Algorithm est aussi performant que sans mises à jour
Index
• Pas d’index matérialisé sans sa vue
• Entre u et v : autant d’arêtes que d’index sur v
• Coût associé à un arc label (i,ti) associé à chaque arête entre u et v
• ti(i>0) : coût de calcul de u avec utilisation de l’ième index de v
• f : coût de calcul de u à l’aide de tous ses fils utilisant leurs index respectifs
• f : k-ary fonction , f(t1,…tk)
Index (suite)
• Pour chaque vi : on construit IGi
• IGi = vi incrémenté des index (meilleur localement) tant que S(IGi)<S
• C = IGi de benefit maximal par unité d’espace• Pour chaque index tel que la vue M :
le comparer avec C • M = M C• On recommence
Inner-Level Greedy Algorithm
« OR View Graph »
• Motivations
• Sélection de vues dans un « OR View Graph »
• « OR View Graph » avec index
Motivations
• Datacubes : Databases avec 1 valeur critique organisée en plusieurs dimensions
• Ex : ventes de voitures organisées par modèles,couleurs,…
Motivations (suite)
• Cas des Datacubes : AND-OR OR
• 1 vue est calculée de plusieurs façons
• Chaque façon utilise une seule autre vue
• Bases OLAP : peu de mises à jour
• On supposera qu’on a pas de mises à jour pour cette partie
Sélection de vues
• Algorithme pour les problèmes de sélection de vue dans un OR View Graph sans mise à jour
• Donnée : OR View Graph et S
• Problème : trouver M qui minimise (G,M) avec S(M)<S sans mise à jour
Sélection de vues (suite)
• Greedy Algorithm : même performances
• Greedy-Interchange Algorithm : temps d’exécution un peu moins qu’1,5 fois celui du Greedy Algorithm
• Solution retournée : meilleure
Index
• Donnée : OR View Graph avec index et S• Problème : trouver M qui minimise (G,M) avec
S(M)<S sans mise à jour
• OR View Graph avec index sans mise à jour : Inner-Level Greedy Algorithm M qui utilise au plus 2S
Sélection des vues dans des « AND-OR Views Graphs »
• Quelques définitions
• L ’ AO-Greedy Algorithm
• Le Multi-Level Greedy Algorithm
Définitions
• Graphe biparti G=(Q,E)• Q : requêtes supportées par le datawarehouse : sous ensemble de V• V : ensemble des vues• E : ensemble des arêtes (q,) tq permet de
calculer q• AND-OR View Graph Query View Graph
équivalent
Query View Graph
L’AO-Greedy Algorithm
• F=D
• D : ensemble des arêtes (,) tq • H : sous-graphe de F
• VH : des ensembles de vues correspondant aux sommets de H
• Ajout de VH avec profit maximal à M
• Arrêt : quand S(M)>S
Multi-Level Greedy Algorithm
• G=query view graph (Q,E)
• F= son graphe d’intersection où v à chaque nœud de F
• Pas de v AO-Greedy algorithme sur G’=enlever v dans chaque élément de • F’=graphe d’intersection correspondant
Multi-Level Greedy Algorithm (suite)
• Fi : parties connectées à F’
• U : selectionné à l’aide de Greedy• U : initialisé avec v• À chaque étape : sélection de J
• J : ensemble de vues, sous-graphe d’un Fi, benefit par unité d’espace maximal
• Ajout de J à U• Arrêt quand benefit de U ne peut plus être amélioré
Multi-Level Greedy Algorithm (suite)
• Algo : choix d’un nouveau U et ajout à M
• Arrêt : S(M)>S
• Exécution : exponentielle (tous les sous-graphes de Fi possibles)
Conclusion
• Structure pour le problème général de sélection des vues dans un datawarehouse
• Heuristiques compétitives dans un temps polynomiale pour les cas particuliers importants
• Heuristiques compétitives dans un temps polynomiale pour d’autres cas particuliers (arbres and-or,arbres and-or binaires,…) ?
• Techniques développées : aperçu significatif de l’heuristique de Greedy