Apéro Techno Stephen Rousset
Plan : 1.Discussion autour du concept NoSQL 2.Utilisation côté code (C#) 3.Du concret 4.Questions ?
J’en ai entendu parlé … C’est quoi ? NoSQL ? Not Only SQL ! Non relationnel SQL MongoDB (Sourceforge) Big table chez Google Cassandra chez Facebook
Ah oui, mais quelles différences avec le SQL classique ? Par rapport à un SGBD classique: Souple Pas de colonnes Pas relationnel Pas transactionnel Performant Gros besoin de disponibilité en lecture Table type annuaire Plus de lecture que d’écriture Ultra scalable
OK mais ça fonctionne comment ? On peut considérer MongoDB comme un système de fichier Chaque entité peut être considérée comme un document Réplication des données sur plusieurs serveurs Résistance aux pannes Adaptabilité aux augmentations de charges
Et pour utiliser tout ça ? Très bien documenté, avec un site très complet API spécifique fournie pour tous les langages Une grosse communauté sur le net (Forum, tutoriels)
Au fait ça coûte combien? Il y a des outils ? Open source (Licence AGPL) Ligne de commande ou MongoVUE MongoVUE existe en version light gratuite ou complète payante (350$/An pour 100 utilisateurs).
Spectateur sympa 1 : Bon, on a bien compris la théorie, mais ça reste un peu flou! Spectateur sympa 2 : Ouais dis, tu nous montres? Présentateur sympa : Ok c’est parti
Côté MongoVUE Pas de révolution, simple, intuitif
Deux DLL à inclure, ce petit bout de code pour se connecter, et on peut travailler Pas d’usine à gaz SIMPLICITE
Côté MongoVUE Pas de révolution, simple, intuitif
Couches d’accès aux données : Simplissime
Rendez-nous la soirée annuelle !!!
BSON Définition: Binary JSON { "_id" : ObjectId("527ba872487f9d2124b67d5d"), "Lieu" : "Place de la bourse", "PrixUnitaire" : 75, "Date" : new Date("9/12/ :00:00") } Il faut s’habituer à ce format Pour le requêtage Pour la lecture des documents
Les documents
Logique des documents Logique MongoDB Document SoiréeAnnuelle { "Lieu" : "Restaurant le chalet", "PrixUnitaire" : 75, "Date" : new Date("9/12/ :00:00"), AdresseRestaurant : { Rue: Place de la bourse Ville: Paris Telephone: } Logique SQL Document SoiréeAnnuelle { "Lieu" : RestaurantID, "PrixUnitaire" : 75, "Date" : new Date("9/12/ :00:00"), } Document Restaurant { ID: 1 Nom: Restaurant le Chalet Rue: Place de la bourse Ville: Paris Telephone: }
Chez Canal+ Un peu de concret ? Processus de mise en place de MongoDB chez Canal+
Un système de cache Problématique: fournir des informations aux clients directement sur leur Box sans impacter les SI existants Des millions d’abonnés, avec de gros pics de charge De gros CMS pas dimensionnés pour mettre à disposition des informations en temps réel. Réponse: Centraliser les données dans un système dédié, pouvant supporter une grosse charge
Implication Choix de MongoDB Conséquences: Ajout au catalogue côté système et DBA Validation des performances en banc de tests Mise en place sur une petite population d’abonnés
Développement Récupération de flux provenant des ST sources (surtout la nuit) Exposition de ces données lors de l’entrée des clients dans les univers Canal+ Système dimensionné pour afficher des informations lors des changements de chaînes
Conclusion Après trois mois en production, aucune alerte De nouveaux types de données vont être ajoutés progressivement dans MongoDB Prévisions à moyen terme: Plusieurs millions de lignes accessibles en parallèle à des millions d’abonnés
Rendez-nous la soirée annuelle !!!