Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
net/publication/322930759
CITATIONS READS
0 415
3 authors:
Abdelaziz Abdellatif
University of Tunis El Manar
60 PUBLICATIONS 451 CITATIONS
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
All content following this page was uploaded by Mourad Ghorbel on 05 February 2018.
RÉSUMÉ. Dans le domaine des entrepôts de données (ED), la plupart des approches de
répartition se basent essentiellement sur les techniques de fragmentation et d’allocation des
tables. Ces approches exploitent communément en entrée les prédicats extraits des requêtes
les plus utilisées dans le processus de partitionnement. Etant donné que la charge
d’informations s’accroît sans cesse dans n’importe quelle société, et vu l’impact négatif
qu’engendre l’augmentation des besoins des utilisateurs de cet entrepôt, il devient intéressant
de le répartir. Dans cet article, nous proposons une solution basée sur un algorithme de Bond
Energy Algorithm (BEA) permettant de classifier les prédicats pour les approches de
répartition des Big Data Warehouse. La solution proposée englobe quatre phases: une phase
d’utilisation des prédicats, une phase de codification des prédicats sous forme de matrices
binaires, une phase de classification de ces prédicats par l’algorithme BEA et une phase
finale pour la répartition. Nous avons validé notre solution sur un Big Data Warehouse réel
issu du benchmark Transaction Processing Performance Council (TPC-DS).
ABSTRACT. In the field of Data Warehousing (DW), most distribution approaches rely mainly
on fragmentation and allocation techniques. These approaches commonly use as input the
predicates extracted from the queries most used in the partitioning process. Since the
information burden is constantly increasing in any company, and given the negative impact of
the increased needs of the users of this warehouse, it becomes interesting to distribute it. In
this article, we propose a solution based on a Bond Energy Algorithm (BEA) algorithm to
classify predicates for Big Data Warehouse distribution approaches. The proposed solution
encompasses four phases: a phase of use of the predicates, a predicate coding phase in the
form of binary matrices, a phase of classification of these predicates by the BEA algorithm
and a final phase for the distribution. We validated our solution on a real Big Data
Warehouse from the Transaction Processing Performance Council (TPC-DS) benchmark.
MOTS-CLÉS : ED, BEA, Big Data Warehouse, répartition
1. Introduction
En effet, très peu de travaux ont considéré le problème de la répartition des ED.
Malgré son importance, nous considérons que la répartition des ED n’a pas eu
l’attention qu’elle mérite.
2. Etat de l’art
(Nehme et Valduriez, 2011) ont défini une technique de Branch and Bound
pour l’exécution des requêtes parallèles. C’est une stratégie de partitionnement de
données qui minimise le coût coûteux des transferts de données. Cette solution
présente comme avantage de trouver le meilleur partitionnement dans des
environnements distribués mais reste le délai d’attente pour l’optimiseur qui
présente le seul inconvénient. (Bouchakri et Bellatreche, 2012) ont proposé
d’effectuer une sélection d’un schéma de fragmentation dite incrémentale basée sur
4 Acronyme Revue. Volume 1 – n° 1/2012 AR_entetegauche
3. Solution proposée
Dans notre travail, nous nous sommes concentrés sur la liste initiale des
requêtes. Cette liste constitue un point d'entrée commun aux solutions de répartition
les plus connues dans l'état de l'art. Nous considérons l’augmentation des données
comme étant un problème important qu'il faut traiter par répartition. En effet, les
prédicats sont extraits à partir des requêtes les plus fréquentes dans le SID. Dans ce
qui suit, nous proposons une solution pour la répartition d’un Big Data Warehouse
suivant l’algorithme BEA. Son but est de minimiser le temps de réponse des
requêtes utilisées et le coût de chargement des données.
La solution proposée se déroule en quatre phases :
- phase d’utilisation des prédicats ;
- phase de codification ;
- phase de classification ;
- phase de répartition;
8 Acronyme Revue. Volume 1 – n° 1/2012 AR_entetegauche
P1 P2 ... P m
R1 1 1 0 0
R2 1 0 0 1
..Ru 0 1 1 0
Figure 1. MUP (Mahboubi, 2008)
Dans cette première phase, nous nous sommes inspirés du travail réalisé par
(Mahboubi, 2008) pour la conversion des prédicats en codes binaires. Il a utilisé une
Matrice d’Utilisation des Prédicats (MUP) qui englobe les utilisations des prédicats
par les requêtes. Dans la figure 1, les colonnes de la MUP englobent les prédicats les
plus utilisés. Les lignes désignent les requêtes OLAP les plus fréquentes sur le
système. Une cellule de la MUP englobe la valeur 1 si une requête donnée utilise un
prédicat donné et la valeur 0, sinon.
La phase d’utilisation des prédicats permet de produire une représentation binaire
des prédicats selon leurs utilisations par les requêtes.
Dans cette deuxième phase, nous nous sommes inspirés du travail réalisé par
(Tekaya, 2012). Elle a utilisé une Matrice des Fréquences d’Utilisation (MFU) qui
englobe les fréquences d'utilisation des requêtes sur les différents sites de
l'entreprise. Elle a la même structure que la MUP. Une cellule de la MFU inclut la
fréquence d'utilisation d'une requête donnée par les utilisateurs d'un site donné.
Ci-dessous, nous présentons un exemple de la MFU en figure 2.
S1 S2 ... Sk
R1 20 1 0 0
R2 19 0 0 1
..R u 0 15 12 0
3.3.1. MA
Dans cette troisième phase, nous utilisons la MUP et la MFU comme entrée
de la phase de classification (dans la partie pratique).
Nous aurons comme résultat la MA sur la figure 3.
P1 P2 ... Pk
P1 15 18 0 0
p2 16 0 0 1
..P u 10 30 1 0
Figure 3. MA
3.3.2. MCA
5: index ← 3 ;
6: n, index, loc, i, j : Entier,;
7: Tant que index<= n Faire
8: {
9: Pour i de 1 à index Faire
10: Calculer cont(Ai-1, Aindex, Ai)
11: Fin Pour
12: Calculer cont(Aindex-1, Aindex, Aindex+1)
13: loc ← Max cont ;
14: Pour j de index à loc [-1] Faire
15: MCA(.,j)← MCA(.,j-1) ;
16: Fin Pour
17: MCA(.,loc)← MA(.,index) ;
18 : index← index + 1
19: }
20: Permuter les lignes comme les colonnes résultantes
21: }
Algorithme BEA
Nous terminons par une permutation des lignes suivant la permutation des colonnes
obtenue. La figure 4 ci-dessous est un exemple de MCA :
P1 P2 ... Pk
P1 15 18 0 0
p2 16 80 0 1
..P u 1 0 1 0
Figure 4. MCA
P1 P2 ... Pk
P1 15 18 0 0
p2 16 80 0 1
..P u 1 0 1 0
Nous aurons donc au finale une partie de la matrice qui contient les affinités
les plus élevées des prédicats, à partir de laquelle sont réparties les données selon
cette classification.
Dans l’exemple de la figure 5, on fragmente suivant P1 et P2 qui contiennent les
affinités les plus élevées. On aura donc une classe C1= P1&P2
12 Acronyme Revue. Volume 1 – n° 1/2012 AR_entetegauche
La solution proposée nous permet de répartir notre Big Data selon les besoins
des utilisateurs. Nous réduisons le nombre de fragments générés et nous minimisons
le temps d’exécution des requêtes ainsi que le coût de chargement des données.
Dans la section qui suit, nous présentons un exemple détaillé de notre solution, ainsi
que son application sur un Big Data réel issu du banc d’essai TPC-DS.
4. Validation expérimentale
Pour valider notre travail, nous avons utilisé un Big Data Warehouse réel issu
du benchmark TPC-DS (Pilho, 2014). Ce benchmark demeure le plus utilisé par les
travaux abordant le problème de la fragmentation des Big Data Warehouse que nous
considérons similaires à notre contexte de travail. Nous citons les laboratoires de
recherches comme ENSMA (Boukhalfa, 2009), ERIC (Darmont, 2006), (Arres et al,
2014). Le choix de TPC-DS nous permettra de comparer nos résultats à ces travaux
aussi bien au niveau technique que pratique de la solution. Nous avons utilisé le
TPC-DS pour valider la méthode avec un SF=1TB de données.
Pour la répartition du Big Data Warehouse sur ces 2 machines, nous avons
utilisé un réseau privé virtuel (VPN) (Pham, 2002). Un VPN repose sur un
protocole, appelé "protocole de tunnélisation" qui permet aux données passant d'une
extrémité à l'autre du VPN d'être sécurisées par des algorithmes de cryptographie.
Pour la génération des tables du banc d'essai TPC-DS, nous avons installé Oracle
10g sur la machine 1 et Oracle 11g sur la machine 2 que nous avons trouvé les plus
adaptées aux capacités des machines.
Taille d’un
Tables Nombre d’enregistrement enregistrement en
octets
call_center
6 305
catalog_page
11 718 139
catalog_returns
144 067 166
catalog_sales
1 441 548 226
customer
100 00 132
customer_address
50 00 110
date_dim
73 049 141
household_demographics 7 200 21
income_band
20 16
inventory
11 745 000 16
item
18 000 281
promotions
300 124
reason
35 38
ship_mode
20 56
store
12 263
14 Acronyme Revue. Volume 1 – n° 1/2012 AR_entetegauche
store_returns
287 514 134
store_sales
2 880 404 164
ime_dim
86 400 59
warehouse
5 117
web_page
60 96
web_returns
71 763 162
web_sales
719 384 226
web_site
30 292
P1 P2 P3 P4
R1 1 0 1 0
R2 0 1 1 0
R3 0 1 0 1
R4 0 0 1 1
Figure 6. MUP
S1 S2 S3
R1 15 20 10
R2 5 0 0
R3 25 25 25
R4 3 0 0
Figure 7. MFU
P1 P2 P3 P4
P1 45 0 45 0
P2 0 80 5 75
P3 45 5 53 3
P4 0 75 3 78
Figure 8. MA
16 Acronyme Revue. Volume 1 – n° 1/2012 AR_entetegauche
P1 P2 P3 P4 P1 P2 P3 P4
P1 45 0 45 0 P1 45 0
P2 0 80 5 75 P2 0 80
P3 45 5 53 3 P3 45 5
P4 0 75 3 78 P4 0 75
●bond(A0,A3)=aff(A1,A0)*aff(A1,A3)+aff(A2,A0)*aff(A2,A3)+
aff(A3,A0)*aff(A3,A3)+aff(A4,A0)*aff(A4,A3)= 0 + 0 + 0+ 0=0
●bond(A3,A1)=aff(A1,A3)*aff(A1,A1)+aff(A2,A3)*aff(A2,A1)+
aff(A3,A3)*aff(A3,A1)+aff(A4,A3)*aff(A4,A1)=45*45+5*0+53*45+3*0=4410
●bond(A0,A1)=0
●Cont(A0,A3,A1)=2*4410=8820
P1 P2 P3 P4 P1 P3 P2 P4
P1 45 0 45 0 P1 45 45 0
P2 0 80 5 75 P2 0 5 80
P3 45 5 53 3 P3 45 53 5
P4 0 75 3 78 P4 0 3 75
P1 P2 P3 P4 P1 P3 P2 P4
P1 45 0 45 0 P1 45 45 0 0
P2 0 80 5 75 P2 0 5 80 75
P3 45 5 53 3 P3 45 53 5 3
P4 0 75 3 78 P4 0 3 75 78
Dans notre exemple, nous avons permuté les colonnes 2 et 3, donc on termine par
permuter les lignes 2 et 3. La figure 12 est la matrice résultante.
P1 P2 P3 P4 P1 P3 P2 P4
P1 45 0 45 0 P1 45 45 0 0
P2 0 80 5 75 P3 45 53 5 3
P3 45 5 53 3 P2 0 5 80 75
P4 0 75 3 78 P4 0 3 75 78
C1=P1 & P3
C2= P2 & P4
Nous fragmentons notre Big Data Warehouse selon ces deux classes (Figure 13).
P1 P3 P2 P4
P1 45 45 0 0
P3 45 53 5 3
P2 0 5 50 75
P4 0 3 75 78
1 4 : 58 : 34 1 : 22 : 10
2 6 : 46 : 01 1 : 31 : 43
3 10 : 31 : 88 5 : 04 : 16
4 15 : 39 : 08 8 : 34 : 45
Pour les requêtes numéro 1, 2, 3 et 4, les temps d’exécution ont diminué dans
le tableau 2, ce qui constitue pour nous un gain non négligeable. Le temps
d’exécution global des requêtes dans un contexte réparti a diminué de 70% par
rapport au contexte centralisé (Figure 14).
Pour la 1ère et la 2ème requête, la diminution du temps d’exécution dépasse le 2/3
jusqu’au 3/4 du temps du centralisé vers le réparti. Par contre, pour la 3ème et la 4ème
requête, le temps d’exécution diminue mais ne dépasse pas la moitié du temps
d’exécution centralisé. Cela est dû par l’augmentation du nombre de jointures pour
ces deux requêtes.
16
centralisé
réparti
36
Nous avons donc diminué le temps d’exécution des requêtes pour un Big
data Warehouse réparti avec une minimisation des fragments engendrés et
minimisation du coût de chargements des fragments. Nous avons passé de trois sites
à deux.
5. Conclusion
Dans cet article, nous nous sommes intéressés à la répartition d’un Big Data
Warehouse selon l’algorithme BEA. Nous avons proposé une solution à ce fait. Elle
repose sur quatre phases : une phase d’utilisation des prédicats, une phase de
codification, une phase de classification et une phase de répartition;
Dans la plupart des cas, la répartition d’un Big Data Warehouse est fondée
sur des critères de fragmentation (attributs, prédicats de sélection, affinité, etc.) et/ou
des critères de réplication (fréquence d’utilisation, coûts d’accès, coûts de stockage,
etc.). Ces critères évoluent selon les besoins des utilisateurs. Pour faire face aux
changements, une mise à jour périodique du schéma de répartition est nécessaire.
Répartition d’un Big Data Warehouse Via BEA 21
Bibliographie
Attasena, V., N. Harbi, et J. Darmont (2013). Sharing-based privacy and availability of cloud
data warehouses. EDA B-9, 17–32.
Dehdouh, K., F. Bentayeb, et N. Kabachi (2013). Performances de requêtes olap dans les
bases de données en colonnes. ASD, 439–444.
Ettaoufik, A., L. Bellatreche, M. Ouzzif, E. Ziyati, et H. Belhadaoui (2013). Service web pour
la fragmentation horizontale des entrepôts de données. ASD.
Favre, C. (2007). Évolution de schémas dans les entrepôts de données : mise à jour de
hiérarchies de dimension pour la personnalisation des analyses. Thèse de doctorat,
Université de Lyon (Lumière Lyon 2).
Ghorbel, M., K. Tekaya, et A. Abdellatif (2016). Réduction du nombre des prédicats pour les
approches de répartition des entrepôts de données. ISI.
22 Acronyme Revue. Volume 1 – n° 1/2012 AR_entetegauche
Hoffer, J., and Severance, D. The use of cluster analysis in physical data base design. In
Proceedings of the 1st International Conference on Very Large Data Bases (1975), ACM, pp.
69_86. 32, 34
Kerkad, A., L. Bellatreche, et D. Geniet (2012). Exploitation de l’interaction des requêtes olap
pour la gestion de cache et l’ordonnancement de traitements. EDA, 154–163.
Navathe, S., Ceri, S., Wiederhold, G., and Dou, J. Vertical partitioning algorithms for
database design. ACM Transactions on Database Systems (TODS) 9, 4 (1984), 680_710. 32,
36.
Navathe, S., and Ra, M. Vertical partitioning for database design : a graphical algorithm. In
Proceedings of the 1989 ACM SIGMOD international conference on Management of data
(1989), ACM, p. 450. 19, 20, 33, 34, 48.
Ouazzani, A. E., N. Harbi, et H. Badir (2014). Contrôle d’accès aux entrepôts de données
fondé sur le profil utilisateur. ASD, 95–100.
Ozsu, T. et P. Valduriez (1999). Principes of distributed database systems. Prentice Hall, 19–
22.
Pham, C. (2002). Vpn et solutions pour l’entreprise. SaaS, Université de Pau et des Pays de
l’Adour.
Tekaya, K., A. Abdellatif, et H. Ounalli (2010). Data mining based fragmentation technique
for distributed data warehouses environment using predicate construction technique. In Sixth
International Conference on Networked Computing and Advanced Information Management
(NCM), 63-68.
Répartition d’un Big Data Warehouse Via BEA 23
Annexe 1
Annexe 2