33
Not only SQL Introduction. TELECOM ParisTech, Institut TELECOM CNRS LTCI, 46, rue Barrault, 75013 Paris. FRANCE Soufiane RITAL http://tsi.enst.fr/~rital/ [email protected]

PLAform Tsi Online - PLATO · Les modifications apportées à la base doivent être valides, en accord avec l'ensemble de la base et de ses contraintes d'intégrité 10 Si un changement

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: PLAform Tsi Online - PLATO · Les modifications apportées à la base doivent être valides, en accord avec l'ensemble de la base et de ses contraintes d'intégrité 10 Si un changement

Not only SQL

Introduction.

TELECOM ParisTech, Institut TELECOM CNRS LTCI, 46, rue Barrault, 75013 Paris.

FRANCE

Soufiane RITAL

http://tsi.enst.fr/~rital/

[email protected]

Page 3: PLAform Tsi Online - PLATO · Les modifications apportées à la base doivent être valides, en accord avec l'ensemble de la base et de ses contraintes d'intégrité 10 Si un changement

PLATO – OTB – KEO S. RITAL

Plan

Pourquoi noSQL ?

• Limites des SGBD relationnels dans une

architecture distribuées.

• Limites face aux utilisateurs

Les solutions

• NoSQL : Paradigme Clé / Valeur

• NoSQL : Bases documentaires

• NoSQL : Bases orientées colonnes

• NoSQL : Graphe / Hypergraphe

Map/Reduce et dénormalisation des données.

3

Page 4: PLAform Tsi Online - PLATO · Les modifications apportées à la base doivent être valides, en accord avec l'ensemble de la base et de ses contraintes d'intégrité 10 Si un changement

PLATO – OTB – KEO S. RITAL

Technologies SQL

BD relationnelle : transactionnelle, intégrité de

données.

Grand succès des BD relationnelles grâce à SQL

• Standardisation des SQL (moins de cout en

formation pour les entreprises)

• SQL embarque plein de fonctionnalités.

• Maturation des outils permettant l’exploitation des

BD-R

- Développeurs (IDE graphiques, intégration dans les langages

et les frameworks, …)

- Exploitation (outils de sauvegarde, monitoring, …)

4

Page 5: PLAform Tsi Online - PLATO · Les modifications apportées à la base doivent être valides, en accord avec l'ensemble de la base et de ses contraintes d'intégrité 10 Si un changement

PLATO – OTB – KEO S. RITAL

Mais !

Les SGBD relationnels ne sont pas adaptés aux

environnements distribués requis par les volumes

gigantesques.

5

Page 6: PLAform Tsi Online - PLATO · Les modifications apportées à la base doivent être valides, en accord avec l'ensemble de la base et de ses contraintes d'intégrité 10 Si un changement

PLATO – OTB – KEO S. RITAL

Leurs besoins.

Scaling des traitements. Capacité à distribuer les

traitements

Scaling des données. Capacité à répartir les

données.

La distribution de données sur plusieurs

dataCenters (répliquer les données) afin d’assurer

une continuité de service en cas de panne d’un

datacenter. Les donnes sont plus proche au client.

Architecture qui fonctionnent sur du matériel

moins sophistiqué.

6

Page 7: PLAform Tsi Online - PLATO · Les modifications apportées à la base doivent être valides, en accord avec l'ensemble de la base et de ses contraintes d'intégrité 10 Si un changement

PLATO – OTB – KEO S. RITAL

Limites des BD Relationnelles.

Le modèle relationnel est transactionnel !

• Les développeurs disposent d’un ensembles de req.

SQL permettant de faire :

- des jointures entre les tables (requêtes complexe, faisant

intervenir plusieurs tables, produit cartésien)

- Intégrité référentielle permettant de s’assurer que les liens

entre les entités sont valides.

• La mise en œuvre dans un contexte distribué est

très couteuse !

- S’assurer que les données liées entre elles sont placées sur

le même nœud du serveur.

7

Page 8: PLAform Tsi Online - PLATO · Les modifications apportées à la base doivent être valides, en accord avec l'ensemble de la base et de ses contraintes d'intégrité 10 Si un changement

PLATO – OTB – KEO S. RITAL

Limites des BD Relationnelles.

Autre le modèle relationnel, les moteurs SGBDs

(qui assure le fonctionnement de SGBD, création,

insertion, recherche, …) sont transactionnels ce

