webinaire 1 de la série retour aux fondamentaux : introduction à nosql
TRANSCRIPT
![Page 1: Webinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQL](https://reader033.vdocuments.net/reader033/viewer/2022051520/58efbdeb1a28abd92b8b45c7/html5/thumbnails/1.jpg)
![Page 2: Webinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQL](https://reader033.vdocuments.net/reader033/viewer/2022051520/58efbdeb1a28abd92b8b45c7/html5/thumbnails/2.jpg)
Code RemiForest40 gets you a 25% discount off the list price
![Page 3: Webinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQL](https://reader033.vdocuments.net/reader033/viewer/2022051520/58efbdeb1a28abd92b8b45c7/html5/thumbnails/3.jpg)
Back to Basics 2016 : Webinar 1
Introduction à NoSQL
Remi ForestSenior Solution ArchitectMongoDBV1.0
![Page 4: Webinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQL](https://reader033.vdocuments.net/reader033/viewer/2022051520/58efbdeb1a28abd92b8b45c7/html5/thumbnails/4.jpg)
Bienvenue !
![Page 5: Webinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQL](https://reader033.vdocuments.net/reader033/viewer/2022051520/58efbdeb1a28abd92b8b45c7/html5/thumbnails/5.jpg)
5
Agenda
Date Time Webinar25-Mai-2016 11:00 CET Introduction à NoSQL09-Juin-2016 14:00 CET Votre première application MongoDB23-Juin-2016 14:00 CET Schema Design – Pensez Documents13-Jullet-2016 14:00 CET Advanced Indexing : Text et Geo-Spatial Indexes28-Juillet-2016 14:00 CET Introduction au Framework d’Aggregation01-Sept-2016 14:00 CET Déploiement en production
![Page 6: Webinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQL](https://reader033.vdocuments.net/reader033/viewer/2022051520/58efbdeb1a28abd92b8b45c7/html5/thumbnails/6.jpg)
6
Agenda
• Pourquoi NoSQL• Les différents types de bases NoSQL• Vue d’ensemble de MongoDB• Durabilité / Disponibilité – MongoDB Replica Sets• Scalabilité – MongoDB Sharding• Q&A
![Page 7: Webinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQL](https://reader033.vdocuments.net/reader033/viewer/2022051520/58efbdeb1a28abd92b8b45c7/html5/thumbnails/7.jpg)
7
Relational
Expressive Query Language& Secondary Indexes
Strong Consistency
Enterprise Management& Integrations
![Page 8: Webinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQL](https://reader033.vdocuments.net/reader033/viewer/2022051520/58efbdeb1a28abd92b8b45c7/html5/thumbnails/8.jpg)
8
Le monde a changé
Données Risques Temps Budgets
![Page 9: Webinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQL](https://reader033.vdocuments.net/reader033/viewer/2022051520/58efbdeb1a28abd92b8b45c7/html5/thumbnails/9.jpg)
9
NoSQL
Scalability& Performance
Always On,Global Deployments
FlexibilityExpressive Query Language& Secondary Indexes
Strong Consistency
Enterprise Management& Integrations
![Page 10: Webinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQL](https://reader033.vdocuments.net/reader033/viewer/2022051520/58efbdeb1a28abd92b8b45c7/html5/thumbnails/10.jpg)
10
Nexus Architecture
Scalability& Performance
Always On,Global Deployments
FlexibilityExpressive Query Language& Secondary Indexes
Strong Consistency
Enterprise Management& Integrations
![Page 11: Webinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQL](https://reader033.vdocuments.net/reader033/viewer/2022051520/58efbdeb1a28abd92b8b45c7/html5/thumbnails/11.jpg)
11
Les types de bases NoSQL
• Key/Value Stores• Column Stores• Graph Stores• Multi-model Databases• Document Stores
![Page 12: Webinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQL](https://reader033.vdocuments.net/reader033/viewer/2022051520/58efbdeb1a28abd92b8b45c7/html5/thumbnails/12.jpg)
12
Bases clé / valeur
• Simple tableau associatif : 1 clé 1 valeur• Requêtes sur la clé primaire uniquement• Très rapides pour les requêtes simples• Pas adapté pour les “reverse lookups”
Key Value
12345 4567.3456787
12346 { addr1 : “The Grange”, addr2: “Dublin” }
12347 “top secret password”
12358 “Shopping basket value : 24560”
12787 12345
![Page 13: Webinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQL](https://reader033.vdocuments.net/reader033/viewer/2022051520/58efbdeb1a28abd92b8b45c7/html5/thumbnails/13.jpg)
13
Revision : Bases relationnelles
• Données stockées par ligne (RDBMS traditionnelles, ie. MySQL)• Chaque lecture récupère une ligne entière• Les lectures nécessitant une ou deux colonnes ne sont pas
optimisées.ID Name Salary Start Date
1 Joe D $24000 1/Jun/1970
2 Peter J $28000 1/Feb/1972
3 Phil G $23000 1/Jan/1973
1 Joe D $24000 1/Jun/1970 2 Peter J $28000 1/Feb/1972 3 Phil G $23000 1/Jan/1973
![Page 14: Webinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQL](https://reader033.vdocuments.net/reader033/viewer/2022051520/58efbdeb1a28abd92b8b45c7/html5/thumbnails/14.jpg)
14
Bases de données orientées colonnes
1 2 3
ID Name Salary Start Date
1 Joe D $24000 1/Jun/1970
2 Peter J $28000 1/Feb/1972
3 Phil G $23000 1/Jan/1973
Joe D Peter J Phil G $24000 $28000 $23000 1/Jun/1970 1/Feb/1972 1/Jan/1973
![Page 15: Webinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQL](https://reader033.vdocuments.net/reader033/viewer/2022051520/58efbdeb1a28abd92b8b45c7/html5/thumbnails/15.jpg)
15
Quel est l’intérêt ?
• L’ensemble des données d’une colonne peut être récupéré de façon très efficace.
• La compression est bien meilleure• Les opérations de lectures récupèrent plus de données par accès• En cas de besoin de quelques colonnes, pas besoin de lire
l’ensemble des lignes.• MAIS:
– L’update et le delete sont très coûteux• Append only de préférence• Plus adapté à OLAP qu’à OLTP
![Page 16: Webinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQL](https://reader033.vdocuments.net/reader033/viewer/2022051520/58efbdeb1a28abd92b8b45c7/html5/thumbnails/16.jpg)
16
Graph Stores
• Stocke des graphs (arrêtes et sommets)• Par exemple : réseau social• Conçu pour optimiser la traversée des graphs• Parfait pour représenter les connexions• Peut être implémenté dans un key/value store• Si le cas d’usage n’est pas “graph”, vous n’avez pas besoin d’une
base Graph.
![Page 17: Webinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQL](https://reader033.vdocuments.net/reader033/viewer/2022051520/58efbdeb1a28abd92b8b45c7/html5/thumbnails/17.jpg)
17
Multi-Model Databases
• Combine plusieurs modèles d’accès / stockage• Souvent une base graph + “quelque chose d’autre”• Permet d’éviter d’avoir recours à plusieurs bases (complexe de
garantir la cohérence – “Polyglot Persistance”)• Derniers arrivés dans le monde NoSQL
![Page 18: Webinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQL](https://reader033.vdocuments.net/reader033/viewer/2022051520/58efbdeb1a28abd92b8b45c7/html5/thumbnails/18.jpg)
18
Document Store• Documents != PDFs, Microsoft Word ou HTML• Structures hiérarchiques définies en JSON (Javascript Object Notation)
{ name : “Remi Forest”,title : “Senior Solution Architect”,Address : {
address1 : “Latin Hall”,address2 : “Golden Lane”,eircode : “D09 N623”,
}expertise: [ “MongoDB”, “Python”, “Javascript” ],employee_number : 320,location : [ 53.34, -6.26 ]
}
![Page 19: Webinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQL](https://reader033.vdocuments.net/reader033/viewer/2022051520/58efbdeb1a28abd92b8b45c7/html5/thumbnails/19.jpg)
19
MongoDB Documents
{
name : “Remi Forest”,
title : “Senior Solution Architect”,
Address : {
address1 : “Latin Hall”,
address2 : “Golden Lane”,
eircode : “D09 N623”,
}
expertise: [ “MongoDB”, “Python”, “Javascript” ],
employee_number : 320,
location : [ 53.34, -6.26 ]
}
Strings
Nested Document
Array
Integer
Geo-spatial Coordinates
![Page 20: Webinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQL](https://reader033.vdocuments.net/reader033/viewer/2022051520/58efbdeb1a28abd92b8b45c7/html5/thumbnails/20.jpg)
20
MongoDB comprend les documents JSON
• JSON database depuis le début• Stocke le JSON sous format binaire (BSON)• Efficace pour les transferts sur le réseau• MongoDB peut indexer n’importe quel partie du document• (Nous couvrirons ça plus tard)
![Page 21: Webinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQL](https://reader033.vdocuments.net/reader033/viewer/2022051520/58efbdeb1a28abd92b8b45c7/html5/thumbnails/21.jpg)
21
Pourquoi des Documents?• Schema dynamique• Elimination de la couche Object/Relational Mapping• Dénormalisation des données pour améliorer la performance
![Page 22: Webinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQL](https://reader033.vdocuments.net/reader033/viewer/2022051520/58efbdeb1a28abd92b8b45c7/html5/thumbnails/22.jpg)
22
Pourquoi des Documents?• Schema dynamique• Elimination de la couche Object/Relational Mapping• Dénormalisation des données pour améliorer la performance
![Page 23: Webinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQL](https://reader033.vdocuments.net/reader033/viewer/2022051520/58efbdeb1a28abd92b8b45c7/html5/thumbnails/23.jpg)
23
Modèles de requètes
Rich Queries
• Quelle est la voiture de Paul• Qui avait une voiture entre 1970 et 1980
Geospatial • Qui possède une voiture dans les 5km autour de la place de la Concorde ?
Text Search • Quels sont les voitures avec des sièges en cuir ?
Aggregation • Quelle est la valeur moyenne des véhicules par département ?
Map Reduce
• Quelle est l’évolution des couleurs en fonction de l’année ? (est-ce que le rose est tendance en Chine ?)
![Page 24: Webinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQL](https://reader033.vdocuments.net/reader033/viewer/2022051520/58efbdeb1a28abd92b8b45c7/html5/thumbnails/24.jpg)
24
Haute-disponibilité et durabilité – Replica Sets
SecondarySecondary
Primary
![Page 25: Webinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQL](https://reader033.vdocuments.net/reader033/viewer/2022051520/58efbdeb1a28abd92b8b45c7/html5/thumbnails/25.jpg)
25
Replica Set Creation
SecondarySecondary
Primary
Heartbeat
![Page 26: Webinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQL](https://reader033.vdocuments.net/reader033/viewer/2022051520/58efbdeb1a28abd92b8b45c7/html5/thumbnails/26.jpg)
26
Replica Set Node Failure
SecondarySecondary
Primary
No Heartbeat
![Page 27: Webinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQL](https://reader033.vdocuments.net/reader033/viewer/2022051520/58efbdeb1a28abd92b8b45c7/html5/thumbnails/27.jpg)
27
Replica Set Recovery
SecondarySecondary
HeartbeatAnd Election
![Page 28: Webinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQL](https://reader033.vdocuments.net/reader033/viewer/2022051520/58efbdeb1a28abd92b8b45c7/html5/thumbnails/28.jpg)
28
New Replica Set – 2 Nodes
SecondaryPrimary
HeartbeatAnd New Primary
![Page 29: Webinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQL](https://reader033.vdocuments.net/reader033/viewer/2022051520/58efbdeb1a28abd92b8b45c7/html5/thumbnails/29.jpg)
29
Replica Set Repair
SecondaryPrimary
Secondary
Rejoin and resync
![Page 30: Webinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQL](https://reader033.vdocuments.net/reader033/viewer/2022051520/58efbdeb1a28abd92b8b45c7/html5/thumbnails/30.jpg)
30
Replica Set Stable
SecondaryPrimary
Secondary
Heartbeat
![Page 31: Webinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQL](https://reader033.vdocuments.net/reader033/viewer/2022051520/58efbdeb1a28abd92b8b45c7/html5/thumbnails/31.jpg)
31
Scalabilité horizontale – Sharding
Shard 1 Shard 2 Shard N
![Page 32: Webinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQL](https://reader033.vdocuments.net/reader033/viewer/2022051520/58efbdeb1a28abd92b8b45c7/html5/thumbnails/32.jpg)
32
Scalabilité horizontale – Sharding
• La clé de sharding partitionne les données• MongoDB distribue automatiquement les donnée• Les shards peuvent être ajoutés à la volée• L’équilibrage se fait en tâche de fond• La clé de sharding est fixe• La clé permet de diriger les requêtes vers les shards appropriés• Une query sans la clé de sharding est envoyée à tous les shards
![Page 33: Webinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQL](https://reader033.vdocuments.net/reader033/viewer/2022051520/58efbdeb1a28abd92b8b45c7/html5/thumbnails/33.jpg)
33
Scalabilité horizontale – ShardingMongoS MongoS
Shard 1 Shard 2 Shard N
Shard Key
![Page 34: Webinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQL](https://reader033.vdocuments.net/reader033/viewer/2022051520/58efbdeb1a28abd92b8b45c7/html5/thumbnails/34.jpg)
34
Routage des requêtes
• Avec un cluster shardé, on utilise une couche de routage pour distribuer les requêtes.
• C’est effectué par le process MongoS (Mongo Shard Router)• C’est un process stateless• On peut en lancer autant que nécessaire• Typiquement un process par serveur d’application
![Page 35: Webinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQL](https://reader033.vdocuments.net/reader033/viewer/2022051520/58efbdeb1a28abd92b8b45c7/html5/thumbnails/35.jpg)
35
En résumé
• Pourquoi NoSQL• Les différents types de bases NoSQL• Vue d’ensemble de MongoDB• Disponibilité / Durabilité – MongoDB Replica Sets• Scalabilité – MongoDB Sharding
![Page 36: Webinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQL](https://reader033.vdocuments.net/reader033/viewer/2022051520/58efbdeb1a28abd92b8b45c7/html5/thumbnails/36.jpg)
36
Prochain Webinar – Votre première application MongoDB
• 9 Juin 2016 – 14:00 CET.• Inscrivez-vous !• Apprenez à construire votre première application MongoDB• Création des bases et des collections• Requêtes• Création d’indexes• Introduction aux critères de performance• Feedbacks : [email protected]
![Page 37: Webinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQL](https://reader033.vdocuments.net/reader033/viewer/2022051520/58efbdeb1a28abd92b8b45c7/html5/thumbnails/37.jpg)
Q&A
![Page 38: Webinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQL](https://reader033.vdocuments.net/reader033/viewer/2022051520/58efbdeb1a28abd92b8b45c7/html5/thumbnails/38.jpg)