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 diff´rentes.
e
Fournir une solution efficace, 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
Efficacit´ 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 diff´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: difficile 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 modification
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: Simplified 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´finition 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 modification. 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
Diff´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, InfiniteGraph, 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 diff´rences: approche de consistance, d´tection des
e e
conflits, 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