qui leur impose le respect des contraintes

ACID.

Atomicity.

Consistency

Isolation

Durability.

8

Page 9: PLAform Tsi Online - PLATO · Les modifications apportées à la base doivent être valides, en accord avec l'ensemble de la base et de ses contraintes d'intégrité 10 Si un changement

PLATO – OTB – KEO S. RITAL

ACID. Atomicity

Les mises à jour de la BD doivent être atomiques.

Binaires : réalisées ou pas.

9

Par exemple, sur 5000 lignes devant

être modifiées au sein d’une même

transaction,

si la modification d'une seule

échoue, alors la transaction entière

doit être annulée.

Page 10: PLAform Tsi Online - PLATO · Les modifications apportées à la base doivent être valides, en accord avec l'ensemble de la base et de ses contraintes d'intégrité 10 Si un changement

PLATO – OTB – KEO S. RITAL

ACID. Consistency

Les modifications apportées à la base doivent être

valides, en accord avec l'ensemble de la base et

de ses contraintes d'intégrité

10

Si un changement enfreint l'intégrité des

données, alors soit le système doit modifier

les données dépendantes, comme dans le

cas classique d’une suppression en

cascade, soit la transaction doit être

interdite.

Page 11: PLAform Tsi Online - PLATO · Les modifications apportées à la base doivent être valides, en accord avec l'ensemble de la base et de ses contraintes d'intégrité 10 Si un changement

PLATO – OTB – KEO S. RITAL

ACID Isolation

Les transactions lancées au même moment ne

doivent jamais interférer entre elles

11

Si une requête est lancée alors qu'une

transaction est en cours, le résultat de

celle-ci ne peut montrer que l'état original

ou final d'une donnée, mais pas l'état

intermédiaire.

Page 12: PLAform Tsi Online - PLATO · Les modifications apportées à la base doivent être valides, en accord avec l'ensemble de la base et de ses contraintes d'intégrité 10 Si un changement

PLATO – OTB – KEO S. RITAL

ACID. Durability

Toutes les transactions sont lancées de manière

définitive. Une base ne doit pas afficher le succès

d'une transaction, pour ensuite remettre les

données modifiées dans leur état initial.

12

Page 13: PLAform Tsi Online - PLATO · Les modifications apportées à la base doivent être valides, en accord avec l'ensemble de la base et de ses contraintes d'intégrité 10 Si un changement

PLATO – OTB – KEO S. RITAL

ACID

Dans un contexte centralisé, les contraintes ACID

sont plutôt aisées à garantir.

Système distribué : implique distribuer les

traitements de données entre différents serveurs.

Les contraintes ACID à l’échelle du système

distribué entier devient alors difficile tout en

maintenant des performances correctes

13

Page 14: PLAform Tsi Online - PLATO · Les modifications apportées à la base doivent être valides, en accord avec l'ensemble de la base et de ses contraintes d'intégrité 10 Si un changement

PLATO – OTB – KEO S. RITAL

CAP

CAP (Consistency-Availibility-

Partition tolerance).

• Coherence ou Cohérence : tous les

nœuds du système voient exactement

les mêmes données au même

moment.

• Availability ou Disponibilité : la perte

de noeuds n'empêche pas les

survivants de continuer à fonctionner

correctement.

• Partition tolerance ou Résistance au

partitionnement : aucune panne moins

importante qu'une coupure totale du

réseau ne doit empêcher le système

de répondre correctement.

14

Page 15: PLAform Tsi Online - PLATO · Les modifications apportées à la base doivent être valides, en accord avec l'ensemble de la base et de ses contraintes d'intégrité 10 Si un changement

PLATO – OTB – KEO S. RITAL

Les limites face aux usages

Manipulation des objets complexes :

• Absence de gestion d’objets hétérogènes ainsi que

le besoin de déclarer au préalable l’ensemble des

champs représentant un objet.

15

Page 16: PLAform Tsi Online - PLATO · Les modifications apportées à la base doivent être valides, en accord avec l'ensemble de la base et de ses contraintes d'intégrité 10 Si un changement

PLATO – OTB – KEO S. RITAL

Les solutions NoSQL

Pas de solution unique ! Plusieurs approches !

Regroupées en 4 catégories :

• Paradigme Clé / Valeur.

• Bases documentaires

• Base orientées colonnes

• Paradigme graphe.

16

