MongoDB 3.6
Les nouveautés
Nom, fonction
Nom.fonction@mongodb.com
@twitterhandle
Sommaire
• MongoDB 3.6 : réponse à l'évolution du marché
et des technologies
• Principales fonctionnalités et améliorations
• Développeurs
• Equipes Ops
• Data analysts et data scientists
• Prise en main
Le digital poursuit son ascension...
4 000+ Mds $ de
ventes e-commerce
by 2020
75 Mds d'appareils
connectés
by 2025
61 % jugent "urgent"
d'implémenter une
stratégie IA
in 2017
108 Mds $ : taille du
marché de la réalité
virtuelle/augmentée
d'ici 2021
59 % : taux de
pénétration des
smartphones
d'ici 2020
6 000+ Mds $ : pertes
imputables au
cybercrime
d'ici 2021
La vitesse compte...
La vitesse compte... Mais la voie du digital
est complexe
Forrester Digital Transformation Infographic: https://go.forrester.com/blogs/16-05-09-digital_transformation_2016_infographic/
MongoDB 3.6
Développement accéléré
• Change Streams
• Retryable writes (Écritures réessayables)
• Tunable Consistency (cohérence ajustable)
• MongoDB Compass
• Expressivité des requêtes
• Fonctionnalités complètes de mise à jour des
tableaux
Les applications
et services de
nouvelle
génération sont
étroitement
intégrés
MongoDB Change Streams
Aide les développeurs à créer des services hyper-
réactifs en temps réel
ChangeStreamsAPI
Applications
d'entreprise
Données
utilisateurs
Capteurs
Clickstream
Notifications
d'événements en
temps réel
File de messages
Implémenter Change Streams
Les applications reçoivent des notifications via l'API Change
Streams, elle-même basée sur l'oplog de MongoDB
• Les avantages de Change Streams :
• Flexibilité - Envoi des modifications ou du document complet, avec
possibilité de filtrage par type spécifique d'événement
• Cohérence - Tri et traitement complets des données à travers les
différents shards
• Sécurité - Contrôle des privilèges utilisateurs pour l'accès à la collection
• Fiabilité - Envoi de notifications seulement après la réplication d'une
écriture sur la majorité des réplicas
• Reprise - Après la défaillance d'un nœud
• Simultanéité - Jusqu'à 1 000 flux de changements par instance
MongoDB
• Familiarité - Exploitation du langage de requêtes et des moteurs
standards MongoDB
Change Streams : champs d'application
• Actualisation des applications de trading selon
l'évolution des cours de bourse
• Synchronisation des changements à travers
tous les microservices
• Mise à jour des tableaux de bord et
systèmes d'analyse
• Pipelines de données IoT (p. ex. envoi d'alertes en
cas de dysfonctionnement d'un appareil connecté)
• Utilisation de transactions de cartes bancaires
pour alimenter des modèles de machine learning
et recalculer les risques
• Gestion et actualisation des tableaux de scores
dans les jeux multijoueurs
ChangeStreamsAPI
Applications
d'entreprise
Données
utilisateurs
Capteurs
Clickstream
Notifications
d'événements en
temps réel
File de messages
Change Streams : dans la pratique
// Sélection de la collection à interroger.
MongoCollection<Document> collection =
database.getCollection("orders");
// Création d'un curseur pour le flux de changement.
MongoCursor<Document> cursor =
collection.watch().iterator();
Disponibilité des opérations d'écriture
Applications
d'entreprise
Données
utilisateurs
Capteurs
Clickstream
Écriture
ACK
Dans la pratique...
Applications
d'entreprise
Données
utilisateurs
Capteurs
Clickstream
Écriture
ACK
...des pannes surviennent,
et l'application n'a aucun
moyen de savoir si l'écriture a
été appliquée ou non*
• Une panne réseau entrave l'opération
d'écriture dans MongoDB
• Le choix du nœud primaire MongoDB n'est
pas encore déterminé
• L'opération d'écriture réussit, mais une panne
réseau empêche l’acquittement
* Pour les opérations idempotentes, le problème ne se pose pas
Gestion des défaillances d'écriture
Applications
d'entreprise
Données
utilisateurs
Capteurs
Clickstream
Write
ACK
... des pannes surviennent, et
l'application n'a aucun moyen de
savoir si l'écriture a été appliquée
ou non*
• Une panne réseau entrave l'opération d'écriture
dans MongoDB
• Le choix du nœud primaire MongoDB n'est pas
encore déterminé
• L'opération d'écriture réussit, mais une panne
réseau empêche l’acquittement
Les développeurs écrivent
du code complexe pour la
gestion des exceptions
Écritures réessayables MongoDB
• Gestion des écritures défaillantes (liées à une
panne réseau ou au choix d'un nœud primaire)
• Le moteur relance automatiquement les opérations d'écriture non
abouties
• Avec un identifiant de transaction unique, le serveur n'applique
qu'une seule fois la sémantique de traitement
• Propriétés
• Prise en charge des opérations idempotentes et non
idempotentes, mais aussi les erreurs dues aux expirations de délai
• Disponibilité continue des opérations d'écriture, à
l'échelle mondiale
• Traitement fiable au sein d'environnements complexes (systèmes
multi-maîtres, "eventually consistent")
Ecritures réessayables : exemples
uri = "mongodb://example.com:27017/?retryWrites=true"
client = MongoClient(uri)
database = client.database
collection = database.collection
Forte cohérence
Toutes les
lectures et
écritures
MongoDB Primary
MongoDB Secondary
MongoDB Secondary
Applications
d'entreprise
Données
utilisateurs
Capteurs
Click
stream
Tunable consistency : dimensionnement des lectures
MongoDB Primary
MongoDB Secondary
MongoDB Secondary
Toutes les
écritures et
certaines
lectures
Lectures
Lectures
Applications
d'entreprise
Données
utilisateurs
Capteurs
Click
stream
Cohérence ajustable (Tunable Consistency)
Ajustez la cohérence des données selon vos SLA de performance
Les développeurs contrôlent précisément le routage des requêtes à travers le
cluster de base de données.
Cohérence causale : garantit des lectures monotones et
logiquement cohérentes sur chaque nœud de replica au sein
d'une même session utilisateur
Lecture des nœuds secondaires dans des clusters shardés :
les réplicas secondaires reconnaissent désormais les blocs
(chunks), ce qui garantit des lectures cohérentes, même en cas
de redistribution des données sur un cluster shardé
Cohérence causale : exemples
// début de la session client (cohérence causale définie par défaut)
try (ClientSession session =
client.startSession(ClientSessionOptions.builder().build())) {
// Exécution des opérations qui entretiennent une relation causale dans la session
collection.insertOne(session, ... );
collection.updateOne(session, ...);
try (MongoCursor<Document> cursor =
collection.find(session).filter(...).iterator()) {
while (cursor.hasNext()) {
Document cur = cursor.next();
}
}
Compass : la GUI de MongoDB
Nouvelles fonctionnalités
• Exécution automatique des
requêtes
• Historique des requêtes
• Vue en tableau
• Framework pour Compass (plug-in)
Compass Community
• Édition gratuite
• GUI et shell utilisables en simultané
Téléchargez Compass Community
Expressivité des requêtes et fonctionnalités
complètes de mise à jour pour les tableaux
• Utilisation d'expressions du pipeline d'agrégation dans le langage de
requête MongoDB à l'aide du nouvel opérateur $expr
• équivalent SQL de SELECT * FROM T1 a> b
• Exemple : trouver tous les comptes clients dont les dépenses ont
augmenté de 200$ mois après mois
• Requêtes plus expressives avec moins de code côté client
• Mise à jour atomique de plusieurs éléments correspondants d'un
tableau avec une seule commande de mise à jour
• Exemple : Augmenter de 20 % tous les prix d'un tableau
• Modélisation plus souple des données
• Évite les réécritures de documents imposées par d'autres systèmes
de bases de données
[ ]
Mise à jour de tableaux : tous les éléments
orders:
{
_id: 5,
line_items : [
{ id: 123,
title : "USB Battery",
price: 15.0 },
{ id: 512,
title : "Hip T-shirt",
price : 45.0 }
],
...
}
db.orders.update(
{ _id: 5 },
{ $mul: {
"line_items.$[].price":
0.8
}
}
)
Mise à jour de tableaux : certains éléments
orders:
{
_id: 5,
line_items : [
{ id: 123,
title : "USB Battery",
price: 15.0 ,
shipped: true},
{ id: 512,
title : "Hip T-shirt",
price : 45.0,
shipped: false }
]
}
db.orders.update(
{ _id: 5 },
{ $mul: {
"line_items.$[li].price":
.8}},
{arrayFilters:[
{"li.shipped":{$ne:true}}
]}
)
• Ops Manager
• Validation de schéma
• Sécurité renforcée
• Compression
• Multi-tenant
Scalabilité accélérée
Explorateur de
données
Inspection de l'utilisation
des schémas et des index
Vue des performances
en temps réel
Télémétrie en temps réel : opérations
en cours et consommation des
ressources
Vue des performances en
temps réel
Scoring des requêtes et
recommandations
d'indexes
Ops Manager : sauvegardes et restaurations
Sauvegardes continues et cohérentes avec restauration
PITR des données:
Sauvegardes interrogeables : inspection des sauvegardes sans
restauration préalable
• Sauvegardes plus rapides : agent redéveloppé et
synchronisation initiale améliorée
• Restauration accélérée : création des instantanés point-in-time
sur le nœud de destination, avec à la clé un saut (hop) en moins
• Sauvegardes vers des object stores : sur site et dans S3
• Restauration inter-projet : restauration dans un projet différent de
la source de l'instantané (snapshot)
Conformité du modèle de données
flexible avec la gouvernance
{
product_name: ‘Acme Paint’,
color: [‘Red’, ‘Green’],
size_oz: [8, 32],
finish: [‘satin’, ‘eggshell’]
}
{
product_name: ‘T-shirt’,
size: [‘S’, ‘M’, ‘L’, ‘XL’],
color: [‘Heather Gray’ … ],
material: ‘100% cotton’,
wash: ‘cold’,
dry: ‘tumble dry low’
}
{
product_name: ‘Mountain Bike’,
brake_style: ‘mechanical disc’,
color: ‘grey’,
frame_material: ‘aluminum’,
no_speeds: 21,
package_height: ‘7.5x32.9x55’,
weight_lbs: 44.05,
suspension_type: ‘dual’,
wheel_size_in: 26
}
Documents de la même collection de catalogues produits dans MongoDB
Validation de schéma
Applique une structure de schéma stricte sur une collection
complète pour garantir la qualité et la bonne gouvernance
des données.
Complète la validation de document par la restriction du nouveau contenu
qu'il est possible d'ajouter à un document
• Contrôle la présence, le type et les valeurs du contenu des documents,
y compris pour les tableaux imbriqués
• Simplifie la logique d'application
• Ajustable : imposez une structure de document, configurez des
avertissements, ou autorisez une flexibilité complète
• Interrogeable : identifiez tous les documents existants présentant des
défauts de conformité
Validation des schémas : exemples
db.createCollection( "orders",
{validator: {$jsonSchema:
{
properties:
{line_items:
{type: "array",
items:
{properties:
{title: {type: "string"},
price: {type: "number", minimum: 0.0} },
required: ["_id", "title", "price"],
additionalProperties: false}}},
required: ["line_items"]}}}
)
Sécurité des données de bout en bout
• Authentification : LDAP, Kerberos, x509,
challenge-réponse
• Autorisation : RBAC, rôles définis par
l'utilisateur, sécurité au niveau du champ
• Chiffrement : données en mouvement, au
repos, sauvegardes
• Audit : DML et DDL complet
Contrôles de sécurité renforcés
Les nouveautés de MongoDB 3.6
• Connexion à Localhost : RPM et DEB par défaut étendus à tous
les packages et plateformes. Refuse toutes les connexions externes
à la base de données jusqu'à l'autorisation de l'administrateur
• Whitelisting des adresses IP : acceptation des connexions
externes uniquement à partir d'adresses IP ou de blocs CIDR
prédéfinis
Compression de bout en bout
MongoDB 3.6 permet de compresser
le trafic du protocole de transmission
entre le client et la base de données
Jusqu'à 80 % de gain de bande passante
Compression de bout en bout
Compression de bout en bout
• Protocole de transmission
• Intra-cluster
• Index en mémoire
• Stockage
Application
MongoDB Primary
Replica
Compression du
protocole de
transmission
MongoDB Secondary Replica
Single ViewMongoDB Secondary Replica
Single ViewMongoDB Secondary Replica
Single ViewMongoDB Secondary Replica
Single ViewMongoDB Secondary Replica
Réplica secondaire MongoDB
Compression
intra-cluster
Compression des
données sur disque
Compression des index en
mémoire
Gestion multi-tenant
• Gestion opérationnelle des sessions
• Les administrateurs peuvent visualiser, grouper et rechercher toutes
les sessions utilisateurs, à travers tous les nœuds
• Une seule commande pour annuler les opérations en cours
d'exécution sur plusieurs nœuds
• Plus d'un million de collections WiredTiger
• Refactorisation des éléments internes WiredTiger pour
supporter les applications produisant
• Applications SaaS : collection par utilisateur
• Services IoT : collection par ressource par heure
• Connector for BI
• Pipeline d'agrégation
• Pilote R
Analyses accélérées
MongoDB Connector for BI
et bien d'autres
d'autres encore...
• Plus rapide
• S'appuie sur la recherche expressive de MongoDB 3.6 pour
basculer plus d'opérations de calcul vers la base de données
• Supporte l'affichage du statut pour une optimisation plus
poussée des performances
• Plus simple
• Gestion du cycle de vie avec Ops Manager
• Échantillonnage et mappage des schémas désormais gérés
par le processus mongosqld, et non par un utilitaire distinct
• Authentification via des plug-ins côté client, ce qui évite la
gestion des certificats TLS. Nouvelle prise en charge de
Kerberos
BI Connector : les nouveautés
Pipeline d'agrégation enrichi
• Recherche expressive ($lookup)
• Prise en charge de nouvelles jointures, au-delà des équi jointures
à gauche, notamment les jointures non-équi et les
• Exécution native dans la base de données. Permet d'adresser
des requêtes d'analyse plus complexes avec moins de code
• Agrégations sensibles aux fuseaux horaires
• Analyse multi-région : permet de regrouper les données en
tenant compte des fuseaux horaires
• Nouvelles expressions pour des transformations plus
complexes
• Conversion d'objets en tableaux de paires clé-valeur, et inversement
• Fusion de plusieurs objets en un seul
• Élimination des champs d'un objet selon des critères d'évaluation
$lookup in 3.6
db.orders.aggregate([
{$unwind: "$line_items"},
{$lookup:{
from: "reviews",
let: {p_id:
"$line_items.id"},
pipeline: [
{$match: {$expr: {$eq:
["$p_id", "$$p_id"]}}},
{$group: {
_id: 1,
rating: {$avg:"$rating"}
}}
],
as: "avgRating" }
}
])
orders:
{
...
line_items : [
{ id: 123,
title : “USB Battery”,
price: 15.0 },
{ id: 512,
title : “Hip T-shirt”,
price : 45.0 }
],
...
}
Pilote R MongoDB
Pilote R MongoDB : recommandé pour les développeurs,
statisticiens et data scientists
• Accès idiomatique à la base de données en
langage natif
• Gestion de la cohérence et de la durabilité des
données
• Protection des données avec des mécanismes
d'authentification d'entreprise
• Support de nouveaux types de données BSON, p.
ex. "decimal128", pour des analyses scientifiques et
financières de haute précision
Cloud ManagerOps Manager MongoDB Atlas
DBaaS privé : sur
site
Compatibilité multi-environnement
Tirez un trait sur l'enfermement propriétaire
DBaaS hybride
DBaaS public :
entièrement géré
Même codebase, même API, même IU de gestion
MongoDB Atlas : le DBaaS selon MongoDB
En self-service,
élastique et
automatisé
Sécurisé par défaut
Haute disponibilité
à l'échelle mondiale
Sauvegardes
continues
Monitoring et optimisation
en temps réel
Ouverte à toutes les
configurations cloud
Les nouveautés d'Atlas
● MongoDB 3.6 disponible dans
MongoDB Atlas (version GA)
● Réplication inter-régions
● Dimensionnement automatique
du stockage
● Arrêt provisoire d'un cluster
● Assistant de performance
disponible en continu
● Restaurations inter-projets
Auto-storage
scaling
Pour aller plus loin
MongoDB 3.6
Évoluez à la vitesse de vos données
Développement
accéléré
● Change Streams
● Écritures réessayables
● Cohérence ajustable
(Tunable Consistency)
● Compass
● Expressivité des requêtes
et mises à jour granulaires
des tableaux
Scalabilité accélérée
● Ops Manager
● Validation de schéma
● Contrôles de sécurité
● Compression E2E
● Gestion multi-tenant
Analyses accélérées
● BI Connector
● Pipeline d'agrégation
enrichi
● Pilote R
http://university.mongodb.com/courses/M036/about
M036 : Nouveaux
outils et
fonctionnalités de
MongoDB 3.6
Prise en main de MongoDB 3.6
• Téléchargez la version RC et lisez les notes de version
• Lisez notre livre blanc consacré aux nouveautés de MongoDB 3.6
• Profitez d'une formation gratuite avec la MongoDB University
• Nous pouvons vous aider : Service de montée de version
MongoDB 3.6

MongoDB 3.6 Customer Deck pptx.pptx

  • 1.
    MongoDB 3.6 Les nouveautés Nom,fonction Nom.fonction@mongodb.com @twitterhandle
  • 2.
    Sommaire • MongoDB 3.6: réponse à l'évolution du marché et des technologies • Principales fonctionnalités et améliorations • Développeurs • Equipes Ops • Data analysts et data scientists • Prise en main
  • 3.
    Le digital poursuitson ascension... 4 000+ Mds $ de ventes e-commerce by 2020 75 Mds d'appareils connectés by 2025 61 % jugent "urgent" d'implémenter une stratégie IA in 2017 108 Mds $ : taille du marché de la réalité virtuelle/augmentée d'ici 2021 59 % : taux de pénétration des smartphones d'ici 2020 6 000+ Mds $ : pertes imputables au cybercrime d'ici 2021
  • 4.
  • 5.
    La vitesse compte...Mais la voie du digital est complexe Forrester Digital Transformation Infographic: https://go.forrester.com/blogs/16-05-09-digital_transformation_2016_infographic/
  • 6.
  • 7.
    Développement accéléré • ChangeStreams • Retryable writes (Écritures réessayables) • Tunable Consistency (cohérence ajustable) • MongoDB Compass • Expressivité des requêtes • Fonctionnalités complètes de mise à jour des tableaux
  • 8.
    Les applications et servicesde nouvelle génération sont étroitement intégrés
  • 9.
    MongoDB Change Streams Aideles développeurs à créer des services hyper- réactifs en temps réel ChangeStreamsAPI Applications d'entreprise Données utilisateurs Capteurs Clickstream Notifications d'événements en temps réel File de messages
  • 10.
    Implémenter Change Streams Lesapplications reçoivent des notifications via l'API Change Streams, elle-même basée sur l'oplog de MongoDB • Les avantages de Change Streams : • Flexibilité - Envoi des modifications ou du document complet, avec possibilité de filtrage par type spécifique d'événement • Cohérence - Tri et traitement complets des données à travers les différents shards • Sécurité - Contrôle des privilèges utilisateurs pour l'accès à la collection • Fiabilité - Envoi de notifications seulement après la réplication d'une écriture sur la majorité des réplicas • Reprise - Après la défaillance d'un nœud • Simultanéité - Jusqu'à 1 000 flux de changements par instance MongoDB • Familiarité - Exploitation du langage de requêtes et des moteurs standards MongoDB
  • 11.
    Change Streams :champs d'application • Actualisation des applications de trading selon l'évolution des cours de bourse • Synchronisation des changements à travers tous les microservices • Mise à jour des tableaux de bord et systèmes d'analyse • Pipelines de données IoT (p. ex. envoi d'alertes en cas de dysfonctionnement d'un appareil connecté) • Utilisation de transactions de cartes bancaires pour alimenter des modèles de machine learning et recalculer les risques • Gestion et actualisation des tableaux de scores dans les jeux multijoueurs ChangeStreamsAPI Applications d'entreprise Données utilisateurs Capteurs Clickstream Notifications d'événements en temps réel File de messages
  • 12.
    Change Streams :dans la pratique // Sélection de la collection à interroger. MongoCollection<Document> collection = database.getCollection("orders"); // Création d'un curseur pour le flux de changement. MongoCursor<Document> cursor = collection.watch().iterator();
  • 13.
    Disponibilité des opérationsd'écriture Applications d'entreprise Données utilisateurs Capteurs Clickstream Écriture ACK
  • 14.
    Dans la pratique... Applications d'entreprise Données utilisateurs Capteurs Clickstream Écriture ACK ...despannes surviennent, et l'application n'a aucun moyen de savoir si l'écriture a été appliquée ou non* • Une panne réseau entrave l'opération d'écriture dans MongoDB • Le choix du nœud primaire MongoDB n'est pas encore déterminé • L'opération d'écriture réussit, mais une panne réseau empêche l’acquittement * Pour les opérations idempotentes, le problème ne se pose pas
  • 15.
    Gestion des défaillancesd'écriture Applications d'entreprise Données utilisateurs Capteurs Clickstream Write ACK ... des pannes surviennent, et l'application n'a aucun moyen de savoir si l'écriture a été appliquée ou non* • Une panne réseau entrave l'opération d'écriture dans MongoDB • Le choix du nœud primaire MongoDB n'est pas encore déterminé • L'opération d'écriture réussit, mais une panne réseau empêche l’acquittement Les développeurs écrivent du code complexe pour la gestion des exceptions
  • 16.
    Écritures réessayables MongoDB •Gestion des écritures défaillantes (liées à une panne réseau ou au choix d'un nœud primaire) • Le moteur relance automatiquement les opérations d'écriture non abouties • Avec un identifiant de transaction unique, le serveur n'applique qu'une seule fois la sémantique de traitement • Propriétés • Prise en charge des opérations idempotentes et non idempotentes, mais aussi les erreurs dues aux expirations de délai • Disponibilité continue des opérations d'écriture, à l'échelle mondiale • Traitement fiable au sein d'environnements complexes (systèmes multi-maîtres, "eventually consistent")
  • 17.
    Ecritures réessayables :exemples uri = "mongodb://example.com:27017/?retryWrites=true" client = MongoClient(uri) database = client.database collection = database.collection
  • 18.
    Forte cohérence Toutes les lectureset écritures MongoDB Primary MongoDB Secondary MongoDB Secondary Applications d'entreprise Données utilisateurs Capteurs Click stream
  • 19.
    Tunable consistency :dimensionnement des lectures MongoDB Primary MongoDB Secondary MongoDB Secondary Toutes les écritures et certaines lectures Lectures Lectures Applications d'entreprise Données utilisateurs Capteurs Click stream
  • 20.
    Cohérence ajustable (TunableConsistency) Ajustez la cohérence des données selon vos SLA de performance Les développeurs contrôlent précisément le routage des requêtes à travers le cluster de base de données. Cohérence causale : garantit des lectures monotones et logiquement cohérentes sur chaque nœud de replica au sein d'une même session utilisateur Lecture des nœuds secondaires dans des clusters shardés : les réplicas secondaires reconnaissent désormais les blocs (chunks), ce qui garantit des lectures cohérentes, même en cas de redistribution des données sur un cluster shardé
  • 21.
    Cohérence causale :exemples // début de la session client (cohérence causale définie par défaut) try (ClientSession session = client.startSession(ClientSessionOptions.builder().build())) { // Exécution des opérations qui entretiennent une relation causale dans la session collection.insertOne(session, ... ); collection.updateOne(session, ...); try (MongoCursor<Document> cursor = collection.find(session).filter(...).iterator()) { while (cursor.hasNext()) { Document cur = cursor.next(); } }
  • 22.
    Compass : laGUI de MongoDB Nouvelles fonctionnalités • Exécution automatique des requêtes • Historique des requêtes • Vue en tableau • Framework pour Compass (plug-in) Compass Community • Édition gratuite • GUI et shell utilisables en simultané Téléchargez Compass Community
  • 23.
    Expressivité des requêteset fonctionnalités complètes de mise à jour pour les tableaux • Utilisation d'expressions du pipeline d'agrégation dans le langage de requête MongoDB à l'aide du nouvel opérateur $expr • équivalent SQL de SELECT * FROM T1 a> b • Exemple : trouver tous les comptes clients dont les dépenses ont augmenté de 200$ mois après mois • Requêtes plus expressives avec moins de code côté client • Mise à jour atomique de plusieurs éléments correspondants d'un tableau avec une seule commande de mise à jour • Exemple : Augmenter de 20 % tous les prix d'un tableau • Modélisation plus souple des données • Évite les réécritures de documents imposées par d'autres systèmes de bases de données [ ]
  • 24.
    Mise à jourde tableaux : tous les éléments orders: { _id: 5, line_items : [ { id: 123, title : "USB Battery", price: 15.0 }, { id: 512, title : "Hip T-shirt", price : 45.0 } ], ... } db.orders.update( { _id: 5 }, { $mul: { "line_items.$[].price": 0.8 } } )
  • 25.
    Mise à jourde tableaux : certains éléments orders: { _id: 5, line_items : [ { id: 123, title : "USB Battery", price: 15.0 , shipped: true}, { id: 512, title : "Hip T-shirt", price : 45.0, shipped: false } ] } db.orders.update( { _id: 5 }, { $mul: { "line_items.$[li].price": .8}}, {arrayFilters:[ {"li.shipped":{$ne:true}} ]} )
  • 26.
    • Ops Manager •Validation de schéma • Sécurité renforcée • Compression • Multi-tenant Scalabilité accélérée
  • 27.
    Explorateur de données Inspection del'utilisation des schémas et des index Vue des performances en temps réel Télémétrie en temps réel : opérations en cours et consommation des ressources Vue des performances en temps réel Scoring des requêtes et recommandations d'indexes
  • 28.
    Ops Manager :sauvegardes et restaurations Sauvegardes continues et cohérentes avec restauration PITR des données: Sauvegardes interrogeables : inspection des sauvegardes sans restauration préalable • Sauvegardes plus rapides : agent redéveloppé et synchronisation initiale améliorée • Restauration accélérée : création des instantanés point-in-time sur le nœud de destination, avec à la clé un saut (hop) en moins • Sauvegardes vers des object stores : sur site et dans S3 • Restauration inter-projet : restauration dans un projet différent de la source de l'instantané (snapshot)
  • 29.
    Conformité du modèlede données flexible avec la gouvernance { product_name: ‘Acme Paint’, color: [‘Red’, ‘Green’], size_oz: [8, 32], finish: [‘satin’, ‘eggshell’] } { product_name: ‘T-shirt’, size: [‘S’, ‘M’, ‘L’, ‘XL’], color: [‘Heather Gray’ … ], material: ‘100% cotton’, wash: ‘cold’, dry: ‘tumble dry low’ } { product_name: ‘Mountain Bike’, brake_style: ‘mechanical disc’, color: ‘grey’, frame_material: ‘aluminum’, no_speeds: 21, package_height: ‘7.5x32.9x55’, weight_lbs: 44.05, suspension_type: ‘dual’, wheel_size_in: 26 } Documents de la même collection de catalogues produits dans MongoDB
  • 30.
    Validation de schéma Appliqueune structure de schéma stricte sur une collection complète pour garantir la qualité et la bonne gouvernance des données. Complète la validation de document par la restriction du nouveau contenu qu'il est possible d'ajouter à un document • Contrôle la présence, le type et les valeurs du contenu des documents, y compris pour les tableaux imbriqués • Simplifie la logique d'application • Ajustable : imposez une structure de document, configurez des avertissements, ou autorisez une flexibilité complète • Interrogeable : identifiez tous les documents existants présentant des défauts de conformité
  • 31.
    Validation des schémas: exemples db.createCollection( "orders", {validator: {$jsonSchema: { properties: {line_items: {type: "array", items: {properties: {title: {type: "string"}, price: {type: "number", minimum: 0.0} }, required: ["_id", "title", "price"], additionalProperties: false}}}, required: ["line_items"]}}} )
  • 32.
    Sécurité des donnéesde bout en bout • Authentification : LDAP, Kerberos, x509, challenge-réponse • Autorisation : RBAC, rôles définis par l'utilisateur, sécurité au niveau du champ • Chiffrement : données en mouvement, au repos, sauvegardes • Audit : DML et DDL complet
  • 33.
    Contrôles de sécuritérenforcés Les nouveautés de MongoDB 3.6 • Connexion à Localhost : RPM et DEB par défaut étendus à tous les packages et plateformes. Refuse toutes les connexions externes à la base de données jusqu'à l'autorisation de l'administrateur • Whitelisting des adresses IP : acceptation des connexions externes uniquement à partir d'adresses IP ou de blocs CIDR prédéfinis
  • 34.
    Compression de bouten bout MongoDB 3.6 permet de compresser le trafic du protocole de transmission entre le client et la base de données Jusqu'à 80 % de gain de bande passante Compression de bout en bout Compression de bout en bout • Protocole de transmission • Intra-cluster • Index en mémoire • Stockage Application MongoDB Primary Replica Compression du protocole de transmission MongoDB Secondary Replica Single ViewMongoDB Secondary Replica Single ViewMongoDB Secondary Replica Single ViewMongoDB Secondary Replica Single ViewMongoDB Secondary Replica Réplica secondaire MongoDB Compression intra-cluster Compression des données sur disque Compression des index en mémoire
  • 35.
    Gestion multi-tenant • Gestionopérationnelle des sessions • Les administrateurs peuvent visualiser, grouper et rechercher toutes les sessions utilisateurs, à travers tous les nœuds • Une seule commande pour annuler les opérations en cours d'exécution sur plusieurs nœuds • Plus d'un million de collections WiredTiger • Refactorisation des éléments internes WiredTiger pour supporter les applications produisant • Applications SaaS : collection par utilisateur • Services IoT : collection par ressource par heure
  • 36.
    • Connector forBI • Pipeline d'agrégation • Pilote R Analyses accélérées
  • 37.
    MongoDB Connector forBI et bien d'autres d'autres encore...
  • 38.
    • Plus rapide •S'appuie sur la recherche expressive de MongoDB 3.6 pour basculer plus d'opérations de calcul vers la base de données • Supporte l'affichage du statut pour une optimisation plus poussée des performances • Plus simple • Gestion du cycle de vie avec Ops Manager • Échantillonnage et mappage des schémas désormais gérés par le processus mongosqld, et non par un utilitaire distinct • Authentification via des plug-ins côté client, ce qui évite la gestion des certificats TLS. Nouvelle prise en charge de Kerberos BI Connector : les nouveautés
  • 39.
    Pipeline d'agrégation enrichi •Recherche expressive ($lookup) • Prise en charge de nouvelles jointures, au-delà des équi jointures à gauche, notamment les jointures non-équi et les • Exécution native dans la base de données. Permet d'adresser des requêtes d'analyse plus complexes avec moins de code • Agrégations sensibles aux fuseaux horaires • Analyse multi-région : permet de regrouper les données en tenant compte des fuseaux horaires • Nouvelles expressions pour des transformations plus complexes • Conversion d'objets en tableaux de paires clé-valeur, et inversement • Fusion de plusieurs objets en un seul • Élimination des champs d'un objet selon des critères d'évaluation
  • 40.
    $lookup in 3.6 db.orders.aggregate([ {$unwind:"$line_items"}, {$lookup:{ from: "reviews", let: {p_id: "$line_items.id"}, pipeline: [ {$match: {$expr: {$eq: ["$p_id", "$$p_id"]}}}, {$group: { _id: 1, rating: {$avg:"$rating"} }} ], as: "avgRating" } } ]) orders: { ... line_items : [ { id: 123, title : “USB Battery”, price: 15.0 }, { id: 512, title : “Hip T-shirt”, price : 45.0 } ], ... }
  • 41.
    Pilote R MongoDB PiloteR MongoDB : recommandé pour les développeurs, statisticiens et data scientists • Accès idiomatique à la base de données en langage natif • Gestion de la cohérence et de la durabilité des données • Protection des données avec des mécanismes d'authentification d'entreprise • Support de nouveaux types de données BSON, p. ex. "decimal128", pour des analyses scientifiques et financières de haute précision
  • 42.
    Cloud ManagerOps ManagerMongoDB Atlas DBaaS privé : sur site Compatibilité multi-environnement Tirez un trait sur l'enfermement propriétaire DBaaS hybride DBaaS public : entièrement géré Même codebase, même API, même IU de gestion
  • 43.
    MongoDB Atlas :le DBaaS selon MongoDB En self-service, élastique et automatisé Sécurisé par défaut Haute disponibilité à l'échelle mondiale Sauvegardes continues Monitoring et optimisation en temps réel Ouverte à toutes les configurations cloud
  • 44.
    Les nouveautés d'Atlas ●MongoDB 3.6 disponible dans MongoDB Atlas (version GA) ● Réplication inter-régions ● Dimensionnement automatique du stockage ● Arrêt provisoire d'un cluster ● Assistant de performance disponible en continu ● Restaurations inter-projets Auto-storage scaling
  • 45.
  • 46.
    MongoDB 3.6 Évoluez àla vitesse de vos données Développement accéléré ● Change Streams ● Écritures réessayables ● Cohérence ajustable (Tunable Consistency) ● Compass ● Expressivité des requêtes et mises à jour granulaires des tableaux Scalabilité accélérée ● Ops Manager ● Validation de schéma ● Contrôles de sécurité ● Compression E2E ● Gestion multi-tenant Analyses accélérées ● BI Connector ● Pipeline d'agrégation enrichi ● Pilote R
  • 47.
  • 48.
    Prise en mainde MongoDB 3.6 • Téléchargez la version RC et lisez les notes de version • Lisez notre livre blanc consacré aux nouveautés de MongoDB 3.6 • Profitez d'une formation gratuite avec la MongoDB University • Nous pouvons vous aider : Service de montée de version
  • 49.