Quand utiliser MongoDB
… Et quand vous en passer…Docteur Edouard Servan-SchreiberDirecteur d'architecture de solution
Sommaire
• Qu'est-ce que MongoDB ?• À quoi sert MongoDB ?• Les points forts de MongoDB... Les points à améliorer• Ce que les clients peuvent faire et ne pas faire avec
MongoDB• Cas d'utilisation inhabituels• Quand utiliser MongoDB
CRÉER DES APPLICATIONS IMPOSSIBLE AUPARAVANT
AGILITÉ SCALABILITÉ
À quoi sert MongoDB ?
• Un espace de stockage de données pour tous les systèmes de fidélisation – ANS exigeants, en temps réel– Différents jeux de données mixtes– Simultanéité massive– Déploiement global sur plusieurs sites– Aucun temps d'arrêt toléré– Capacité d'évolution en fonction des besoins des utilisateurs– Incertitude élevée concernant la taille– Besoins de montée en charge rapide– Expérience transparente et cohérente
Langage de requête
expressif
Cohérenceforte
Index secondaires
Flexibilité
Scalabilité
Performances
Base de données relationnelle
NoSQL
Langage de requête
expressif
Cohérenceforte
Index secondaires
Flexibilité
Scalabilité
Performances
Langage de requête
expressif
Cohérenceforte
Index secondaires
Flexibilité
Scalabilité
Performances
Base de données relationnelle NoSQL
Base de données relationnelle + NoSQL
Langage de requête
expressif
Cohérenceforte
Index secondaires
Flexibilité
Scalabilité
Performances
Architecture Nexus
Base de données relationnelle + NoSQL
MongoDB N'EST PAS
• Une suite analytique– Un concurrent de SAS ou SPSS
• Une technologie d'entrepôt de données– N'entre pas en concurrence avec Teradata, Netezza, Vertica
• Un outil de BI– N'entre pas en concurrence avec Tableau ou QlikView
• Traitement des transactions de service comptable– N'entre pas en concurrence avec les mainframes IBM
• Serveur principal d'un système de facturation ou d'un système de comptabilité générale– N'entre pas en concurrence avec Oracle RAC
• Un moteur de recherche– N'entre pas en concurrence avec Elasticsearch, SOLR
MongoDB et le stack informatique d'entreprise
MongoDB et le stack informatique d'entreprise
Traitement de transactions en ligne (ou OLTP, pour
OnLine Transaction Processing)
Traitement analytique en
ligne (ou OLAP, pour
OnLine Analytical
Processing)
Facteurs menant au développement d'applications modernes
Données• 90 % des données ont été créées au
cours des 2 dernières années
• 80 % des données d'entreprise ne sont
pas structurées
• La quantité de données non structurées
augmente 2 fois plus vite que la quantité
de données structurées
Mobile• 2 milliards de smartphones
en 2015
• Les mobiles représentent
actuellement plus de 50 % des
moyens d'accès à Internet
• 26 milliards d'appareils sur l'IoT
(Internet des objets) en 2020
Social• Internet est utilisé à 72 % pour des
interactions sur les réseaux sociaux
• Ces réseaux comptent jusqu'à 2 milliards
d'utilisateurs actifs chaque mois
• 93 % des entreprises utilisent les
réseaux sociaux
Cloud• Les coûts de calcul ont baissé de
33 % année après année
• Les coûts de stockage ont baissé de
38 % année après année
• Les coûts de réseau ont baissé de
27 % année après année
Avantages stratégiques de MongoDB
Scalabilité horizontalePartitionnement
AgilitéFlexibilité
Performances élevées etcohérence forte
Application
HautedisponibilitéJeux de réplicas
{ author: “eliot”, date: new Date(), text: “MongoDB”, tags: [“database”, “flexible”, “JSON”]}
Modèle de données basé sur des documents
Base de données relationnelle
MongoDB
{ first_name: ‘Paul’, surname: ‘Miller’, city: ‘London’, location: [45.123,47.232], cars: [ { model: ‘Bentley’, year: 1973, value: 100000, … }, { model: ‘Rolls Royce’, year: 1965, value: 330000, … } ]}
Utilisez vos données de manière plus productive
MongoDB{ first_name: ‘Paul’, surname: ‘Miller’, city: ‘London’, location: [45.123,47.232], cars: [ { model: ‘Bentley’, year: 1973, value: 100000, … }, { model: ‘Rolls Royce’, year: 1965, value: 330000, … } }}
Requêtes enrichies
Rechercher les voitures de Paul
Rechercher toutes les personnes vivant à Londres qui possèdent une voiture construite entre 1970 et 1980
GéospatialRechercher tous les propriétaires de voiture dans un rayon de 5 km autour de Trafalgar Sq.
Recherche de texte
Rechercher toutes les voitures dont la description indique « sièges en cuir »
Agrégation Calculer la valeur moyenne de la collection de voitures de Paul
Opération MapReduce
Comment évolue le modèle de propriété des couleurs par emplacement géographique au fil du temps ?(le pourpre est-il tendance en Chine ?)
Configurations requises pour ces problématiques
Adresses Configuration requise Description
Types de données
Structure de données hiérarchique
Peut correspondre à la structure des objets dans les langages OOP d'aujourd'hui
Types de données, Agile
Schéma dynamique Peut gérer des données de formes différentes dans une table/collection et non pas dans un schéma prédéfini
Agilité Langage OOP natif Maintient les développeurs dans un environnement et encapsule les fonctionnalités/validations/règles dans un même emplacement
Volume Montée en charge Peut gérer efficacement des centaines de téra/pétaoctets de données
Volumes, nouvelle architecture
Performances Débit élevé sur un nœud unique et montée en charge horizontale simplifiée
Toujours nécessaire
Coût en matière de logiciel
Open Source avec services ajoutés de niveau Premium
Toujours nécessaire
Cohérence des données
Délai entre l'écriture des données et leur lecture
Toujours nécessaire
Requêtes enrichies Requêtes basées sur n'importe quel champ, comme les index secondaires
Toujours nécessaire
Facilité d'utilisation Courbe d'apprentissage réduite et conception simple
Méthode d'empilement des bases de données
Configuration requise
RDBMS Clé/valeur Colonne large MongoDB
Données hiérarchiques Faible Faible Correct Excellent
Schéma dynamique Faible Faible Faible Excellent
Lang. OOP natif Faible Excellent Excellent Excellent
Coût en matière de logiciel Faible Excellent Excellent Excellent
Performances Faible Excellent Excellent Excellent
Montée en charge Faible Excellent Excellent Excellent
Cohérence des données Excellent Faible Faible Excellent
Requêtes enrichies Excellent Faible Faible Excellent
Facilité d'utilisation Correct Correct Faible Excellent
Configuration requise
RDBMS Clé/valeur Colonne large MongoDB
Données hiérarchiques Faible Faible Correct Excellent
Schéma dynamique Faible Faible Faible Excellent
Lang. OOP natif Faible Excellent Excellent Excellent
Coût en matière de logiciel Faible Excellent Excellent Excellent
Performances Faible Excellent Excellent Excellent
Montée en charge Faible Excellent Excellent Excellent
Cohérence des données Excellent Faible Faible Excellent
Requêtes enrichies Excellent Faible Faible Excellent
Facilité d'utilisation Correct Correct Faible Excellent
Méthode d'empilement des bases de données
VALEUR DE NOSQL
Configuration requise
RDBMS Clé/valeur Colonne large MongoDB
Données hiérarchiques Faible Faible Correct Excellent
Schéma dynamique Faible Faible Faible Excellent
Lang. OOP natif Faible Excellent Excellent Excellent
Coût en matière de logiciel Faible Excellent Excellent Excellent
Performances Faible Excellent Excellent Excellent
Montée en charge Faible Excellent Excellent Excellent
Cohérence des données Excellent Faible Faible Excellent
Requêtes enrichies Excellent Faible Faible Excellent
Facilité d'utilisation Correct Correct Faible Excellent
Méthode d'empilement des bases de données
VALEUR DE NOSQL
VALEUR DE MONGODB
Atouts de MongoDB Les points à améliorer dans MongoDB
• Duplication directe• Performances élevées sur les charges
de travail mixtes pour les lectures, écritures et mises à jour
• Montée en charge à la demande• Déploiements géodépendants• Requêtes géospatiales• Haute disponibilité et basculement
automatique• Schéma et indexation secondaire
flexibles• Développement agile pour la plupart
des langages de programmation• Infrastructure courante• Analyses en temps réel• Indexation de texte• Cohérence des données• Compression
• Gestion des ressources *
• Analyse de collection pendant le chargement *
• Disponibilité d'écriture absolue
• Recherche par facettes
• Jointures entre les collections
• SQL*
• Transactions entre plusieurs documents
Quels sont les points forts de la base de données MongoDB ?
Atouts de MongoDB
• Duplication directe• Performances élevées sur les charges
de travail mixtes pour les lectures, écritures et mises à jour
• Montée en charge à la demande• Déploiements géodépendants• Requêtes géospatiales• Haute disponibilité et basculement
automatique• Schéma et indexation secondaire
flexibles• Développement agile pour la plupart
des langages de programmation• Infrastructure courante• Analyses en temps réel• Indexation de texte• Cohérence des données• Compression
Quels sont les points forts de la base de données MongoDB ?
Simple à initialiserToutes les lectures, mixtes et surtout les écritures
Pas de surprovisionnement coûteuxUn cluster peut s'étendre à un niveau mondialFacilite le développement d'applications mobiles pertinentesOpérations à faible pressionPas d'obligation d'établir un modèle de données complexePas d'obligation d'abandonner votre langage de développement favoriPas de dépendance vis-à-vis d'un fournisseur en termes de matérielRentabilisez vos données immédiatement !Fonctionnalité de recherche de baseSimplification de la conception des applications Avec la nouvelle version 3.0
Les points à améliorer dans MongoDB
• Gestion des ressources *
• Analyse de collection pendant le chargement *
• Disponibilité d'écriture absolue
• Recherche par facettes
• Jointures entre les collections
• SQL*
• Transactions entre plusieurs documents
Quels sont les points forts de la base de données MongoDB ?
Doit être effectuée au niveau de l'infrastructure
Les analyses simultanées peuvent perturber la plage de travail
Cohérence par rapport à la disponibilité
Principales valeurs des moteurs de recherche
Le modèle de document en réduit les besoins
Certaines solutions partielles (ODBC)
Transféré au niveau de l'application Rarement nécessaire lorsque la conception du schéma est efficace
Cas d'utilisation MongoDB
Vue unique Internet des objets Mobile Analyses en temps réel
Catalogue Personnalisation Gestion de contenus
Points forts de MongoDB Points à améliorer de MongoDB
• Vue unique• Internet des objets : données de vos
capteurs• Applications mobiles : géospatial• Analyses en temps réel• Catalogue• Personnalisation• Gestion de contenus• Gestion des stocks• Moteurs de personnalisation• Panier d'achat• Datamarts dépendants• Archivage pour une recherche rapide• Outils collaboratifs• Applications de messagerie• Agrégation de fichiers journaux• Mise en cache• Publicité• ……
• Moteur de recherche
• Le fait de décomposer et de décortiquer des données de façon imprévue requiert des jointures et des analyses complètes
• Latence de quelques nanosecondes lors de l'écriture (données de fluctuation en temps réel)
• Disponibilité au-delà de 99,999 %, basculement instantané
• Traitement par lot
Cas d'utilisation où MongoDB est particulièrement efficace
Points forts de MongoDB
• Vue unique• Internet des objets : données de vos
capteurs• Applications mobiles : géospatial• Analyses en temps réel• Catalogue• Personnalisation• Gestion de contenus• Gestion des stocks• Moteurs de personnalisation• Panier d'achat• Datamarts dépendants• Archivage pour une recherche rapide• Outils collaboratifs• Applications de messagerie• Agrégation de fichiers journaux• Mise en cache• Publicité• ……
Cas d'utilisation où MongoDB est particulièrement efficace
Tâches d'analyse et d'archivage
Développement d'informations à partir des données en temps réel
Extraction à partir des entrepôts de données pour l'analyseVolume important, requêtes cibléesPartage en temps quasi-réelApplications similaires à TwitterPar exemple : SPLUNKPermet des lectures en masse de données consolidées
Points à améliorer de MongoDB
• Moteur de recherche
• Le fait de décomposer et de décortiquer des données de façon imprévue requiert des jointures et des analyses complètes
• Latence de quelques nanosecondes lors de l'écriture (données de fluctuation en temps réel)
• Disponibilité au-delà de 99,999 %, basculement instantané
• Traitement par lot
Cas d'utilisation où MongoDB est particulièrement efficace
Indexation de texte uniquement pour les utilisations de base
Utilisations des entrepôts de données classiques. MongoDB requiert des modèles de requête connus.
Des bases de données spécialisées, telles que Kdb, sont développées à cet effet
MongoDB requiert un délai de quelques secondes pour effectuer un basculement
C'est pour cela que Hadoop a été conçu…
Remarque : le traitement des transactions ne requiert aucune transaction de bases de données. Les virements de compte à compte ne sont jamais instantanés et nécessitent un véritable traitement... Généralement par lot
Consolidation des données
Entrepôt de données
En temps réel ouPar lot
Application de fidélisation
Application de fidélisation
Plateforme de données opérationnelleAvantages• Temps réel• Détails complets• Agilité• Amélioration de la
fidélisation des clients• Augmentation de la
part de portefeuille• Gestion proactive des
exceptions
Créa
tion
de
rapp
orts
sur l
a st
raté
gie
Création de rapports sur les
opérations
Cartes
Prêts
Dépôts
Cartes Source de données
1
PrêtsSource de données
2
Dépôts
…
Source de données n
Plateforme de données pour une grande banque d'investissement
Flux et données par lot• Tarification• Comptes• Titres• Opérations sur titre
Source de données de référence (RDBMS)
Par lot
Par lot Par lot
Par lot
Par lot
Par lot
Par lot
Données dedestination
(RDBMS)
Chacune représente• des personnes $• du matériel $• des licences $• des amendes
réglementaires $• et d'autres problèmes
en aval
Plateforme de données pour une grande banque d'investissement
Flux et données par lot• Tarification• Comptes• Titres• Opérations sur titre
Source de données de référence (RDBMS)
Par lot
Par lot Par lot
Par lot
Par lot
Par lot
Par lot
Données dedestination
(RDBMS)
Chacune représente• des personnes $• du matériel $• des licences $• des amendes
réglementaires $• et d'autres problèmes
en aval
• Délais allant jusqu'à 36 heures lors de la distribution des données par lot
• Plusieurs facturations pour les mêmes données
• Risques d'amendes réglementaires pour non-respect d'un ANS
• Obligation de gérer 20 systèmes distribués contenant les mêmes données
Plateforme de données pour une grande banque d'investissement
Flux et données par lot• Tarification• Comptes• Titres• Opérations sur titre
Temps réel
Temps réel Temps réel
Temps réel
Temps réel
Temps réel
Temps réel
Chacune représente• Aucune personne $• Moins de matériel $• Moins de licences $• Aucune amende $• et bien moins de
problèmes
Membres secondaires MongoDB
MongoDB Primaire
Plateforme de données pour une grande banque d'investissement
Flux et données par lot• Tarification• Comptes• Titres• Opérations sur titre
Temps réel
Temps réel Temps réel
Temps réel
Temps réel
Temps réel
Temps réel
Chacune représente• Aucune personne $• Moins de matériel $• Moins de licences $• Aucune amende $• et bien moins de
problèmes
Membres secondaires MongoDB
MongoDB Primaire
• Permet d'économiser 40 000 000 $ de dépenses et d'amendes sur 5 ans
• Une seule facturation pour les mêmes données
• Les données sont synchronisées de manière globale et lues en local
• Capacité de passer à un service de données partagé global
Base de données de ressemblance moléculaire
• Stockage de composants chimiques : empreintes
• Objectif : recherche des composants « proches » d'un composant donné
• Après une requête, un ensemble réduit de candidats acceptables doit être renvoyé rapidement
• Quelques chercheurs travaillent en simultané
• Le coefficient d'association de Tanimoto est utilisé pour comparer deux composants selon leurs empreintes communes
Big Data pour la génomique
• Base d'extraits de séquences d'ADN très volumineuse– Origine, méthode de collecte,
séquence, date...• Énumération des mutations
relatives à la séquence de référence– Positions, type de mutation,
base• Besoin de récupérer
efficacement toutes les séquences comportant une mutation particulière
• Similaire à un modèle de système de gestion de contenus
• Ajout d'un tableau d'indicateurs dans un document de séquence répertoriant les noms des mutations
• Indexation du tableau d'indicateurs• Les requêtes recherchant les
séquences affectées sont indexées et très rapides
• Facile à configurer, représentation flexible et présentation détaillée des séquences, évolution flexible
• Possibilité de montée en charge pour traiter des volumes importants
IoT (Internet des objets) : grand fabricant de véhicules industriels
Partition 1Secondaire
Partition 2Secondaire
Partition 3Secondaire
Partition 1Primaire
Partition 1Secondaire
Partition 1Primaire
Partition 1Secondaire
Partition 1Primaire
Partition 1Secondaire
Plateforme de données
centralePlateforme
de données régionalePlateforme
de données régionale
Plateformede données
régionale
Quelle base de donnée choisir pour votre entreprise ?
Quel véhicule utiliser pour une course ?
QUELS SONT VOS OBJECTIFS ?
Caractéristiques importantes de MongoDB
• La base de données MongoDB n'a pas été conçue pour les cas d'utilisations de niche
• MongoDB s'efforce de se doter de caractéristiques excellentes pouvant s'appliquer à des cas d'utilisation très variés
MongoDB est la base de données la plus équilibrée pour les applications et les
performances d'entreprise
Du point de vue technique : pourquoi MongoDB
• Performances élevées (1 000 millions de requêtes/secondes) en lecture et écriture
• Vous avez besoin de schémas flexibles, de requêtes enrichies indépendamment du nombre d'index secondaires
• Vous avez besoin d'une capacité de duplication sur plusieurs centres de données, même à l'échelle mondiale
• Vous avez besoin d'effectuer des déploiements et des montées en charge à la demande rapidement (système réduit et rapide lors de la mise en place, simple à agrandir)
• Disponibilité de 99,999 % • Analyse en temps réel de la base de
données, pendant les chargements• Requêtes géospatiales• Traitement en temps réel, pas par lot• Vous avez besoin de promouvoir des
méthodologies de codage agile• Déploiement sur le matériel
informatique et les architectures de stockage les plus couramment utilisés
• Récupération à un moment précis• Vous avez besoin d'une forte
cohérence des données• Sécurité avancée
Du point de vue technique : pourquoi MongoDB
• Performances élevées (1 000 millions de requêtes/secondes) en lecture et écriture
• Vous avez besoin de schémas flexibles, de requêtes enrichies indépendamment du nombre d'index secondaires
• Vous avez besoin d'une capacité de duplication sur plusieurs centres de données, même à l'échelle mondiale
• Vous avez besoin d'effectuer des déploiements et des montées en charge à la demande rapidement (système réduit et rapide lors de la mise en place, simple à agrandir)
• Disponibilité de 99,999 % • Analyse en temps réel de la base de
données, pendant les chargements• Requêtes géospatiales• Traitement en temps réel, pas par lot• Vous avez besoin de promouvoir des
méthodologies de codage agile• Déploiement sur le matériel
informatique et les architectures de stockage les plus couramment utilisés
• Récupération à un moment précis• Vous avez besoin d'une forte
cohérence des données• Sécurité avancée
Si au moins 3 points vous concernent….
essayez MongoDB
Du point de vue des entreprises : pourquoi MongoDB
• Outils et services de gestion• Facilité d'adoption • Licence commerciale• Facilité d'adoption par les développeurs• Assistance technique mondiale• Services professionnels mondiaux• Intégration à l'écosystème informatique• Stabilité de l'entreprise• Norme de facto pour les bases de données de nouvelle
génération
Du point de vue des entreprises : pourquoi MongoDB
• Outils et services de gestion• Facilité d'adoption • Licence commerciale• Facilité d'adoption par les développeurs• Assistance technique mondiale• Services professionnels mondiaux• Intégration à l'écosystème informatique• Stabilité de l'entreprise• Norme de facto pour les bases de données de nouvelle
générationSi au moins 2 points vous concernent….
essayez MongoDB
Résumé
• MongoDB est adapté aux systèmes de fidélisation• Il complète les moteurs de recherche, Hadoop et les
entrepôts de données– Il ne remplace pas ces technologies
• Vaste gamme de cas d'utilisation : il s'agit ici d'un point essentiel !– Très efficace dans de nombreux cas d'utilisation, et pas simplement
dans quelques situations• Reconnu par Gartner et Forrester• Norme de facto pour les bases de données de nouvelle
génération• Maturité et intégration pour l'entreprise
Nous pouvons vous aiderMongoDB Enterprise AdvancedLa meilleure méthode pour exécuter MongoDB dans votre centre de données
MongoDB Management Service (MMS)La méthode la plus simple pour exécuter MongoDB dans le Cloud
Assistance technique de productionEn production et sous contrôle
Assistance technique pour le développementPour le bon déroulement de vos projets
Offres de conseilNous pouvons résoudre vos problèmes
FormationMaintenez la réactivité de vos équipes