valtech - nosql: le nuage souffle un nouvel r sur les sgbd

38
© Valtech 2011 NoSQL : Le nuage souffle un nouvel « » sur les SGBD Senior Consultante Valtech Paris Claude Falguière Directeur Opérationnel Valtech Toulouse Herve Desaunois R

Upload: valtech

Post on 12-May-2015

1.861 views

Category:

Technology


0 download

DESCRIPTION

NoSQL and Cloud Computing @Valtechdays 2011

TRANSCRIPT

Page 1: Valtech - NoSQL: le nuage souffle un nouvel R sur les SGBD

© Valtech 2011

NoSQL : Le nuage souffle un nouvel « »

sur les SGBD

Senior Consultante

Valtech Paris

Claude Falguière

Directeur Opérationnel

Valtech Toulouse

Herve Desaunois

R

Page 2: Valtech - NoSQL: le nuage souffle un nouvel R sur les SGBD

© Valtech 2011#2

Sommaire

Partie 1

Contexte et enjeux

Partie 2

Le tour du monde

Partie 3

Les 10 commandements

Page 3: Valtech - NoSQL: le nuage souffle un nouvel R sur les SGBD

© Valtech 2011#3

Sommaire

Partie 1

Contexte et enjeux

Partie 2

Le tour du monde

Partie 3

Les 10 commandements

Page 4: Valtech - NoSQL: le nuage souffle un nouvel R sur les SGBD

© Valtech 2011#4

NoSQL ?

Page 5: Valtech - NoSQL: le nuage souffle un nouvel R sur les SGBD

© Valtech 2011#5

NoSQL "Not only SQL"

• Technologie relative aux bases de données

Alternatives au SGBD relationnels pour gérer de gros volumes

• Émergence printemps 2009 avec le Cloud Computing et le Web 2.0

BigTable Google, Dynamo Amazone, Cassandra Facebook, Twitter

• De nombreuses solutions Open Source

Cassandra, CouchDB, MongoDB, Riak, Neo4J ….

Page 6: Valtech - NoSQL: le nuage souffle un nouvel R sur les SGBD

© Valtech 2011

L’écosystème NoSQL

#6

Clé Valeur

Document Colonne

Graphe

Page 7: Valtech - NoSQL: le nuage souffle un nouvel R sur les SGBD

© Valtech 2011#7

Return On Invest

Alternatives intéressante au solution de type RAC

(Real Application Cluster)

Coût faibleGros Volume

Haute Disponibilité

Page 8: Valtech - NoSQL: le nuage souffle un nouvel R sur les SGBD

© Valtech 2011#8

Le CAP Theorem (Eric Brewer)

Page 9: Valtech - NoSQL: le nuage souffle un nouvel R sur les SGBD

© Valtech 2011#9

Sommaire

Partie 1

Contexte et enjeux

Partie 2

Le tour du mondePartie 3

Les 10 commandements

Page 10: Valtech - NoSQL: le nuage souffle un nouvel R sur les SGBD

© Valtech 2011

Les bases Clé Valeur

#10

Implémentations très nombreuses

Structure de données très simple• Map

Base simple à créer

Redis, BigTable, Voldemort, MemcacheDB …

Clé Valeur

Clé Valeur

Clé Valeur

Page 11: Valtech - NoSQL: le nuage souffle un nouvel R sur les SGBD

© Valtech 2011

Les bases Colonnes

#11

Une table est définie par des familles de colonnes

• Chaque famille peut avoir un nombre quelconque de colonnes

• Les colonnes sont représentées par des couples clés-valeur

Optimisé pour l’accès par colonne

Représentation plus flexible• One to many

• Grand nombre de colonnes

• Sparse data

HBase, Cassandra

Clé Valeur

Clé Valeur

Clé Valeur

Clé

Clé

Clé

Valeur

Valeur

Valeur

Clé

Clé

Clé

Famille

Colonne

Page 12: Valtech - NoSQL: le nuage souffle un nouvel R sur les SGBD

© Valtech 2011

Les bases Document

#12

La clé correspond à un document soit

XML soit JSON

Retrouver avec une seule clé un

ensemble d’informations structurées de manière hiérarchique

• L’utilisateur, ses statuts, ses amis

L’équivalent en relationnel impliquerait

beaucoup de jointures

MongoDB, CouchDB

Clé

Valeur

Valeur

Valeur

Clé

Clé

Clé

Valeur

Valeur

Valeur

Clé

Clé

Clé

ValeurClé

ValeurClé

Page 13: Valtech - NoSQL: le nuage souffle un nouvel R sur les SGBD

© Valtech 2011

Les bases Graphe

#13