Page 17: PLAform Tsi Online - PLATO · Les modifications apportées à la base doivent être valides, en accord avec l'ensemble de la base et de ses contraintes d'intégrité 10 Si un changement

PLATO – OTB – KEO S. RITAL

Clé / Valeur

Chaque objet est identifié par une clé

unique.

La structure de l’objet est libre et le

plus souvent laissé à la charge du

développeur (XML, JSON, …).

Quatre opération sont possibles

(CRUD) :

• Create

• Read

• Update

• Delete

17

clé 1

clé 2

clé 3

clé 4

Valeur

Valeur

Valeur

Valeur

Page 18: PLAform Tsi Online - PLATO · Les modifications apportées à la base doivent être valides, en accord avec l'ensemble de la base et de ses contraintes d'intégrité 10 Si un changement

PLATO – OTB – KEO S. RITAL

Les solutions.

Redis

Riak

Voldemort

Oracle NOSQL (récent)

18

Page 19: PLAform Tsi Online - PLATO · Les modifications apportées à la base doivent être valides, en accord avec l'ensemble de la base et de ses contraintes d'intégrité 10 Si un changement

PLATO – OTB – KEO S. RITAL

Base documentaires

Les bases de données

documentaires sont

constituées de collections

de documents. Un

document est composé de

champs et des valeurs

associées, ces dernières

pouvant être requêtées.

Par ailleurs, les valeurs

peuvent être, soit d’un type

simple (entier, chaine de

caractère, date, ...), soit

ellesmêmes composées de

plusieurs couples

clé/valeur.

19

Clé 1

Clé 2

Clé 3

Clé k

Clé n

Champ1 / valeur

Champ2 / valeur

Champ3 / valeur

Champ1 / valeur

Champ2 / valeur

Champ1 / valeur

Champ2 / valeur

Champ3 Champ1 valeur

Champ2 valeur

Champ3 valeur

Document

Document

Document

Page 20: PLAform Tsi Online - PLATO · Les modifications apportées à la base doivent être valides, en accord avec l'ensemble de la base et de ses contraintes d'intégrité 10 Si un changement

PLATO – OTB – KEO S. RITAL

Base documentaires

On conserve généralement une interface d’accès

HTTP REST permettant d’effectuer simplement des

requêtes sur la base mais celle-ci est plus

complexe que l’interface CRUD des bases

clés/valeurs. Les formats de données JSON et

XML sont le plus souvent utilisés afin d’assurer le

transfert des données sérialisées entre

l’application et la base.

20

Page 21: PLAform Tsi Online - PLATO · Les modifications apportées à la base doivent être valides, en accord avec l'ensemble de la base et de ses contraintes d'intégrité 10 Si un changement

PLATO – OTB – KEO S. RITAL

Les solutions

MongoDB

CouchDB

Terrastore

21

Page 22: PLAform Tsi Online - PLATO · Les modifications apportées à la base doivent être valides, en accord avec l'ensemble de la base et de ses contraintes d'intégrité 10 Si un changement

PLATO – OTB – KEO S. RITAL

Bases orientées Colonnes

relativement proche des bases documentaires

Plus de performance en MapReduce.

Colonne : entité de base représentant un champ

de donnée. Chaque colonne est définie par un

couple clé / valeur.

Une colonne contenant d’autres colonnes est

nommée super-colonne.

Famille de colonnes : il s’agit d’un conteneur

permettant de regrouper plusieurs colonnes ou

supercolonnes.

22

Page 23: PLAform Tsi Online - PLATO · Les modifications apportées à la base doivent être valides, en accord avec l'ensemble de la base et de ses contraintes d'intégrité 10 Si un changement

PLATO – OTB – KEO S. RITAL

Bases orientées Colonnes

Les colonnes sont regroupées par ligne et chaque

ligne est identifiée par un identifiant unique. Elles

sont généralement assimilées aux tables dans le

modèle relationnel et sont identifiées par un nom

unique.

23

Page 24: PLAform Tsi Online - PLATO · Les modifications apportées à la base doivent être valides, en accord avec l'ensemble de la base et de ses contraintes d'intégrité 10 Si un changement

PLATO – OTB – KEO S. RITAL

Bases orientées Colonnes

Les supercolonnes situées dans les familles de

colonnes sont souvent utilisées comme les lignes

d’une table de jointure dans le modèle relationnel.

Comparativement au modèle relationnel, les bases

orientée colonnes offrent plus de flexibilité. Il est

