MOBIDIKMOBIDIK
nosqlnosql MOdelingMOdeling of of BIgBIg Data, Information and Data, Information and KnowledgeKnowledge
M. Chevalier, A. Kopliku, M. El Malki, O.Teste, R. TournierIRIT - Equipe SIG
(Systèmes d’Informations Généralisés)
1
ContexteContexte
�� MégadonnéesMégadonnées ou «ou « BigBig DataData »»
◦ Des systèmes de gestion de données pour faire face � au volume
� à la variété
� à la vélocité
◦ Par exemple� Collections de données du Web (Google, Facebook, Twiter…)
� 2003 « The Google file system» [SOSP03]
� 2004 « MapReduce: Simplified Data Processing on Large Clusters» [OSDI04]� 2004 « MapReduce: Simplified Data Processing on Large Clusters» [OSDI04]
� Autres collections� Astronomie, Biologie, Météorologie, etc
�� Nouveaux systèmes de stockageNouveaux systèmes de stockage
◦ NoSQL « Not-Only-SQL»
◦ Principes� Distribution des données et des traitements (volume)
� Extensibilité et Flexibilité des données (variété, vélocité)
2
ContexteContexte�� Plusieurs paradigmes Plusieurs paradigmes NoSQLNoSQL
◦ orientés clé/valeur� Données = { (clé, valeur) }
� Clé : identifiant� Valeur : pas de structure
� Stockage des couples
◦ orientés documents� Données = { documents }
� Identifiant de document� Structures variables & Imbrication
� Stockage horizontal des documents
◦ orientés colonnes
(k1, v1)(k2, v2)
(k4, v4) (k5, v5)(k6, v6)
BD1 BD2 BD3
d1
d2
d3 d4
d5
BD1 BD2 BD3
◦ orientés colonnes� Données = Table { tuples }
� Identifiant de tuple� Structures variables
� Stockage vertical des colonnes
◦ orientés graphes� Données = { nœuds } { arcs }
� Graphe étiqueté orienté� Structures variables des nœuds & des arcs
� Stockage distribué du graphe
3
c1 c2
v1.1 v1.2
… …v5.1 v5.2
c3
v1.3
…v5.3
c4
v1.4
…v5.4
BD1 BD2 BD3
n1
n2
n6
n4
n5
BD1 BD2 BD3
e1.2 e1.6
e6.4
e6.5
ContexteContexte
�� Nombreux logiciels qui apparaissent et disparaissent…Nombreux logiciels qui apparaissent et disparaissent…
4
ProblématiqueProblématique
�� Projets Projets versusversus Solutions Solutions NoSQLNoSQL
◦ Quel paradigme NoSQL ? Quel logiciel ?
� Différentes manières de distribuer
◦ Comment modéliser les données ?
� Systèmes NoSQL remettent en cause l’indépendance données/traitementsdonnées/traitements
� Placement des données dépendant des traitements
◦ Comment réutiliser les données ?
� Migrer d’un système à un autre
� Transformer d’un modèle à un autre
5
ProblématiqueProblématique
�� Comment modéliser les données ?Comment modéliser les données ?
◦ NoSQL => Dépendance Données / Traitements
�� Illustration du problèmeIllustration du problème
◦ DonnéesPRODUIT
NP DES
P1 D1
P2 D2
FOURNIR
NS NP PU
S1 P1 10
S1 P3 20
SITE
NS URL
S1 w1
S2 w2
◦ Traitements
� Le dilemme de l’imbrication
� q1
� q2
6
« Restituer par site web les produits les plus chers»
« Restituer par désignation de produit le numéro du site web qui le propose au prix le plus bas»
P2 D2
P3 D3
S1 P3 20
S2 P1 15
S2 P2 20
S2 P3 30
S3 P3 15
S3 P2 15
S2 w2
S3 w3
S4 w4
SITE {[NS, URL, FOURNIR {[NP, DES, PU]} ]}
PRODUIT {[NP, DES, FOURNIR {[NS, URL, PU]} ]}
FOURNIR{[ NS, URL, NP, DES , PU ]}≺≺≺≺ ≺≺≺≺
SITE {[NS, URL, FOURNIR {[NP, DES, PU]} ]}
PRODUIT {[NP, DES, FOURNIR {[NS, URL, PU]} ]}
FOURNIR{[ NS, URL, NP, DES , PU ]}≺≺≺≺ ≺≺≺≺
PropositionProposition
�� Différents niveaux d’abstraction Différents niveaux d’abstraction [ICEIS15][ICEIS15]
�� Processus de transformation de modèlesProcessus de transformation de modèles [ADBIS15, DAWAK15][ADBIS15, DAWAK15]
�� Modèles distinguant Schéma / Valeur Modèles distinguant Schéma / Valeur [EDA15] [VSST15][EDA15] [VSST15]
Conceptuel
Logique
Schéma indépendant (UML)
Travaux existants
Nos travaux
7
Schéma Relationnel Schéma génériqueNoSQL
Schéma« orienté colonnes »
Schéma « orienté documents »
Schémas spécifiques
Physique
PropositionProposition
�� Etude de cas : entrepôts Etude de cas : entrepôts de données multidimensionnellesde données multidimensionnelles
◦ Schéma en étoile
� Fait : « sujet de l’analyse» (indicateurs numériques)
� Dimension : « axe de l’analyse» (paramètres)
�� Benchmark Benchmark
◦ SSB (ROLAP)
SSB+ (NoSQL) [RCIS15]
Part
ProdNameSizeBrand
8
LineOrder
QuantityDiscountRevenueTax Customer
NameCityRegionNation
BrandTypeCategory Date
DateDesc
Month()MonthName()Year()
Supplier
NameCityRegionNation
PropositionProposition
�� Modèle générique assurant séparation structure/valeurModèle générique assurant séparation structure/valeur
◦ Notations
� [ ] structure
� { } ensemble
�� Plusieurs processus générique de transformationsPlusieurs processus générique de transformations
◦ MLD0 « Flat »
◦ MLD « Deco »◦ MLD1 « Deco »
◦ MLD2 « Shattered »
◦ MLD3 « Hybrid »
9
PropositionProposition
�� Exemple MLDExemple MLD11 «« DecoDeco »»
Conceptuel Customer
NameCityRegionNation
LineOrder
QuantityDiscountRevenueTax
Logique Schema
MLD1
Schema
10
Logique Schema{[_IdLineOrder,
LineOrder{[Quantity,
Discount, Revenue, Tax]},
Customer{[Name,
City, Region, Nation]}
]}
_IdLineOrder
×
LineOrder
�
×
Quantity Discount Revenue Tax
Customer
�
×
Name City Region Nation
Schema
�
PropositionProposition
�� Processus de transformationProcessus de transformation
◦ Automatique
◦ Processus réversible inter-modèle
◦Conceptuel Customer
NameCityRegionNation
LineOrder
QuantityDiscountRevenueTax
MLD …(MLD ) -1 MLD (MLD ) -1 MLD (MLD ) -1
11
Logique {[_IdLineOrder,LineOrder
{[Quantity,Discount, Revenue, Tax]},
Customer{[Name,
City, Region, Nation]}
]}
{[_IdLineOrder,_IdCustomer,Quantity,Discount, Revenue, Tax]}
{[_IdCustomer, Name, City, Region, Nation
]}
MLD0
{[_IdLineOrder,Quantity,Discount, Revenue, Tax, Name, City, Region, Nation
]}
…
MLD1((MLD0) -1)
MLD0((MLD1) -1)
(MLD0) -1 MLD1 (MLD1) -1 MLD2 (MLD2) -1
MLD2((MLD1) -1)
MLD1((MLD2) -1)
MLD0((MLD2) -1) MLD2((MLD0) -1)
PropositionProposition
�� Processus de transformationProcessus de transformation
◦ Exemple
{_id : " 22021972",
MLD1((MLD0) -1)
{_id : "22021972",Customer : { Name : "Olivier",
City : "Toulouse", Region : "Midi-Pyrénées", Nation : "France"
}}
12
_id : " 22021972",Name : "Olivier", City : "Toulouse", Region : "Midi-Pyrénées", Nation : "France"
}
RowKey Customer
22021972 Name City Region Nation
Olivier Toulouse Midi-Pyrénées France
MLD1((MLD0) -1)HBase
MLD1((MLD1) -1)HBase
PropositionProposition
�� ExpérimentationsExpérimentations
◦ Systèmes NoSQL
� Stockage horizontal
� Stockage vertical
◦ Benchmark SSB+
� Opérationnel
� Scripts de génération par MDLi paramétrable Facteur d’échelle� Scripts de génération par MDLi paramétrable Facteur d’échelle
� sf1 ⇒ 107 données LineOrder
� sf10 ⇒ 10x107 données LineOrder
� sf200 ⇒ 200x107 données LineOrder (~1.5 To avec )
� …
� Jeux de requêtes
� LMD (~INSERT, ~UPDATE)
� LID (~SELECT)
13
ConclusionConclusion
�� Autres travaux Autres travaux
◦ Contourner la dépendance données/traitements
� Règles de choix des modèles en fonction des traitements
� Tenir compte de la distribution et des transferts de données
◦ Prendre en compte la variabilité des données
14
RéférencesRéférences[ADBIS15]
M. Chevalier, M. El Malki, A. Kopliku, O. Teste, R. Tournier (2015). Implementation of multidimensional databases in column-oriented NoSQL systems. East-European Conference on Advances in Databases and Information Systems (ADBIS’15), Poitiers, France, p.79-91. doi: 10.1007/978-3-319-23135-8_6
[DAWAK15]
M. Chevalier, M. El Malki, A. Kopliku, O. Teste, R. Tournier (2015). Not Only SQL Implementation of multidimensionaldatabase. International Conference on Big Data Analytics and Knowledge Discovery (DAWAK’15), Valencia, Spain, p.379-390. doi: 10.1007/978-3-319-22729-0_29
[EDA15]
M. Chevalier, M. El Malki, A. Kopliku, O. Teste, R. Tournier (2015). Entrepôts de données multidimensionnelles NoSQL. 11ème Journées francophones sur les Entrepôts de Données et l’Analyse en ligne (EDA’15), vol. RNTI-B-11, Bruxelles, Belgique, p.161-176.
[ICEIS15]
M. Chevalier, M. El Malki, A. Kopliku, O. Teste, R. Tournier (2015). Implementing Multidimensional Data Warehouses intoNoSQL. International Conference on Enterprise Information Systems (ICEIS’15), Barcelona, Spain, p.172-183. doi: 10.5220/000537980172018310.5220/0005379801720183
[OSDI04]
J. Dean, S. Ghemawat (2004). MapReduce: Simplified Data Processing on Large Clusters. 6th Symposium on operating system design and implementation (OSDI'04), San Francisco, California, p.137-150.
[RCIS15]
M. Chevalier, M. El Malki, A. Kopliku, O. Teste, R. Tournier (2015). Benchmark for OLAP on NoSQL Technologies. International Conference on Research Challenges in Information Science (RCIS'15), IEEE, Athens, Greece, p. 480-485. doi: 10.1109/RCIS.2015.7128909
[SOSP03]
S. Ghemawat, H. Gobioff, S-T. Leung (2003). The Google file system. ACM Symposium on operating systems principles(SOSP '03), New York, NY, USA, p.29-43. doi:10.1145/945445.945450
[VSST15]
M. Chevalier, M. El Malki, A. Kopliku, O. Teste, R. Tournier (2015). Implantation « Not-Only-SQL » des bases de données multidimensionnelles. Colloque Veille Stratégique Scientifique et Technologique (VSST’15), Grenade, Espagne.
15