Reposent sur la notion

de nœuds

et de relations

et de propriétés

Traitement des données de réseaux sociaux

• l’utilisateur, ses amis, les amis de ses amis

En phase avec les outils du web sémantique (RDF,

SparQL)

Neo4J

Source: neo4J

Page 14: Valtech - NoSQL: le nuage souffle un nouvel R sur les SGBD

© Valtech 2011

Use case : accès rapide

#14

Page 15: Valtech - NoSQL: le nuage souffle un nouvel R sur les SGBD

© Valtech 2011

Redis à Skyrock

#15

Calculer en temps réel les amis connectés

20h30 : [ 1,4,6,9,10,15,17,25 ]

20h29 : [ 1,6,9,10,15,17,25 ]

20h28 : [ 4,6,9,10,13;15,25 ]

20h27 : [ 1,4,6,9,10,13,18,25 ]

20h26 : [ 1,4,6,9,10,18,20 ]

UNION : [ 10,1,20,4,13,15,6,18,9,17,25 ]

follows : [ 7, 3, 9, 4 ]

INTER : [ 9, 4 ]

Page 16: Valtech - NoSQL: le nuage souffle un nouvel R sur les SGBD

© Valtech 2011

Share Nothing, pas de transactionnel

#16

Distribution

Partionnement / Sharding

Replication

Versionning

Page 17: Valtech - NoSQL: le nuage souffle un nouvel R sur les SGBD

© Valtech 2011

Pas de langage de requête, pas de jointures

#17

Interface de type get/put

• put user:1:name claude

• get user:1:name

• list user:*:name

Les valeurs sont des tableaux d’octets ou des types prédéfinis

API propriétaires

Bindings dans différents langages

Apache Thrift, Avro, parfois JPA ou JDO

Des compléments SQL Like : Pig, Hive

Page 18: Valtech - NoSQL: le nuage souffle un nouvel R sur les SGBD

© Valtech 2011

Use case : Données massives, parallélisation

#18

Page 19: Valtech - NoSQL: le nuage souffle un nouvel R sur les SGBD

© Valtech 2011

Gestion des logs chez Twitter

#19

12 millions de tweets / jour

7 To de logs par jour

Double plusieurs fois par an

Saturation des systèmes de gestion de

logs traditionnels

• Pertes de logs

• Perte d’information7 disques standards

14 disques de laptop

24,3h d’écriture sur

un disque à 80Mo/s

Page 20: Valtech - NoSQL: le nuage souffle un nouvel R sur les SGBD

© Valtech 2011

Analytics des tweets chez Twitter

#20#20

Quoi ?

• Compte les actions sur les URL (clic, favoris, retweet)

• Comptabilise par annonceur/campagne/tweet_id

A quoi ça sert ?

• Cette url a été retweeté 121 fois (en temps réel)

• Les analytics des promoted tweets

• Le monitoring interne de cette activité

Exigences

• 100 000 Write/s

• 10 000 Read/s

• >100 To

• < 100ms

Page 21: Valtech - NoSQL: le nuage souffle un nouvel R sur les SGBD

© Valtech 2011

Input

Input

Map Reduce

Map

Map

Map function :

couleur

Reduce

Reduce function :

Compter par couleur

9

7…

1 +

1 +

1 +

...

...

1 +

1 +

1 +

#21

10: 10:

25: 25:

56: 56:

78: 78:

Page 22: Valtech - NoSQL: le nuage souffle un nouvel R sur les SGBD

© Valtech 2011

Map

Map

Input

Input

Map Reduce : Scalabilité

Map

Map

Shuffle Sort :

Ranger par

couleur

Reduce

Reduce

...

...

12:

85:

64:

36:

63

45

Input

Input

#22

1 +

1 +

1 +

1 +

12: 12:

36: 36:

64: 64:

85: 85:

Page 23: Valtech - NoSQL: le nuage souffle un nouvel R sur les SGBD

© Valtech 2011

Map Reduce : Combien de tweets par user_id ?

#23

Map :

• Déterminer le user_id d’un tweet

• Réparti sur les nœuds où sont stockés les tweets

Reduce :

• Totaliser par user_id

• Centralisé ou réparti par range de user_id

Très adapté aux langages fonctionnels :

• Support natif du Map/Reduce

• collect { it.getArea() }

• groupBy { it.color }.sum()

Page 24: Valtech - NoSQL: le nuage souffle un nouvel R sur les SGBD

© Valtech 2011

Use Case : Facilité d’utilisation

#24

Page 25: Valtech - NoSQL: le nuage souffle un nouvel R sur les SGBD

© Valtech 2011

User history chez bit.ly

#25

