46

Quand utiliser MongoDB… Et quand vous en passer…

  • Upload
    mongodb

  • View
    396

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Quand utiliser MongoDB… Et quand vous en passer…
Page 2: Quand utiliser MongoDB… Et quand vous en passer…

Quand utiliser MongoDB

… Et quand vous en passer…Docteur Edouard Servan-SchreiberDirecteur d'architecture de solution

[email protected]

Page 3: Quand utiliser MongoDB… Et quand vous en passer…

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

Page 4: Quand utiliser MongoDB… Et quand vous en passer…

CRÉER DES APPLICATIONS IMPOSSIBLE AUPARAVANT

AGILITÉ SCALABILITÉ

Page 5: Quand utiliser MongoDB… Et quand vous en passer…

À 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

Page 6: Quand utiliser MongoDB… Et quand vous en passer…

Langage de requête

expressif

Cohérenceforte

Index secondaires

Flexibilité

Scalabilité

Performances

Base de données relationnelle

Page 7: Quand utiliser MongoDB… Et quand vous en passer…

NoSQL

Langage de requête

expressif

Cohérenceforte

Index secondaires

Flexibilité

Scalabilité

Performances

Page 8: Quand utiliser MongoDB… Et quand vous en passer…

Langage de requête

expressif

Cohérenceforte

Index secondaires

Flexibilité

Scalabilité

Performances

Base de données relationnelle NoSQL

Base de données relationnelle + NoSQL

Page 9: Quand utiliser MongoDB… Et quand vous en passer…

Langage de requête

expressif

Cohérenceforte

Index secondaires

Flexibilité

Scalabilité

Performances

Architecture Nexus

Base de données relationnelle + NoSQL

Page 10: Quand utiliser MongoDB… Et quand vous en passer…

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

Page 11: Quand utiliser MongoDB… Et quand vous en passer…

MongoDB et le stack informatique d'entreprise

Page 12: Quand utiliser MongoDB… Et quand vous en passer…

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)

Page 13: Quand utiliser MongoDB… Et quand vous en passer…

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

Page 14: Quand utiliser MongoDB… Et quand vous en passer…

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”]}

Page 15: Quand utiliser MongoDB… Et quand vous en passer…

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, … } ]}

Page 16: Quand utiliser MongoDB… Et quand vous en passer…

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 ?)

Page 17: Quand utiliser MongoDB… Et quand vous en passer…

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

Page 18: Quand utiliser MongoDB… Et quand vous en passer…

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

Page 19: Quand utiliser MongoDB… Et quand vous en passer…

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

Page 20: Quand utiliser MongoDB… Et quand vous en passer…

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

Page 21: Quand utiliser MongoDB… Et quand vous en passer…

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 ?

Page 22: Quand utiliser MongoDB… Et quand vous en passer…

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

Page 23: Quand utiliser MongoDB… Et quand vous en passer…

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

Page 24: Quand utiliser MongoDB… Et quand vous en passer…

Cas d'utilisation MongoDB

Vue unique Internet des objets Mobile Analyses en temps réel

Catalogue Personnalisation Gestion de contenus

Page 25: Quand utiliser MongoDB… Et quand vous en passer…

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

Page 26: Quand utiliser MongoDB… Et quand vous en passer…

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

Page 27: Quand utiliser MongoDB… Et quand vous en passer…

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

Page 28: Quand utiliser MongoDB… Et quand vous en passer…

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

Page 29: Quand utiliser MongoDB… Et quand vous en passer…

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

Page 30: Quand utiliser MongoDB… Et quand vous en passer…

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

Page 31: Quand utiliser MongoDB… Et quand vous en passer…

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

Page 32: Quand utiliser MongoDB… Et quand vous en passer…

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

Page 33: Quand utiliser MongoDB… Et quand vous en passer…

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

Page 34: Quand utiliser MongoDB… Et quand vous en passer…

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

Page 35: Quand utiliser MongoDB… Et quand vous en passer…

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

Page 36: Quand utiliser MongoDB… Et quand vous en passer…

Quelle base de donnée choisir pour votre entreprise ?

Page 37: Quand utiliser MongoDB… Et quand vous en passer…

Quel véhicule utiliser pour une course ?

Page 38: Quand utiliser MongoDB… Et quand vous en passer…

QUELS SONT VOS OBJECTIFS ?

Page 39: Quand utiliser MongoDB… Et quand vous en passer…

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

Page 40: Quand utiliser MongoDB… Et quand vous en passer…

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

Page 41: Quand utiliser MongoDB… Et quand vous en passer…

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

Page 42: Quand utiliser MongoDB… Et quand vous en passer…

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

Page 43: Quand utiliser MongoDB… Et quand vous en passer…

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

Page 44: Quand utiliser MongoDB… Et quand vous en passer…

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

Page 45: Quand utiliser MongoDB… Et quand vous en passer…

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

Page 46: Quand utiliser MongoDB… Et quand vous en passer…