1. Constats
Travaux dans le contexte des SGBDR
MapReduce
Travaux dans le contexte des bases NoSQL
Conclusion
NoSQL et le stockage de triplets RDF
AG ANR Datalift (17-18 janvier 2012)
Olivier Cur´
e
UPEMLV , LIGM UMR CNRS 8049, France
January 19, 2012
Olivier Cur´
e
2. Constats
Travaux dans le contexte des SGBDR
MapReduce
Travaux dans le contexte des bases NoSQL
Conclusion
Plan
Constats sur RDF
Travaux dans le contexte des SGBDR
Map Reduce
Travaux dans le contexte des bases NoSQL
Conclusion
Olivier Cur´
e
3. Constats
Travaux dans le contexte des SGBDR
MapReduce
Travaux dans le contexte des bases NoSQL
Conclusion
Constats
RDF est un mod`le de donn´es sans aucune recommendation
e e
sur lâorganisation de la persistance des triplets.
Plusieurs solutions disponibles sur des technologies diďŹÂ´rentes.
e
Fournir une solution eďŹcace, performante, robuste et
permettant une mont´e en charge est toujours un probl`me
e e
ouvert.
Ecosyst`me des bases de donn´es riche et en ´volution.
e e e
Olivier Cur´
e
4. Constats
Travaux dans le contexte des SGBDR
MapReduce
Travaux dans le contexte des bases NoSQL
Conclusion
Olivier Cur´
e
5. Constats
Travaux dans le contexte des SGBDR
MapReduce
Travaux dans le contexte des bases NoSQL
Conclusion
Ecosyst`me NoSQL
e
Olivier Cur´
e
6. Constats
Travaux dans le contexte des SGBDR
MapReduce
Travaux dans le contexte des bases NoSQL
Conclusion
Objectifs de la pr´sentation
e
Mettre ´vidence les principales approches au travers des
e
param`tres suivants:
e
couche de stockage
indexation
traitement des requËtes
e
dans les solutions SGBDR et NoSQL
Olivier Cur´
e
7. Constats
Travaux dans le contexte des SGBDR
MapReduce
Travaux dans le contexte des bases NoSQL
Conclusion
Travaux dans le contexte des SGBDR
Les premi`res solutions de persistance de triplets RDF se
e
basent sur les SGBDR (Jena, Sesame, 3Store, Redland,
swStore, etc.)
Plusieurs dispositions possibles:
âTriple Tableâ: ensemble des triplets dans une unique table
avec 3 colonnes (Sujet, Propri´t´, Objet).
ee
âClustered property tableâ: Une table par regroupement de
propri´t´s.
ee
âProperty class tableâ: Regroupement des sujets dâune classe
dans une table.
âVertically partitioned tableâ: 1 table par propri´t´. (swStore)
ee
Olivier Cur´
e
8. Constats
Travaux dans le contexte des SGBDR
MapReduce
Travaux dans le contexte des bases NoSQL
Conclusion
Indexation
EďŹcacit´ de lâex´cution des requËtes d´pend du syst`me
e e e e e
dâindexation
Les principales solutions se basent sur de multiples indices
(Hexastore, Kowari, Virtuoso, RDF-3X, YARS, etc.)
Hexastore propose une solution bas´e sur 6 indexes diďŹÂ´rents:
e e
pso, pos, spo, sop, ops et osp; 6 indexes binaires
(sp,so,ps,po,os,op) et 3 unaires (s,p,o)
Olivier Cur´
e
9. Constats
Travaux dans le contexte des SGBDR
MapReduce
Travaux dans le contexte des bases NoSQL
Conclusion
Limites de lâapproche SGBDR
Distribution des donn´es sur plusieurs machines: âshardingâ
e
manuel, temps de latence li´ aux r´plications avec un
e e
environnement ACID.
Parall´lisation de certains traitements: diďŹcile dâint´grer des
e e
environnements comme MapReduce â Hadapt, Oracle et
cloudera, Vertica.
Maintenance des (15!) indexes et performance avec les
requËtes de modiďŹcation
e
Olivier Cur´
e
10. Constats
Travaux dans le contexte des SGBDR
MapReduce
Travaux dans le contexte des bases NoSQL
Conclusion
Approches distribu´es
e
1 distribue les noeuds du graphe sur un cluster de machines.
Chaque machine stocke son sous-graphe dans une instance
RDF-3X
Les sous graphes partagent des noeuds pour ´viter des
e
communications inter-machines.
Certaines requËtes sâex´cuteront en parall`le en utilisant
e e e
Hadoop (impl´mentation de MapReduce).
e
Autres solutions distribu´es: YARS2, SHARD, Virtuoso
e
1
Huand et al: Scalable SPARQL Querying of Large RDF Graphs. VLDB
2011
Olivier Cur´
e
11. Constats
Travaux dans le contexte des SGBDR
MapReduce
Travaux dans le contexte des bases NoSQL
Conclusion
MapReduce
Killer application of cloud computing
Un environnement pour r´aliser des calculs en parall`le sur des
e e
donn´es distribu´es
e e 2
Hadoop, une impl´mentation open-source de la fondation
e
Apache sâint`gre avec de nombreuses bases NoSQL (HBase,
e
Cassandra, CouchDB, etc.).
Tol´rance aux pannes avec redistribution automatique des
e
tËches sur le noeuds de la grappe de machine.
a
Nombreuses extensions apparaissent: apprentissage (Mahout),
traitement de graphes (Giraph), etc.
2
J. Dean et al. âMapReduce: SimpliďŹed Data Processing on Large Clustersâ
OSDI 2004
Olivier Cur´
e
12. Constats
Travaux dans le contexte des SGBDR
MapReduce
Travaux dans le contexte des bases NoSQL
Conclusion
Olivier Cur´
e
13. Constats
Travaux dans le contexte des SGBDR
MapReduce
Travaux dans le contexte des bases NoSQL
Conclusion
Olivier Cur´
e
14. Constats Key-value
Travaux dans le contexte des SGBDR Column family
MapReduce Document
Travaux dans le contexte des bases NoSQL Graphe
Conclusion Prochaines extensions
D´ďŹnition de NoSQL
e
Not Only SQL
Un ensemble de BD r´pondant :
e
` la croissance exponentielle de la taille des bases de donn´es
a e
la structuration des documents stock´s e
la connectivit´ des donn´es
e e
lâarchitecture des applications exploitant des bases de donn´es
e
Olivier Cur´
e
15. Constats Key-value
Travaux dans le contexte des SGBDR Column family
MapReduce Document
Travaux dans le contexte des bases NoSQL Graphe
Conclusion Prochaines extensions
Motivation par le th´or`me de CAP3 ,4
e e
Dans un syst`me informatique distribu´, il nâest possible
e e
dâavoir simultan´ment plus de deux des propri´t´s suivantes:
e ee
Consistency: un service est ex´cut´ totalement ou pas du tout
e e
(proche du concept dâAtomicit´ dâACID)
e
Availability: le service est toujours accessible
Partitioning tolerance: aucun ensemble de pannes autre que la
rupture totale du r´seau nâest acceptable pour que le syst`me
e e
ne fonctionne pas.
3
talk at ACM PODC 2000
4
S. Gilbert, N.Lynch: Brewerâs conjecture and the feasibility of consistent,
available, partition-tolerant web services. SIGACT News 33(2): 51-59 (2002)
Olivier Cur´
e
16. Constats Key-value
Travaux dans le contexte des SGBDR Column family
MapReduce Document
Travaux dans le contexte des bases NoSQL Graphe
Conclusion Prochaines extensions
Olivier Cur´
e
17. Constats Key-value
Travaux dans le contexte des SGBDR Column family
MapReduce Document
Travaux dans le contexte des bases NoSQL Graphe
Conclusion Prochaines extensions
Les choix possibles
CA, i.e. faire sans âpartition toleranceâ : Tout sur une seule
machine, pas de âscaling outâ.
CP, i.e. faire sans âavailabilityâ: probl`me de temps de latence
e
entre op´rations de modiďŹcation. Complexit´ de solutions de
e e
recouvrement des bases.
AP, i.e. faire sans âconsistencyâ. En fait, il y a un spectre des
niveaux de consistance, ex: âeventual consistencyâ. Un levier
important des solutions NoSQL.
Olivier Cur´
e
18. Constats Key-value
Travaux dans le contexte des SGBDR Column family
MapReduce Document
Travaux dans le contexte des bases NoSQL Graphe
Conclusion Prochaines extensions
Olivier Cur´
e
19. Constats Key-value
Travaux dans le contexte des SGBDR Column family
MapReduce Document
Travaux dans le contexte des bases NoSQL Graphe
Conclusion Prochaines extensions
Ecosyst`me NoSQL
e
4 cat´gories NoSQL
e
Key Value store
Column family
Document
Graphe
Olivier Cur´
e
20. Constats Key-value
Travaux dans le contexte des SGBDR Column family
MapReduce Document
Travaux dans le contexte des bases NoSQL Graphe
Conclusion Prochaines extensions
Key-Value (1)
Origine: Dynamo @ Amazon 5
Mod`le de donn´s: Mapping global de couples de cl´ valeur.
e e e
Hash map distribu´
e
Mod`le le plus simple.
e
Autres syst`mes: Voldemort (LinkedIn), Tokyo (Cabinet,
e
Tyrant), Riak (Basho), Oracle NOSQL
5
G. De Candia et al. Dynamo: Amazonâs highly available key-value store.
SOSP 2007
Olivier Cur´
e
21. Constats Key-value
Travaux dans le contexte des SGBDR Column family
MapReduce Document
Travaux dans le contexte des bases NoSQL Graphe
Conclusion Prochaines extensions
Stockage RDF bas´ Key-Value
e
Riak: distribu´, âhorizontal scalingâ, map reduce.
e
Exp´rimentation de M.Hausenblas sur le stockage de triplets
e
RDF sur Riak.
En associant chaque ressource RDF ` un objet Riak.
a
Olivier Cur´
e
22. Constats Key-value
Travaux dans le contexte des SGBDR Column family
MapReduce Document
Travaux dans le contexte des bases NoSQL Graphe
Conclusion Prochaines extensions
Column family
Origine: Bigtable @ Google 6
Mod`le de donn´es: une unique table avec des familles de
e e
colonnes
Autres syst`mes: HBase (Apache), Cassandra (Apache),
e
HyperTable, SimpleDB
6
F. Chang et al. Bigtable: a distributed storage system for structured data.
OSDI 2006
Olivier Cur´
e
23. Constats Key-value
Travaux dans le contexte des SGBDR Column family
MapReduce Document
Travaux dans le contexte des bases NoSQL Graphe
Conclusion Prochaines extensions
Cassandra
Organisation sous forme de couples cl´-valeur imbriqu´es
e e
keyspace â ColumnFamily â row key â columnKey â value
keyspace â ColumnFamily â row key â super column key
â columnKey â value
Une colonne est compos´e dâun nom, dâune valeur et dâun
e
timestamp (versioning)
Les colonnes et super colonnes sont tri´es
e
Olivier Cur´
e
24. Constats Key-value
Travaux dans le contexte des SGBDR Column family
MapReduce Document
Travaux dans le contexte des bases NoSQL Graphe
Conclusion Prochaines extensions
Cassandra (2)
Distribution suivant le principe de âConsistent hashingâ, sur
une anneau avec une r´plication automatique
e
Distribution apr`s panne est automatique
e
DiďŹÂ´rents niveaux de consistance
e
Olivier Cur´
e
25. Constats Key-value
Travaux dans le contexte des SGBDR Column family
MapReduce Document
Travaux dans le contexte des bases NoSQL Graphe
Conclusion Prochaines extensions
Exemple Column family
Olivier Cur´
e
26. Constats Key-value
Travaux dans le contexte des SGBDR Column family
MapReduce Document
Travaux dans le contexte des bases NoSQL Graphe
Conclusion Prochaines extensions
Stockage RDF bas´ Column Family
e
Application de lâindexation de Hexastore dans HBase7 .
Traitement des requËtes SPARQL dans le framework
e
MapReduce.
CumulusRDF8 propose 2 approches: une bas´ sur les super
e
colonnes de Cassandra et une bas´e strictement sur les familles
e
de colonnes. Exploite 3 indexes dans la version super colonnes
7
J. Sun et al. Scalable RDF Store Based on HBase and MapReduce.
ICACTE 2010
8
G. Ladwig et al. CumulusRDF: Linked Data Management on Nested
Key-Value Stores. SSWS 2011
Olivier Cur´
e
27. Constats Key-value
Travaux dans le contexte des SGBDR Column family
MapReduce Document
Travaux dans le contexte des bases NoSQL Graphe
Conclusion Prochaines extensions
Stockage RDF bas´ Column Family (2)
e
Stratusstore9 : 1 unique index sur le sujet des triplets sur la
base SimpleDB du cloud dâAmazon.
9
R. Stein et al: RDF On Cloud Number Nine. NeFoRS 2010
Olivier Cur´
e
28. Constats Key-value
Travaux dans le contexte des SGBDR Column family
MapReduce Document
Travaux dans le contexte des bases NoSQL Graphe
Conclusion Prochaines extensions
Document
Origine: Lotus notes
Mod`le de donn´es: Collections de documents o` un
e e u
document est une collection de couples cl´-valeur
e
Autres syst`mes: CouchDB (Apache), MongoDB (10gen),
e
Terrastore
Olivier Cur´
e
29. Constats Key-value
Travaux dans le contexte des SGBDR Column family
MapReduce Document
Travaux dans le contexte des bases NoSQL Graphe
Conclusion Prochaines extensions
MongoDB
Une collection regroupe des documents.
Un document est lâunit´ de base et correspond ` une instance
e a
JSON.
Support du document imbriqu´, listes.
e
Chaque document a une cl´ unique dans une collection.
e
Les collections sont stock´es dans une base de donn´es.
e e
Support de lâindexation dans une collection
Olivier Cur´
e
30. Constats Key-value
Travaux dans le contexte des SGBDR Column family
MapReduce Document
Travaux dans le contexte des bases NoSQL Graphe
Conclusion Prochaines extensions
MongoDB (2)
Taille max. dâun document:4Mo.
2Go avec GridFS
R´plication bas´e sur une approche Master-Slave avec reprise
e e
sur panne automatique.
R´plication asynchrone
e
Sharding automatique et transparent
Quand âsharderâ: probl`me dâespace disque, ´crire plus vite,
e e
plus de cache
Olivier Cur´
e
31. Constats Key-value
Travaux dans le contexte des SGBDR Column family
MapReduce Document
Travaux dans le contexte des bases NoSQL Graphe
Conclusion Prochaines extensions
Exemple Document DB
Olivier Cur´
e
32. Constats Key-value
Travaux dans le contexte des SGBDR Column family
MapReduce Document
Travaux dans le contexte des bases NoSQL Graphe
Conclusion Prochaines extensions
Stockage RDF bas´ NoSQL document
e
Un adaptateur pour le stockage de triplets RDF sur CouchDB
(rdf-couchdb sur github)
Un adaptateur pour MongoDB (MongoDB-RDF sur github)
Olivier Cur´
e
33. Constats Key-value
Travaux dans le contexte des SGBDR Column family
MapReduce Document
Travaux dans le contexte des bases NoSQL Graphe
Conclusion Prochaines extensions
Graphe
Origine: Th´orie des graphes
e
Mod`le de donn´es: Noeuds avec des propri´t´s
e e ee
Autres syst`mes: Neo4J, InďŹniteGraph, Sones GraphDB,
e
Trinity (Microsoft), FlockDB (Twitter donn´ ` Apache)
ea
Olivier Cur´
e
34. Constats Key-value
Travaux dans le contexte des SGBDR Column family
MapReduce Document
Travaux dans le contexte des bases NoSQL Graphe
Conclusion Prochaines extensions
Neo4J
Inspir´ de Lotus Notes
e
Des couples cl´-valeur sur les noeuds et les propri´t´s.
e ee
Moteur de stockage sur disque binaire en natif
Transactionel
Sharding est manuel
Mont´e en charge: 1 milliard dâentit´s (Ok) pas 100 milliards.
e e
Olivier Cur´
e
35. Constats Key-value
Travaux dans le contexte des SGBDR Column family
MapReduce Document
Travaux dans le contexte des bases NoSQL Graphe
Conclusion Prochaines extensions
Stockage RDF bas´ sur BD graphe
e
Support natif de SPARQL sur Neo4J
Pas dâexp´rimentation visible (probl`me de distribution)
e e
Olivier Cur´
e
36. Constats Key-value
Travaux dans le contexte des SGBDR Column family
MapReduce Document
Travaux dans le contexte des bases NoSQL Graphe
Conclusion Prochaines extensions
Olivier Cur´
e
37. Constats Key-value
Travaux dans le contexte des SGBDR Column family
MapReduce Document
Travaux dans le contexte des bases NoSQL Graphe
Conclusion Prochaines extensions
En g´n´ral, on peut repr´senter une instance dâun mod`le
e e e e
dans les autres mod`les.
e
Pour les syst`mes existants:
e
Points communs: pas de sch´ma, pas de jointure
e
Principales diďŹÂ´rences: approche de consistance, d´tection des
e e
conďŹits, contrËle de la concurrence, int´gration du parall´lisme
o e e
Olivier Cur´
e
38. Constats Key-value
Travaux dans le contexte des SGBDR Column family
MapReduce Document
Travaux dans le contexte des bases NoSQL Graphe
Conclusion Prochaines extensions
Plus dâACIDity10
MongoDB ajoute âdurable logging storageâ dans sa version 1.7
Cassandra ajoute une consistance forte dans la version 1.0
Des langages de requËtes:
e
MongoDB en a un depuis el d´but
e
Cassandra : CQL
Couchbase : UnQL
Neo4J : Cypher
Plus de Sch´ma
e
10
Emil Eifrem at NOSQL eXchange 2011
Olivier Cur´
e
39. Constats Key-value
Travaux dans le contexte des SGBDR Column family
MapReduce Document
Travaux dans le contexte des bases NoSQL Graphe
Conclusion Prochaines extensions
Avantages de lâapproche NoSQL
Distribution des donn´es
e
Bonne int´gration avec MapReduce (Hadoop)
e
Nombreux projets tr`s actifs
e
RDF semble plus adapt´ ` un contexte BASE que ACID
ea
Olivier Cur´
e
40. Constats Key-value
Travaux dans le contexte des SGBDR Column family
MapReduce Document
Travaux dans le contexte des bases NoSQL Graphe
Conclusion Prochaines extensions
Limites de lâapproche NoSQL
Maturit´ des impl´mentations
e e
Jointures
Langages de requËtes
e
H´t´rog´n´it´ des mod`les
ee e e e e
Manque dâoutils pour lâadministration
Olivier Cur´
e
41. Constats
Travaux dans le contexte des SGBDR
MapReduce
Travaux dans le contexte des bases NoSQL
Conclusion
Conclusion
Probl`me du stockage de triplets est ouvert car il faut
e
r´pondre aux besoins de
e
distribution des donn´es
e
parall´lisation des traitements
e
Maintenance des triplets et des indexes
NoSQL a de nombreux atouts mais les SGBDR sâadaptent
(e.g. m´canisme de transaction en RAM).
e
Lâadoption dâune approche doit Ëtre moti´e par les usages des
e e
triplets et choisir lâoutil le plus adapt´
e
Quelques pistes: nouvelles solutions pour lâindexation (e.g.
âindex crackingâ), prendre en compte les ontologies, nouvelles
infrastructures hybrides SGBDR-NoSQL, etc.
Olivier Cur´
e
42. Constats
Travaux dans le contexte des SGBDR
MapReduce
Travaux dans le contexte des bases NoSQL
Conclusion
Persistance polyglotte
Dans 11 nous avons propos´ une couche dâabstraction pour
e
lâacc`s ` des donn´es stock´es dans des SGBDR et NoSQL.
e a e e
11
O. Cur´, C. Le Duc et M. Lamolle: Data integration over NoSQL Stores
e
Using Access Path Based Mappings. Dexa 2011
Olivier Cur´
e
43. Constats
Travaux dans le contexte des SGBDR
MapReduce
Travaux dans le contexte des bases NoSQL
Conclusion
Les requËtes sur le sch´ma virtuel (SQL ou SPARQL) sont
e e
traduites dans un langage interm´diaire (BQL) pour permettre
e
une traduction vers chaque NoSQL store.
Olivier Cur´
e
44. Constats
Travaux dans le contexte des SGBDR
MapReduce
Travaux dans le contexte des bases NoSQL
Conclusion
Merci de votre attention
Olivier Cur´
e