effet possible d’ajouter une colonne ou une super

colonne à n’importe quelle ligne d’une famille de

colonnes, colonnes ou supercolonne à tout

instant.

24

Page 25: PLAform Tsi Online - PLATO · Les modifications apportées à la base doivent être valides, en accord avec l'ensemble de la base et de ses contraintes d'intégrité 10 Si un changement

PLATO – OTB – KEO S. RITAL

Solutions

Cassandra,

Amazon SimpleDB,

Google BigTable,

HBase

25

Page 26: PLAform Tsi Online - PLATO · Les modifications apportées à la base doivent être valides, en accord avec l'ensemble de la base et de ses contraintes d'intégrité 10 Si un changement

PLATO – OTB – KEO S. RITAL

Base orientée Graphe/Hypergraphe

Ce modèle s’appuie principalement sur deux

concepts :

• d’une part l’utilisation d’un moteur de stockage pour

les objets (qui se présentent sous la forme d’une

base documentaire, chaque entité de cette base

étant nommée noeud).

• D’autre part, à ce modèle, vient s’ajouter un

mécanisme permettant de décrire les arcs (relations

entre les objets), ceux-ci étant orientés et disposant

de propriétés (nom, date, …).

26

Page 27: PLAform Tsi Online - PLATO · Les modifications apportées à la base doivent être valides, en accord avec l'ensemble de la base et de ses contraintes d'intégrité 10 Si un changement

PLATO – OTB – KEO S. RITAL

Base orientée Graphe/Hypergraphe

27

Page 28: PLAform Tsi Online - PLATO · Les modifications apportées à la base doivent être valides, en accord avec l'ensemble de la base et de ses contraintes d'intégrité 10 Si un changement

PLATO – OTB – KEO S. RITAL

Les solutions

Neo4j

OrientDB

28

Page 29: PLAform Tsi Online - PLATO · Les modifications apportées à la base doivent être valides, en accord avec l'ensemble de la base et de ses contraintes d'intégrité 10 Si un changement

PLATO – OTB – KEO S. RITAL

Nouvelles pratiques. Dénormalisation des

données.

29

Page 30: PLAform Tsi Online - PLATO · Les modifications apportées à la base doivent être valides, en accord avec l'ensemble de la base et de ses contraintes d'intégrité 10 Si un changement

PLATO – OTB – KEO S. RITAL

Nouvelles pratiques. MapReduce

Données

• MapReduce est un framework de calcul distribue sur

de grosses quantités de données.

Parallélisme

• MapReduce permet de repartir la charge sur un

grand nombre de serveurs.

• Distribution « haut niveau » avec une abstraction

quasi-totale du la couche matérielle : ajouter des

machines suffit a augmenter la capacité de calcul de

manière « plug-and-play » (scalable-friendly).

30

Page 31: PLAform Tsi Online - PLATO · Les modifications apportées à la base doivent être valides, en accord avec l'ensemble de la base et de ses contraintes d'intégrité 10 Si un changement

PLATO – OTB – KEO S. RITAL

Nouvelles pratiques. MapReduce

Implémentations

• La librairie MapReduce de Google existe dans

plusieurs langages de programmation dont C++, C#,

Erlang, Java, Python, Ruby...

• D'autre librairie implémente le concept : par exemple

Hadoop de la fondation Apache et Elastic de chez

Amazon.

Abstraction et encapsulation

• MapReduce gère entièrement le cluster et la

répartition de la charge.

• calcul distribue sans aucune connaissance dans le

domaine (Cloud). 31

Page 32: PLAform Tsi Online - PLATO · Les modifications apportées à la base doivent être valides, en accord avec l'ensemble de la base et de ses contraintes d'intégrité 10 Si un changement

PLATO – OTB – KEO S. RITAL

Nouvelles pratiques. MapReduce

Map / Reduce

• map est une fonction qui

applique une autre fonction

a tout les éléments d'une

liste (renvoie une liste).

• reduce applique

récursivement une fonction

aux éléments d'une liste

par paires en utilisant une

« graine » la première fois

puis le résultat de

l'application précédente

(renvoie un élément).

32

Page 33: PLAform Tsi Online - PLATO · Les modifications apportées à la base doivent être valides, en accord avec l'ensemble de la base et de ses contraintes d'intégrité 10 Si un changement

PLATO – OTB – KEO S. RITAL

Nouvelles pratiques. MapReduce

33