Module 5 : Introduction
aux bases de donn es
NoSQL
Riadh ZAAFRANI
Novembre 2020
1 re ann e MP2L
1
2
Plan
Introduction
Contexte
Recherche sur le Web
Syst me distribu
Bases NoSQL
Types des BDDs NoSQL
Conclusion
1
2
1
Introduction
NoSQL : Not Only SQL, ce nest pas du relationnel, et
le contexte dutilisation nest donc pas celui des SGBDR.
Origine : recherche dinformation sur le web, moteurs
type Google, Yahoo, donn es des r seaux sociaux,
Facebook, Twitter, LinkedIn &
Besoin de stockage d normes masses de donn es.
Twitter par exemple re oit plusieurs Tera-octets de
donn es par jour.
Syst me distribu
table dassociations - Map - de couples (clef,valeur)
Diff rentes approches, rang es dans la famille NoSQL.3
3
Introduction
Pourquoi ces technologies sont pass es
des acteurs du web au grand public ?
Big Data Volume, Vari t , V locit
Exploitation
externes
ajout es aux donn es internes, quelles
(relationnelles,
structur es
soient
multidimensionnelles)
(e.g.
documentaires)
donn es
non
de
ou
4
4
2
Introduction
Quelques exemples de Big Data :
:
(donn es
Service marketing
informatique
d cisionnelle
coupl e avec
classique
lexploitation
non
internes
structur s), et des r seaux sociaux (donn es externes
non structur es).
structur es),
(donn es
de mails
Recherche Scientifique : capteurs qui
ram nent
norm ment de donn es num riques (acc l rateur de
particules, t lescope, ...) ou n cessit de partager des
donn es tr s volumineuses (g nomique, ...)
NoSQL
nest
quune
partie
de
cette
vaste
probl matique du Big Data.
5
5
6
Plan
Introduction
Contexte
Recherche sur le Web
Syst me distribu
Bases NoSQL
Types des BDDs NoSQL
Conclusion
6
3
Contexte : Recherche sur le Web
Collecter les documents publi s sur le web =
web crawling. + d tecter des changements
sur un document d j parcouru.
Traiter
ces
linformation
significatifs
documents
pour
contiennent
quils
extraire
: mots
construire un index permettant de retrouver les
documents les plus pertinents pour 1 mot clef
ou un ensemble de mots clefs = inverted files
7
7
Inverted File
comme le glossaire dun livre
1 mot clef on associe une collection de documents
qui contiennent ce mot
8
8
4
Inverted File - structure
on conna t le nombre de documents ni associ s un
terme ti .
on donne un poids wk chaque document dk associ au
terme ti. Le poids traduit la pertinence du document pour
ce terme.
9
9
10
Plan
Introduction
Contexte
Recherche sur le Web
Syst me distribu
Bases NoSQL
Types des BDDs NoSQL
Conclusion
10
5
Syst me distribu
Syst me distribu = syst me logiciel qui
permet de coordonner plusieurs ordinateurs.
G n ralement, cette coordination se fait par
envoi de messages via un r seau auquel sont
reli s ces ordinateurs.
Pourquoi ? parce quon manipule un tr s
grand volume de donn es. Sans distribution,
on na pas dapplication scalable.
11
11
Scalabilit horizontale et verticale
Avec l'explosion de la taille des donn es g rer
les bases de
que connaissent certaines soci t s,
donn es traditionnelles n'arrivent pas fournir un
alors deux
temps de
solutions sont envisageables :
satisfaisant,
r ponse
Soit augmenter les ressources de la machine (la
puissance du processeur, la m moire, etc.) : c'est ce
que l'on appelle une scalabilit verticale
Soit utiliser un cluster de machines, c'est ce que
l'on appelle une scalabilit horizontale.
12
12
6
Scalabilit horizontale et verticale
Publicité
La premi re solution (scalabilit verticale), a ses limites.
En effet, on ne peut pas augmenter la puissance du
processeur l'infini, par exemple, d'autant plus que
l'augmentation des performances des composants est
plus
suivie
importante.
augmentation
encore
d'une
prix
du
La seconde solution (scalabilit horizontale) permet en
th orie, une augmentation illimit e des capacit s avec un
co t de revient moindre, car il suffit d'ajouter d'autres
machines au cluster.
Attention : au-del d'une certaine taille de donn es, il n'y
a que la deuxi me solution qui demeure plausible.
13
13
Scalabilit horizontale et verticale
Le probl me, c'est que dans un cluster, les points forts des
bases de donn es relationnelles, transactions, jointures et
propri t s ACID (Atomicity, Consistency,
Isolation,
Durability) handicapent les temps de r ponse.
C'est suite ce constat que les bases de donn es NoSQL
ont merg , ces bases se caract risant par l'abandon des
jointures et des transactions au profit d'un temps de
r ponse court.
La question qui se pose est donc de savoir comment
concevoir son sch ma de donn es dans un tel contexte ?
La solution r side dans la d normalisation des donn es14
14
7
Syst me distribu
On peut imaginer 2 scenarii de traitement des
donn es :
1. On dispose dun grand ensemble de
donn es, et on doit
leur appliquer des
traitements disponibles sur des sites distincts.
Il faut donc envoyer les donn es aux endroits
appropri s, et encha ner
ex cutions
distantes. Cest un sc nario de type Workflow,
impl menter avec des web
que lon peut
services Traitements distribu s.
les
15
15
16
Syst me distribu
2. Les donn es sont distribu es sur un certain
les
nombre de serveurs, et on pousse
programmes vers ces serveurs.
Il est en effet plus efficace de transf rer un
petit programme sur le r seau plut t quun
grand volume de donn es Donn es
distribu es.
On
MapReduce qui utilise cette approche.
lalgorithme
cours
verra
dans
ce
16
8
Exemple : Data Centers de Google
Utilise des LANs (Local Area Networks). On
distingue 3 niveaux de communication :
1. Les serveurs sont regroup s en racks.
Liaison r seau rapide, environ 1Go/sec.
2. Un data center consiste en un grand nombre
de racks, interconnect s par des routeurs
(switches). Liaison 100 Mo/sec.
3. Entre diff rents data centers, il y a aussi une
possibilit de communication mais par
liaison assez lente (internet - 2-3 Mo/sec)
17
17
Exemple : Data Centers de Google
Les serveurs communiquent par envoi de messages, Ils ne
partagent pas de disque ni de ressource de traitement.
= architecture shared nothing.
D but 2010 : 1 data center Google contient entre 100 et 200
racks, chacun contenant 40 serveurs. Environ 5000 serveurs
par data-center pour un total de 1 millions de serveurs
(estimation dapr s la consommation lectrique).
2010 : 1 Data center de Facebook :
2500 cpu (serveurs)
1 PetaByte d espace disque (= milleTerabytes)
Plus de 250 Gigabytes donn es compress es (plus de 2
Terabytes non compress s)
18
18
9
Sch ma : LAN/data center
19
Le th or me CAP
Aucun syst me distribu ne peut
fournir les 3 propri t s suivantes :
tous les nSuds voient
1. Consistency (coh rence) :
exactement les m mes donn es en m me temps
: L chec dun nSud
2. Availability (disponibilit )
nemp che pas les survivants de continuer fonctionner
3. Partition tolerance (r sistance au partitionnement) :
Le syst me continue fonctionner malgr la perte dun
message d une panne. Autrement dit, en cas de
morcellement du r seau, chaque sous-r seau doit
pouvoir fonctionner de fa on autonome.
20
19
20
10
Le th or me CAP expliqu
Pourquoi est-il
impossible de satisfaire les 3 propri t s
CAP en m me temps?
Soit un syst me distribu . On est entrain de modifier une
donn e sur le nSud N1 et dessayer de la lire partir du
nSud N2
N2 peut retourner la derni re bonne valeur dont il dispose, ce
qui viole la Consistance
N2 attend que la nouvelle valeur lui parvienne. Comme cest
chances dun chec de
un syst me distribu ,
les
transmission sont assez importantes, ce qui provoquera une
attente infinie de N2. Do une violation de la Disponibilit
Si on veut satisfaire la fois la consistance et la disponibilit ,
le syst me de stockage ne doit pas tre partitionn . Do
violation de la Tol rance au partitionnement.
21
21
Le th or me CAP
pendant lenvoi du message M, d ` d
en g n ral,
la r sistance au partitionnement nest pas
discutable dans un syst me distribu : on doit choisir en A+P
ou C+P
Un SGBD relationnel classique va privil gier C+P, avec un
syst me transactionnel distribu et la v rification des propri t s
ACID. Cest au d triment des performances !
22
En NoSQL, on choisit plut t A+P.
22
11
Caract ristiques des Bases NoSQL
Privil gient la Disponibilit
la Coh rence (th or me de
CAP)
AP (Disponible + R sistant
au partitionnement) plut t
que CP (Coh rent +
R sistant au partitionnement)
G n ralement elles
nint grent pas de gestion de
transactions
Mode d'utilisation : peu
d' critures, beaucoup de
lectures
23
24
Plan
Publicité
Introduction
Contexte
Recherche sur le Web
Syst me distribu
Bases NoSQL
Types des BDDs NoSQL
Conclusion
23
24
12
Bases NoSQL
Dans un contexte distribu , avec un tr s grand volume de
donn es, sont apparues plusieurs solutions englob es sous
le terme de NoSQL.
Ces bases de donn es ont certaines caract ristiques :
pas de sch ma pour les donn es
donn es de structures complexes ou imbriqu es
mode dutilisation : peu d critures, beaucoup de lectures
on privil gie la disponibilit la coh rence : A+P plut t
que C+P, ces solutions NoSQL ne contiennent pas de
support pour les transactions (ou rarement)
Donn es distribu es : on a souvent la possibilit dutiliser
des algorithmes MapReduce.
25
25
Qu'est-ce que le MapReduce ?
MapReduce
un
est
patron
de
d veloppement informatique, popularis (et non invent )
par Google, dans lequel sont effectu s des calculs
parall les,
donn es
potentiellement tr s volumineuses.
d'architecture
distribu s,
souvent
de
et
Utilis dans tous les syst mes forte volum trie
(NoSQL, BigData, ... ).
Une t che MapReduce s'effectue en deux temps :
Map : Analyse d'un probl me, d coup en sous
probl mes (peut tre r cursif).
Reduce : Remont e des r sultats au nSud parent
l'ayant sollicit .
26
26
13
Algorithme MapReduce
Le programmeur d finit 2 fonctions :
1. Map : transforme lentr e en couples (clef, valeur)
2. Reduce : calcule 1 valeur partir de la liste des
valeurs associ es chaque clef
lalgorithme
dex cution
MapReduce soccupe de laspect distribution :
le
programme est distribu sur les diff rents nSuds, on
a donc une ex cution en parall le.
de
Lenvironnement
Un programme complexe est d compos en une
succession de t ches Map et Reduce
27
27
28
Fonctions de base
1. map : (K, V) list(K0, V0)
function map(uri, doc)
// uri : nom (id) du document, doc : le contenu du document
for each distinct term in doc
output (term, count(term, doc))
2. shuffle : list(K0, V0) list(K0, list(V0))
regroupe les couples interm diaires en fonction de leur clef.
3. reduce : (K0, list(V0)) (K00, V00)
function reduce(term, counts)
output (term, sum(counts))
28
14
Exemple
Si on reprend le document du transparent 8, et on applique
les fonctions map et reduce du transparent pr c dent pour
compter le nombre de documents par terme.
29
Exemple
On obtiendra :
30
29
30
15
Plan
Introduction
Contexte
Recherche sur le Web
Syst me distribu
Bases NoSQL
Types des BDDs NoSQL
Conclusion
31
31
Bases NoSQL
Nous allons revoir les diff rents paradigmes
utilis s pour les bases NoSQL.
1. stockage de couples (cl , valeur)
2. bases orient es colonnes
3. bases de documents
4. bases de graphes
32
32
16
Types des BDDs NoSQL
Il sagit de choisir la fa on la mieux adapt e la
repr sentation des informations stock s :
Cl -valeur / Key-value : chaque objet est identifi
par une cl unique constituant la seule mani re de le
requ ter
Colonne / Column : permet de disposer d'un tr s
grand nombre de valeurs sur une m me ligne, de
stocker des relations one-to-many , d'effectuer des
requ tes par cl (adapt s au stockage de listes :
messages, posts, commentaires, ...)
33
33
34
Types des BDDs NoSQL
Document : gestion de collections de
documents, compos s chacun de champs et
de valeurs associ es, valeurs pouvant tre
requ t es (adapt es au stockage de profils
utilisateur)
Graphe : pour g rer des relations multiples
entre les objets (adapt s aux donn es issues
de r seaux sociaux, &)
34
17
1-Type orient Cl / Valeur
La base est une table de hachage distribu e. On
dispose en g n ral de 4 op rations :
1. Create (key, value) : cr er un nouveau couple (clef,
valeur). La valeur est nimporte quel objet.
2. Read (key) : lire un objet connaissant sa clef
3. Update (key, value) : mettre jour lobjet associ
une clef
4. Delete (key) : supprimer un objet connaissant sa
clef
On ne peut pas effectuer de requ te sur le contenu
des objets stock s.
35
35
1-Type orient Cl / Valeur
Con ues pour sauvegarder les donn es sans d finir de
sch ma, Toutes les donn es sont sous forme de
clef/valeur
La valeur peut tre une cha ne de caract res, un objet
s rialis , blob&
La donn e est opaque au syst me : il nest pas possible
dy acc der sans passer par la clef
Labsence de typage a un impact sur le requ tage : toute
lintelligence port e avant par les requ tes devra tre
port e par lapplicatif qui interroge la BD
Fournir un acc s rapide aux informations
36
36
18
1-Type orient Cl / Valeur
Qui s'int resse des fonctionnalit s aussi simples ? Quelques exemples :
Redis (VMWare) : Vodafone, Trip Advisor, Nokia, Samsung, Docker
Publicité
Memcached (Danga) : LiveJournal, Wikip dia, Flickr, Wordpress
Azure Cosmos DB (Microsoft) : Real Madrid, Orange tribes, MSN, LG, Schneider
Electric
SimpleDB (Amazon)
37
37
Cl / Valeur Forces et Faiblesses
Forces :
mod le de donn es simple
bonne mise l' chelle horizontale pour les lectures et critures :
volutivit (scalable)
Disponibilit
pas de maintenances requises lors d'ajout/suppression de
colonnes
Faiblesses : mod le de donn es TROP simple :
pauvre pour les donn es complexes
interrogation seulement sur cl
d porte une grande partie de la complexit de l'application
sur la couche application elle-m me
38
38
19
2-Type orient Colonne
Les donn es sont stock es par colonne, non par ligne
On peut facilement ajouter des colonnes aux tables,
par contre l'insertion d'une ligne est plus co teuse
Quand les donn es d'une colonne se ressemblent, on
peut facilement compresser la colonne
Mod le proche d'une table dans un SGBDR mais ici le
nombre de colonnes :
est dynamique
peut varier d'un enregistrement un autre ce qui
vite de retrouver des colonnes ayant des valeurs
NULL
39
2-Type orient Colonne
40
20
39
40
2-Type orient Colonne
Les deux principales diff rences entre les BD colonnes et
les
bases de donn es relationnelles:
1. Les colonnes sont dynamiques. Au sein dune m me table
deux individus peuvent ne pas avoir le m me nombre de colonnes
car les valeurs nulles ne sont pas stock es (ce qui est le cas
dans les SGBDR relationnels).
Cette propri t permet de lib rer de la place de stockage et
dam liorer les performances de traitement car la volum trie de
donn es traiter est plus faible.
Avec cette propri t , on a plus tendance galement ne cr er
quune seule table contenant
toutes les donn es (et donc
colonnes) dont on a besoin et non plus une multitude de tables
comme cest le cas dans les mod les relationnels. Cette absence
de jointure entre les tables am liore galement les performances.
41
41
2-Type orient Colonne
2. Lhistorisation des donn es se fait la valeur
et non pas la ligne comme dans les SGBDR cela
emp che le stockage dinformations en doublon et de
ce fait all ge consid rablement la base de donn es
et les temps de calcul.
Une table orient e donn es s rialise toutes les
valeurs d'une ligne ensemble, puis les valeurs de la
ligne suivante, etc.
Une base de donn es orient e colonne s rialise les
valeurs d'une colonne ensemble, puis les valeurs de
la colonne suivante, etc.
42
42
21
2-Type orient Colonne
Exemple dhistorisation
On constate que les valeurs Black et George sont stock es
deux fois c t SGBDR vs 1 fois c t Nosql orient colonne.
2-Type orient Colonne
43
44
43
44
22
2-Type orient Colonne
Quelques exemples en NoSQL :
BigTable de Google et son impl mentation
open source (Apache) HBase. Google utilise
BigTable pour lindexation des pages web,
Google Earth, Google analytics, &
SimpleDB de Amazon
Cassandra fondation Apache, projet n chez
Facebook.
45
45
Colonne Usage principal
D p t de donn es avec besoins de requ tage tr s
simples
Ces bases sont particuli rement bien adapt es
nombreux
stocker
tr s
lorsque lon
v nements qui doivent tre mis jour
r guli rement. Comme par exemple :
tr s
doit
de
Le suivi de colis (de nombreux v nements dont le
statut change : En pr paration, en cours de livraison,
livr ..)
La r cup ration et lanalyse de donn es en temps
r el issues de capteurs, IOT etc&..
46
46
23
Colonne Forces et Faiblesses
Forces :
Tr s adapt e pour effectuer des traitements sur des colonnes
comme les agr gats (comptage, moyennes, co-occurences...).
Naturellement index (colonnes)
Bonne mise l' chelle l'horizontale
Utilisation de MapReduce pour le scaling horizontal, on peut
voir les r sultats de requ tes en temps r el
Faiblesses :
A viter pour des donn es interconnect s (comme la distance
ou calculs de la trajectoire)
A viter pour les lectures de donn es complexes
Exige de la maintenance -lors de l'ajout / suppression de
47
colonnes et leur regroupements
47
3-Type orient Document
tendent
le paradigme clef/valeur, avec des documents
plus complexes la place des donn es simples, et une clef
unique pour chacun deux
Un Document est de type JSON ou XML
Chaque Document est un objet, contient un ou plusieurs
champs, et chaque champ contient une valeur typ e (string,
date, binary ou array)
Permettent de stocker, extraire et g rer
les informations
orient es documents (donn es semi-structur es)
Avantage: pouvoir r cup rer, via une seule clef, un ensemble
dinformations structur es de mani re hi rarchique
Dans un SGDBR, cela impliquerait plusieurs jointures
48
48
24
3-Type orient Document
49
49
3-Type orient Document
On peut stocker nimporte quel objet, via une s rialization
les documents nont pas de sch ma : grande flexibilit
Quelques exemples :
MongoDB (MongoDB) : ADP, Adobe, Bosch, Cisco,
eBay, Electronic Arts, Expedia, Foursquare
CouchBase (Apache, Hadoop)
Comcast, Disney, PayPal, Ryanair
: AOL, AT&T,
DynamoDB (Amazon) : BMW, Dropcam, Duolingo,
Supercell, Zynga
Cassandra (Facebook -> Apache) : NY Times, eBay,
Sky, Pearson Education
50
50
25
Document Usage principal
Publicité
QQuelques exemples d'utilisation :
gestion de contenu (biblioth ques num riques,
collections de produits, d p ts de logiciels,
collections multim dia, etc.),
framework stockant des objets,
collection d v nements complexes,
gestion
dutilisateurs
historiques
des
sur
r seaux sociaux,
&
51
51
Document Forces et Faiblesses
Forces :
Mod le de donn es simple mais puissant
(expression de structures imbriqu es)
Bonne mise l' chelle (surtout si le sharding
est pris en charge)
Pas de maintenance de la BD requise pour
ajouter/supprimer des colonnes
Forte expressivit de requ tage (requ tes
assez complexes sur des structures)
52
52
26
Document Forces et Faiblesses
Faiblesses :
Inadapt e pour les donn es
interconnect es
Mod le de requ te limit e des cl s (et
indexes)
Peut alors tre lent pour les grandes
requ tes (avec MapReduce)
53
53
4-Type orient Graphe
Bas es sur les th ories des graphes
Sappuie sur les notions de nSuds, de relations et des
propri t s qui leur sont rattach es
Con ues pour les donn es dont
les relations sont
repr sent es comme graphes, et ayant des l ments
interconnect s, avec un nombre ind termin de
relations entre elles
Une base de donn es orient e graphe correspond un
syst me de stockage capable de fournir une adjacence
entre l ments voisins : chaque voisin d'une entit est
accessible gr ce un pointeur physique.
54
54
27
4-Type orient Graphe
Adapt la manipulation dobjets complexes
organis s en r seaux : cartographie, r seaux
sociaux, web s mantique &
Utilisent un moteur de stockage similaire
les
une base documentaire pour stocker
nSuds
Utilisent un m canisme de description d arcs
(relations entre les nSuds), arcs orient s et
avec propri t s (nom, date, ...)
55
4-Type orient Graphe
55
56
56
28
Graphe Usage principal
Quelles bases de donn es g rent de gros graphes ?
Neo4j : eBay, Cisco, UBS, HP, TomTom, The National
Geographic Society
OrientDB (Apache) : Comcast, Warner Music Group, Cisco,
Sky, United Nations, VErisign
FlockDB (Twitter) : Twitter
Quelques id es d'applications reposant sur des bases
orient es graphes :
r seaux
sociaux
(recommandation, plus
court
chemin,
cluster...),
r seaux SIG (routes, r seau lectrique, fret...),
web social (Linked Data)
&
57
57
Graphe Forces et Faiblesses
Forces :
Mod le de donn es puissant
Rapide pour les donn es li es, bien plus rapide que
SGBDR
Mod les d'interrogation bien tablis et performants
Faiblesses :
Fragmentation (sharding) :
M me si elles peuvent voluer assez bien
58
58
29
Plan
Introduction
Contexte
Recherche sur le Web
Syst me distribu
Bases NoSQL
Types des BDDs NoSQL
Conclusion
59
59
NoSQL - Atouts
Adapt au BigData (grand volume, donn es
structur es, semi-structur es ou non-structur es,
donn es stock es et g r es plusieurs endroits)
Disponibilit continue des donn es
Utilisent une architecture hautement distribu e
Ind pendance de lemplacement (Possibilit de
consulter et modifier une BD sans savoir o est-
ce que ces op rations ont r ellement lieu)
Mod les de donn es flexibles
60
60
30
NoSQL -Faiblesses
Choix de NoSQL, en opposition aux bases de
donn es relationnelles, conduits par les contraintes
du march et les besoins techniques
Il nexiste pas de langage de requ tage unifi (tel
que SQL)
Requ tage moins expressif que SQL
Moins mature que les SGDBR (dizaine dann es vs
40+)
Moins doutils que les SGDBR
SQL est de retour - NewSQL
61
62
61
62
31
SQL est de retour - NewSQL
NewSQL d signe une cat gorie de syst mes
de gestion de base de donn es (SGBD)
relationnelles modernes qui
cherchent
fournir la m me puissance volutive que les
syst mes
traitement
transactionnel en ligne (lecture- criture), tout
en maintenant
les propri t s ACID d'un
syst me de base de donn es traditionnel.
NoSQL
pour
le
63
64
Conclusion
Utilisez
donn es pour le bon probl me
le bon mod le de
Merci pour votre attention!
63
64
32