MOBIDIK nosql MOdeling of BIg Data, Information and Knowledge
M. Chevalier, A. Kopliku, M. El Malki, O.Teste, R. Tournier IRIT - Equipe SIG (Systèmes d’Informations Généralisés)
1
Contexte Mégadonnées ou « Big Data » ◦ 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]
Autres collections Astronomie, Biologie, Météorologie, etc
Nouveaux 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
Contexte Plusieurs paradigmes NoSQL ◦ orientés clé/valeur Données = { (clé, valeur) }
BD1
Clé : identifiant Valeur : pas de structure
(k1, v1) (k2, v2)
Stockage des couples
◦ orientés documents
BD2 (k4, v4)
BD1
Données = { documents } Identifiant de document Structures variables & Imbrication
◦ orientés colonnes Identifiant de tuple Structures variables
c1 v1.1 … v5.1
Stockage vertical des colonnes
BD3
d3
BD1
Données = Table { tuples }
(k5, v5) (k6, v6)
BD2
d1 d2
Stockage horizontal des documents
BD3
d4 d5
BD2
c2 v1.2 … v5.2
BD3
c3 v1.3 … v5.3
c4 v1.4 … v5.4
◦ orientés graphes Données = { nœuds } { arcs } Graphe étiqueté orienté Structures variables des nœuds & des arcs
BD1
Stockage distribué du graphe
BD2
n1 e1.2
e6.4 e1.6
n2
BD3
n6
e6.5
n4 n5
3
Contexte Nombreux logiciels qui apparaissent et disparaissent…
4
Problématique Projets versus Solutions NoSQL ◦ 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/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ématique Comment modéliser les données ? ◦ NoSQL => Dépendance Données / Traitements Illustration du problème ◦ Données PRODUIT NP P1 P2 P3
DES D1 D2 D3
SITE NS S1 S2 S3 S4
URL w1 w2 w3 w4
◦ Traitements
SITE {[NS,
FOURNIR NS S1 S1 S2 S2 S2 S3 S3
NP P1 P3 P1 P2 P3 P3 P2
PU 10 20 15 20 30 15 15
Le dilemme de l’imbrication q1 « Restituer par site web les produits les plus chers » FOURNIR PRODUIT URL, FOURNIR {[NP, DES, PU]}]} ≺ {[NS, URL, NP, DES , PU]} ≺ {[NP, DES, FOURNIR q2 « Restituer par désignation de produit le numéro du site web qui le propose au prix le plus bas »
PRODUIT {[NP, DES, FOURNIR {[NS, URL, PU]}]}
≺
FOURNIR {[NS, URL, NP, DES , PU]}
≺
{[NS, URL, PU]}]}
SITE {[NS, URL, FOURNIR {[NP, DES, PU]}]}
6
Proposition Différents niveaux d’abstraction [ICEIS15] Processus de transformation de modèles [ADBIS15, DAWAK15] Modèles distinguant Schéma / Valeur [EDA15] [VSST15] Conceptuel
Travaux existants Schéma indépendant (UML)
Nos travaux
Logique Schéma Relationnel
Schéma générique NoSQL
Schémas spécifiques Schéma « orienté colonnes »
Schéma « orienté documents »
Physique 7
Proposition Etude de cas : entrepôts de données multidimensionnelles ◦ Schéma en étoile Fait : « sujet de l’analyse » (indicateurs numériques) Dimension : « axe de l’analyse » (paramètres)
Benchmark ◦ SSB (ROLAP) SSB+ (NoSQL) [RCIS15]
Part ProdName Size Brand Type Category
Date DateDesc Month() MonthName() Year()
LineOrder Quantity Discount Revenue Tax
Customer
Supplier Name City Region Nation
Name City Region Nation
8
Proposition Modèle générique assurant séparation structure/valeur ◦ Notations [ ] structure { } ensemble
Plusieurs processus générique de transformations ◦ MLD0 « Flat » ◦ MLD1 « Deco » ◦ MLD2 « Shattered » ◦ MLD3 « Hybrid »
9
Proposition Exemple MLD1 « Deco » Conceptuel
LineOrder
Customer
Quantity Discount Revenue Tax
Name City Region Nation
MLD1
Logique
Schema {[_IdLineOrder, LineOrder {[Quantity, Discount, Revenue, Tax]}, Customer {[Name, City, Region, Nation]} ]}
Schema
×
_IdLineOrder LineOrder
× Quantity Discount Revenue Tax Name
Customer
× City Region Nation
10
Proposition Processus de transformation ◦ Automatique ◦ Processus réversible inter-modèle ◦ Conceptuel LineOrder
Customer
Quantity Discount Revenue Tax
MLD0
Logique
(MLD0) -1
Name City Region Nation
MLD1
(MLD1) -1
MLD2
(MLD2) -1
…
{[_IdLineOrder, {[_IdLineOrder, {[_IdLineOrder, LineOrder Quantity, _IdCustomer, {[Quantity, Discount, Quantity, Discount, Revenue, Discount, Revenue, Tax, Revenue, MLD1((MLD0) -1) MLD2((MLD1) -1) Tax]} Tax]}, Name, Customer City, {[Name, Region, {[_IdCustomer, City, Nation Name, -1 MLD0((MLD1) -1) Region, MLD1((MLD2) ) City, ]} Nation]} Region, ]} Nation ]}
MLD0((MLD2) -1)
MLD2((MLD0) -1)
11
Proposition Processus de transformation ◦ Exemple
{
MLD1((MLD0
_id : "22021972", Customer : { Name : "Olivier", City : "Toulouse", Region : "Midi-Pyrénées", Nation : "France" }
) -1)
}
{ _id Name City Region Nation
: : : : :
"22021972", "Olivier", "Toulouse", "Midi-Pyrénées", "France"
MLD1((MLD1) -1)HBase
}
MLD1((MLD0
) -1)
HBase
RowKey 22021972
Customer Name City Region Olivier Toulouse Midi-Pyrénées
Nation France
12
Proposition Expérimentations ◦ Systèmes NoSQL Stockage horizontal Stockage vertical
◦ Benchmark SSB+ Opérationnel 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
Conclusion 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é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 multidimensional database. International Conference on Big Data Analytics and Knowledge Discovery (DAWAK’15), Valencia, Spain, p.379390. 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 into NoSQL. International Conference on Enterprise Information Systems (ICEIS’15), Barcelona, Spain, p.172-183. doi: 10.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