Your SlideShare is downloading. ×
  • Like
Valtech - NoSQL: le nuage souffle un nouvel R sur les SGBD
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

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

  • 1,808 views
Published

NoSQL and Cloud Computing …

NoSQL and Cloud Computing

@Valtechdays 2011

Published in Technology , Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,808
On SlideShare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
39
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. NoSQL : Le nuage souffle un nouvel « R »sur les SGBD Claude Falguière Herve Desaunois Senior Consultante Directeur Opérationnel Valtech Paris Valtech Toulouse © Valtech 2011
  • 2. Sommaire Partie 1 Contexte et enjeux Partie 3 Partie 2 Les 10 commandements Le tour du monde#2 © Valtech 2011
  • 3. Sommaire Partie 1 Contexte et enjeux Partie 3 Les 10 commandements Partie 2 Le tour du monde#3 © Valtech 2011
  • 4. NoSQL ?#4 © 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 ….#5 © Valtech 2011
  • 6. L’écosystème NoSQL Document Colonne Clé Valeur Graphe#6 © Valtech 2011
  • 7. Return On Invest Coût faible Gros Volume Haute Disponibilité Alternatives intéressante au solution de type RAC (Real Application Cluster)#7 © Valtech 2011
  • 8. Le CAP Theorem (Eric Brewer)#8 © Valtech 2011
  • 9. Sommaire Partie 2 Le tour du monde Partie 1 Partie 3 Contexte et enjeux Les 10 commandements#9 © Valtech 2011
  • 10. Les bases Clé Valeur Implémentations très nombreuses Structure de données très simple Clé Valeur • Map Clé Valeur Clé Valeur Base simple à créer Redis, BigTable, Voldemort, MemcacheDB …#10 © Valtech 2011
  • 11. Les bases Colonnes 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 Famille Représentation plus flexible Clé Clé Valeur Clé Valeur • One to many • Grand nombre de colonnes Clé Clé Valeur Clé Valeur • Sparse data Clé Clé Valeur Clé Valeur HBase, Cassandra Colonne#11 © Valtech 2011
  • 12. Les bases Document La clé correspond à un document soit Clé XML soit JSON Clé Valeur Clé Valeur Retrouver avec une seule clé un Clé Valeur ensemble d’informations structurées de manière hiérarchique Clé Valeur • L’utilisateur, ses statuts, ses amis Clé Valeur Clé Valeur L’équivalent en relationnel impliquerait beaucoup de jointures Clé Valeur Clé Valeur MongoDB, CouchDB#12 © Valtech 2011
  • 13. Les bases Graphe Reposent sur la notion de nœuds et de relations et de propriétés Source: neo4J 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#13 © Valtech 2011
  • 14. Use case : accès rapide#14 © Valtech 2011
  • 15. Redis à Skyrock 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 ]#15 © Valtech 2011
  • 16. Share Nothing, pas de transactionnel Distribution Partionnement / Sharding Replication Versionning#16 © Valtech 2011
  • 17. Pas de langage de requête, pas de jointures 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#17 © Valtech 2011
  • 18. Use case : Données massives, parallélisation#18 © Valtech 2011
  • 19. Gestion des logs chez Twitter 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 7 disques standards • Perte d’information 14 disques de laptop 24,3h d’écriture sur un disque à 80Mo/s#19 © Valtech 2011
  • 20. Analytics des tweets chez Twitter 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#20 © Valtech 2011
  • 21. Map Reduce Reduce function : Compter par couleur Input Map Reduce 10: 10: 25: 25: 1+ ... 1+ 7 … 1+ … Map function : couleur Input Map 1+ 56: 56: 1+ 9 1+ 78: 78: … ... …#21 © Valtech 2011
  • 22. Map Reduce : Scalabilité Shuffle Sort : Ranger par Input Map couleur 12: 12: Reduce ... 12: 1+ 45 1+ Input Map … 36: 36: 36: ... Input Map 64: 64: 64: Reduce … 1+ 63 1+ … Input Map 85: 85: 85: …#22 © Valtech 2011
  • 23. Map Reduce : Combien de tweets par user_id ? 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()#23 © Valtech 2011
  • 24. Use Case : Facilité d’utilisation#24 © Valtech 2011
  • 25. User history chez bit.ly 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#25 © Valtech 2011
  • 26. Les bases Documents 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#26 © Valtech 2011
  • 27. Use case : utiliser le modèle de données adapté#27 © Valtech 2011
  • 28. Twitter : activité des amis 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#28 © Valtech 2011
  • 29. Les bases Graphe 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é#29 © Valtech 2011
  • 30. Sommaire Partie 1 Partie 3 Contexte et enjeux Les 10 commandements Partie 2 Le tour du monde#30 © 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#31 © 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#32 © 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, ….#33 © 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#34 © Valtech 2011
  • 35. Solution Architecture Hybride#35 © Valtech 2011
  • 36. No SQL, No Relationnel#36 © Valtech 2011
  • 37. SGBD No Relationnel#37 © Valtech 2011
  • 38. 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) desdroits (mais pas dune manière qui suggérerait quils vous soutiennentou approuvent votre utilisation du contenu).• Plus d’informations : http://fr.creativecommons.org © Valtech 2011