Bit.ly

• 50 Millions d’utilisateurs

• 10 000 d’accès simultanés

• 1,25 milliards de raccourcis par mois (1000/s pic)

Stockage des user history dans MongoDB

• url raccourcies, leurs stats, les accès

Page 26: Valtech - NoSQL: le nuage souffle un nouvel R sur les SGBD

© Valtech 2011

Les bases Documents

#26

Facile à utiliser

• Manipulation de collections d’objets

• Bien intégré aux langages fonctionnels

• Accès en REST

Rapide

• Pas de jointure pour retrouver les données dépendantes

• Stocker une portion de la base sur le client

Flexible

• Evolutivité du schéma

Page 27: Valtech - NoSQL: le nuage souffle un nouvel R sur les SGBD

© Valtech 2011

Use case : utiliser le modèle de données adapté

#27

Page 28: Valtech - NoSQL: le nuage souffle un nouvel R sur les SGBD

© Valtech 2011

Twitter : activité des amis

#28

12 millions de tweets

• Autojointure sur n millions de lignes ?

• Compter les tweets avec un count(*) sur des millions de lignes ?

FlockDB pour reconstruire le réseau social

Page 29: Valtech - NoSQL: le nuage souffle un nouvel R sur les SGBD

© Valtech 2011

Les bases Graphe

#29

Représentation native des réseaux de personnes, d’équipement, de

concepts …

Manipulation d’objets

• Les noeuds et les relations sont des objets

Langages des requêtes : SparQL, Gremlin

Souvent transactionnelles

Réplication mais montent un peu moins en charge

• Jusqu’à 1 milliard de nœuds/relation/propriété

Page 30: Valtech - NoSQL: le nuage souffle un nouvel R sur les SGBD

© Valtech 2011#30

Sommaire

Partie 1

Contexte et enjeux

Partie 2

Le tour du monde

Partie 3

Les 10 commandements

Page 31: Valtech - NoSQL: le nuage souffle un nouvel R sur les SGBD

© Valtech 2011#31

Les dix commandements

1 - Solution très bonnes pour les gros volumes et la haute disponibilité

Cassandra, Google Tables, Amazone Tables , Azure Tables,…

2 - Solution très bonnes pour la distribution de données

Map Reduce, Cloud DB, Web 2.0

3 - Plus de souplesse des schémas

Solution Orienté Colonne

Page 32: Valtech - NoSQL: le nuage souffle un nouvel R sur les SGBD

© Valtech 2011#32

Les dix commandements

4 - NoSQL ne remplace pas les systèmes classiques

Oracle, MySQL, DB2, SQL Server, ….

5 - Pas de standards

Pas de langage commun , Pas d’outils de type ORM,

Outil d’administration faible

6 - Attention à la sécurité sur les bases NoSQL

Pas d’accès restreint

Page 33: Valtech - NoSQL: le nuage souffle un nouvel R sur les SGBD

© Valtech 2011#33

Les dix commandements

7 - Pas de transaction

Des problématiques qui remontent au niveau Applicatif , Perte d’acidité ,….

8 – Performance très bonne

N’implémentent que les mécanismes dont elles ont besoin

9 - Coûts très attractifs et très bonne réputation en production

Cassandra, BigTable, Dynamo, ….

Page 34: Valtech - NoSQL: le nuage souffle un nouvel R sur les SGBD

© Valtech 2011#34

Les dix commandements

10 - Avenir incertain du mouvement NoSQL

Apparition d’ORM, prise en charge de la sécurité, Architecture Hybride,

CQRS (« Command and Query Responsability Segregation ».) ,

Sharding with SQL Azure

Page 35: Valtech - NoSQL: le nuage souffle un nouvel R sur les SGBD

© Valtech 2011#35

Solution Architecture Hybride

Page 36: Valtech - NoSQL: le nuage souffle un nouvel R sur les SGBD

© Valtech 2011#36

No SQL, No Relationnel

Page 37: Valtech - NoSQL: le nuage souffle un nouvel R sur les SGBD

© Valtech 2011#37

SGBD No Relationnel

Page 38: Valtech - NoSQL: le nuage souffle un nouvel R sur les SGBD

© Valtech 2011

Droits de reproduction

• Vous êtes libres de :

- Partager : reproduire, distribuer et communiquer cette présentation

- Remixer : modifier cette présentation

• Selon la condition de « Paternité » :

Vous devez impérativement citer le(s) auteur(s) ou le(s) titulaire(s) des

droits (mais pas d'une manière qui suggérerait qu'ils vous soutiennent

ou approuvent votre utilisation du contenu).

• Plus d’informations : http://fr.creativecommons.org