> Présentation du pipeline EDM (Enterprise Data Management, ou « gestion de données d'entreprise »)
> Problèmes actuels
> Brève présentation de MongoDB
> Les différentes étapes d'un pipeline EDM
> L'avenir de l'architecture EDM
> Étude de cas et scénarios
> Leçons tirées du Data Lake
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
Gestion des données d'entreprise à l'ère de MongoDB et du Data Lake
1. Gestion des données d'entreprise à
l'ère de MongoDB et du Data Lake
Matt Kalan
Architecte de solutions
matt.kalan@mongodb.com
@matthewkalan
2. Sommaire
1. Présentation du pipeline EDM (Enterprise Data
Management, ou « gestion de données d'entreprise »)
2. Problèmes actuels
3. Brève présentation de MongoDB
4. Les différentes étapes d'un pipeline EDM
5. L'avenir de l'architecture EDM
6. Étude de cas et scénarios
7. Leçons tirées du Data Lake
3. Pipeline de gestion des données d'entreprise…
Bases de données sources
cloisonnées
Flux externes
(lot)
Flux de diffusion
Icône de flux de diffusion sur https://en.wikipedia.org/wiki/File:Activity_Streams_icon.png
Transformer
Stocker des
données
brutes
AnalyserAgréger
Publicationsecondaire,ETL,importationsdefichiers
Traitement de flux de diffusion
Utilisateurs
Autres
systèmes
4. Conditions
actuellement requises pour la gestion des
données
Données
• Volume
• Vélocité
• Diversité
Temps
• Itératif
• Agile
• Cycles courts
Risque
• Toujours disponible
• Montée en charge
• Global
Coût
• Open Source
• Cloud
• Courant
6. Quelques précisions
• Les jointures superflues dégradent les
performances
• La montée en charge verticale ou horizontale de
ces systèmes est coûteuse
• Les schémas rigides compliquent la consolidation
• Ces systèmes ne sont pas adaptés aux données à
structures variables ou non structurées
• Les modèles courants peuvent provoquer des
différences dans les enregistrements et il sera
nécessaire de les supprimer lors de l'agrégation
• Les processus durent souvent plusieurs heures
d'un jour à l'autre
• Les données ne sont pas assez récentes pour
permettre une prise de décision ou une fidélisation
dans le courant de la journée
11. Les documents dynamisent les schémas et
optimisent les performances
Base de données relationnelle MongoDB
{ customer_id : 1,
first_name : "Mark",
last_name : "Smith",
city : "San Francisco",
phones: [
{
number : “1-212-777-1212”,
dnc : true,
type : “home”
},
number : “1-212-777-1213”,
type : “cell”
}]
}
ID client Prénom Nom Ville
0 John Doe New York
1 Mark Smith San Francisco
2 Jay Black Newark
3 Meagan White London
4 Edward Daniels Boston
Numéro de téléphone Type NPC ID client
1-212-555-1212 domicile T 0
1-212-555-1213 domicile T 0
1-212-555-1214 portable F 0
1-212-777-1212 domicile T 1
1-212-777-1213 portable (null) 1
1-212-888-1212 domicile F 2
12. Avantages du modèle basé sur des
documents
Agilité et flexibilité
Ce modèle de données prend en charge les évolutions
d'activités
Il permet une itération rapide pour répondre à de
nouvelles demandes
Représentation naturelle et intuitive des données
Suppression de la couche de mappage objet-relationnel
(ou ORM, pour Object-Relational Mapping)
Amélioration de la productivité des développeurs
Réduction du besoin de jointures et de recherches
sur le disque
Simplification de la programmation
Montée en charge performante
{
customer_id : 1,
first_name : "Mark",
last_name : "Smith",
city : "San Francisco",
phones: [
{
number : “1-212-777-1212”,
dnc : true,
type : “home”
},
number : “1-212-777-1213”,
type : “cell”
}]
}
13. Capacités techniques de MongoDB
Application
Pilote
Mongos
Primaire
Secondaire
Secondaire
Partition 1
Primaire
Secondaire
Secondaire
Partition 2
…
Primaire
Secondaire
Secondaire
Partition N
db.customer.insert({…})
db.customer.find({
name: ”John Smith”})
1.Schéma de document
dynamique
{ name: “John Smith”,
date: “2013-08-01”,
address: “10 3rd St.”,
phone: {
home: 1234567890,
mobile: 1234568138 }
}
2. Pilotes de langage natifs
5. Performances
élevées
- Localité des
données
- Index
- RAM
3. Haute
disponibilité
- Jeux de réplicas
6. Scalabilité horizontale
- Partitionnement
4. Isolement de la
charge de travail
- Lecture à partir
de membres
secondaires
14. Morphia
Pile MEAN
Java Python PerlRuby
Prise en charge des langages et
infrastructures les plus répandus
Pilotes et écosystèmes
15. 15
Amélioration de la localité
des données
Mise en cache en mémoire Index flexibles
Performances
vs.
Relational MongoDB
16. Montée en charge
250 M de
fluctuations/seco
nde
Plus
de 300 000 opér
ations/seconde
Plus
de 500 000 opér
ations/seconde
Agence fédérale
Performances
1 400 serveurs
Plus de
1 000 serveurs
Plus de
250 serveurs
Entreprise de
loisirs
Cluster
Pétaoctets
Dizaines de milliards
d'objets
13 milliards de
documents
Données
Société Internet
asiatique
17. Fonctionnalités de la version 3.2 adaptées
à la gestion de données d'entreprise
1. WiredTiger en tant que moteur de stockage par défaut
2. Moteur de stockage en mémoire
3. Chiffrement au repos
4. Règles de validation de document
5. Compass (affichage de données et développement de requêtes)
6. Connector pour BI (affichage)
7. $lookUp (jointure externe gauche)
18. Gouvernance des données avec validation
des documents
Mettez en place une gouvernance
des données sans sacrifier les
capacités d'agilité d'un schéma
dynamique
• Appliquez une norme de qualité pour vos
données entre plusieurs équipes et
applications
• Utilisez des expressions MongoDB
familières pour contrôler la structure de
vos documents
• La validation est facultative et peut
s'avérer aussi simple que pour un champ
unique, en se répétant pour tous les
champs, notamment pour l'existence, les
types de données et les expressions
régulières
19. MongoDB Compass
Pour accélérer la
détection de schéma et
construire des requêtes
ad hoc de façon visuelle
• Affichage de schéma
– Fréquence des champs
– Fréquence des types
– Choix des règles de
validation
• Affichage des documents
• Développement graphique
des requêtes
• Accès authentifié
20. MongoDB Connector pour BI
Affichez et parcourez des
documents multidimensionnels
à l'aide d'outils BI basés sur
SQL. Le connecteur effectue les
tâches suivantes :
• Fournit l'outil BI avec le schéma de la
collection MongoDB à afficher
• Traduit les instructions SQL émises
par l'outil BI en requêtes MongoDB
équivalentes, qui sont envoyées vers
MongoDB pour être traitées
• Convertit les résultats en un format
tabulaire attendu par l'outil BI, qui peut
ensuite afficher les données en
fonction des besoins de leurs
utilisateurs
21. Recherche dynamique
Utilisez des jointures externes gauche
pour combiner des données provenant
de plusieurs collections, afin d'affiner
vos analyses et améliorer la flexibilité de
la modélisation de vos données
• Mélangez des données de plusieurs sources afin
de les analyser
• Améliorez les performances de vos analyses tout
en réduisant le code de votre application, ce qui
facilite le travail de vos développeurs
• La recherche est effectuée via l'opérateur
$lookup, intégré dans le pipeline de MongoDB
Aggregation Framework
22. Aggregation Framework : analyse via pipeline
En partant de la collection d'origine, chaque
enregistrement (document) contient un
certain nombre de formes (clés), chacune
dotée d'une couleur précise (valeur)
• $match filtre les documents qui ne
contiennent pas de diamant rouge
• $project ajoute un nouvel attribut « carré »
dont la valeur est calculée à partir de la
valeur (couleur) des attributs en flocon et en
triangle
• $lookup procède à une jointure externe
gauche vers une autre collection, où l'étoile
sert de clé de comparaison
• Pour finir, l'étape $group regroupe les
données en fonction de la couleur du carré
et produit des statistiques pour chaque
groupe
24. 4e en terme de popularité, croissance la plus
rapide
RANG DBMS MODÈLE SCORE
CROISSANCE
(20 MO)
1. Oracle DBMS relationnel 1 442 -5 %
2. MySQL DBMS relationnel 1 294 2 %
3.
Microsoft SQL
Server
DBMS relationnel 1 131 -10 %
4. MongoDB Stockage de documents 277 172 %
5. PostgreSQL DBMS relationnel 273 40 %
6. DB2 DBMS relationnel 201 11 %
7. Microsoft Access DBMS relationnel 146 -26 %
8. Cassandra Colonne large 107 87 %
9. SQLite DBMS relationnel 105 19 %
Source : Classement des bases de données et des moteurs de
bases de données en terme de popularité ; mai 2015
Seule base de données non relationnelle dans le top 5 ; 2,5 fois plus populaire que le concurrent NoSQL le plus proche
25. Écosystème de partenaires (plus de 500)
* BI Connector (pilote ODBC) et $lookUp (jointure externe gauche) doivent être publiés avec la version 3.2
durant le 4e trimestre
26. 1. Espace de stockage de données
opérationnelles
2. Service de données d'entreprise
3. Datamart/Cache
4. Distribution de données de référence
5. Vue d'ensemble des opérations
6. Opérationnalisation de l'outil Hadoop
Modèles d'architecture MongoDB
Système
d'enregistrement
Système de
fidélisation
27. Connecteur Hadoop/Spark MongoDB
• Latence de moins d'une
seconde
• Requête expressive
• Indexation flexible
• Agrégations dans la base de
données
• Adapté à n'importe quel sous-
ensemble de données
• Tâches plus longues
• Analyses par lot
• Ajout de fichiers uniquement
• Idéal pour l'analyse de toutes
les données ou de sous-
ensembles volumineux dans
des fichiers
Traitement/analyse distribué(e)
- Connecteur MongoDB
pour Hadoop
- Spark-mongodb
Les deux fournissent :
• Schéma pour la lecture
• Réduction du coût
total de propriété
(TCO)
• Montée en charge
horizontale
28. Comment faire votre choix parmi les
produits de gestion dans le pipeline
EDM
29. Pipeline de gestion des données d'entreprise…
Bases de données sources
cloisonnées
Flux externes
(lot)
Flux de diffusion
Icône de flux de diffusion sur https://en.wikipedia.org/wiki/File:Activity_Streams_icon.png
Transformer
Stocker des
données
brutes
AnalyserAgréger
Publicationsecondaire,ETL,importationsdefichiers
Traitement de flux de diffusion
Utilisateurs
Autres
systèmes
30. Comment choisir la couche de gestion des
données pour chaque étape ou pour
l'ensemble des étapes ?
Couche de
traitement
?
Lorsque vous avez besoin :
1. D'index secondaires
2. D'une latence de moins
d'une seconde
3. D'agrégations dans votre
base de données
4. De mises à jour de vos
données
Pour :
1. Analyser des fichiers
2. Lorsque vous n'avez
pas besoin d'index
Stockage de colonne large
(par exemple : HBase)
Pour :
1. Requêtes de clé primaire
2. Si vous n'avez pas besoin
de plusieurs index et
tranches
3. Optimisé pour l'écriture,
mais pas pour la lecture
31. Transformer
…
Bases de données
sources
cloisonnées
Flux externes
(lot)
Flux de diffusion
Icône de flux de diffusion sur https://en.wikipedia.org/wiki/File:Activity_Streams_icon.png
AnalyserAgréger
Publicationsecondaire,ETL,importationsde
fichiers
Traitement de flux de diffusion
Utilisateurs
Autres
systèmes
Stockage de données pour un jeu de données brut
Stocker des
données
brutes
Utilisateurs
Transformer
- Habituellement utilisé pour l'écriture
successive des enregistrements d'une
source de données
- Généralement requis pour traiter les
volumes d'écriture élevés
- Prise en charge par les 3 options
Transformation des besoins de lecture
- Avantages de la lecture de plusieurs jeux de données
triés [par index], par exemple, pour effectuer une
fusion
- Utile pour effectuer une recherche entre des tables
avec des index (et en utilisant une fonctionnalité de
jointure dans MDB version 3.2)
- Besoin de performances de lecture élevées pendant
l'écriture
Les requêtes interactives
appliquées sur les données
brutes peuvent utiliser des
index avec MongoDB
32. Stocker des
données
brutes
Transformer
…
Bases de données
sources
cloisonnées
Flux externes
(lot)
Flux de diffusion
Icône de flux de diffusion sur https://en.wikipedia.org/wiki/File:Activity_Streams_icon.png
Analyser
Publicationsecondaire,ETL,importationsde
fichiers
Traitement de flux de diffusion
Utilisateurs
Autres
systèmes
Stockage de données pour un jeu de données
transformé
Utilisateurs
AgrégerTransformer
Améliore généralement la
mise à jour des données
durant la fusion de
plusieurs jeux de données
Les tableaux de bord et
les rapports peuvent être
associés à une latence de
moins d'une seconde
avec des index
Agréger les besoins de lecture
- Avantages de l'utilisation des index pour le regroupement
- Les agrégations en natif dans la base de données peuvent
s'avérer utile
- Peut effectuer des agrégations sur les tranches de données
avec des index
- Utile pour effectuer une recherche entre des tables avec des
index à agréger
33. Transformer
Stocker des
données
brutes
Transformer
…
Bases de données
sources
cloisonnées
Flux externes
(lot)
Flux de diffusion
Icône de flux de diffusion sur https://en.wikipedia.org/wiki/File:Activity_Streams_icon.png
Publicationsecondaire,ETL,importationsde
fichiers
Traitement de flux de diffusion
Utilisateurs
Autres
systèmes
Stockage de données pour un jeu de données
agrégé
Utilisateurs
AnalyserAgréger
Les tableaux de bord
et les rapports
peuvent être associés
à une latence de
moins d'une seconde
avec des index
Besoins de lecture d'analyse
- Pour l'analyse de toutes les données,
peut s'effectuer dans n'importe quel
stockage de données
- Généralement utilisé pour analyser une
tranche de données (à l'aide d'index)
- L'utilisation de requêtes en tranches
fonctionne mieux dans MongoDB
34. AgrégerTransformer
Stocker des
données
brutes
Transformer
…
Bases de données
sources
cloisonnées
Flux externes
(lot)
Flux de diffusion
Icône de flux de diffusion sur https://en.wikipedia.org/wiki/File:Activity_Streams_icon.png
Publicationsecondaire,ETL,importationsde
fichiers
Traitement de flux de diffusion
Utilisateurs
Stockage de données pour le dernier jeu de
données
Analyser
Utilisateurs
Les tableaux de bord
et les rapports
peuvent être associés
à une latence de
moins d'une seconde
avec des index
- Durant la dernière étape, il existe de
nombreux systèmes et utilisateurs
consommateurs
- Il faut employer des requêtes
expressives avec des index secondaires
- MongoDB constitue la meilleure option
pour la publication ou la distribution
des résultats d'analyse et
l'opérationnalisation des données
Autres
systèmesSouvent des applications
numériques
- À grande échelle
- Requête expressive
- JSON plus adapté
Généralement
pour des
services
RESTful, des
API
36. Architecture EDM plus complète et Data Lake…
Bases de données
sources cloisonnées
Flux externes
(lot)
Flux de diffusion
Icône de flux de diffusion sur https://en.wikipedia.org/wiki/File:Activity_Streams_icon.png
Pipeline de traitement de données
Publicationsecondaire,ETL,importationsdefichiers
Traitement de flux de diffusion
Systèmes en
amont
… …
Application
CSR unique
Applications
numériques
unifiées
Création de
rapports sur
les opérations
…
… …
Création de
rapports
d'analyse
Pilotes et piles
Mise en
cluster
client
Analyse
évolutive
Analyses
prédictives
…
Traitement distribué
Applications et création de rapports sur les opérations
Gouvernance pour
choisir où charger et
traiter les données
Emplacement optimal
pour fournir des délais
de réponse et des
tranches pour les
opérations
Possibilité d'exécuter
le traitement sur
toutes les données ou
les tranches
Data Lake
37. Exemples de scénarios
1. Affichage d'un seul client
a. Opérationnel
b. Analyse des segments du client
c. Analyse de tous les clients
2. Profils et mises en cluster des clients
3. Présentation des analyses évolutives des clients de grande valeur
38. Une des
20 principales
banques
internationales
Étude de cas
Plateforme de surveillance en temps réel unifiée pour les
canaux orientés clients via la plateforme de Big Data de
Stratio
Problème Pourquoi MongoDB Résultats
Problème Solution Résultats
Besoin d'une qualité de service
élevée sur des canaux en ligne
Plusieurs sources et flux de
données non exploités (journaux,
clics, interactions sociales, etc.)
Besoin de capacité de
surveillance des délais de
réponse du service et d'analyse
des causes fondamentales
Utilisation de Flume pour
journaliser les données,
MongoDB pour la persistance et
les indicateurs de performance
clés, et Spark pour l'analyse
Un modèle de données flexible
permettait la prise en charge d'un
grand nombre de données de
machines
La scalabilité linéaire facilitait la
gestion des chargements
supplémentaires pour chaque
source de données
La solution affecte l'infrastructure
de 31 pays et de 51 millions de
clients
Possibilité de respecter à présent
les ANS à travers l'infrastructure
L'amélioration des délais de
réponse améliore le taux de
satisfaction des clients, ainsi que
les revenus
39. Leçons tirées du Data Lake
1. Définir les objectifs
2. Concevoir l'étape à venir
3. Prendre en considération l'intégralité du cycle de vie des
données pour l'opérationnalisation
4. Planifier la gestion des métadonnées pour éviter le gaspillage
de données
5. Fournir une valeur commerciale de façon incrémentielle pour
l'étape suivante
6. Prendre une décision à propos de la couche de gestion des
données en fonction de l'utilisation future des données
(notamment pour les besoins de lecture)
7. MongoDB comble la plupart des lacunes en réduisant la
latence et en fournissant des index
40. Avantages de MongoDB et Hadoop combinés
au Data Lake
• Baisse du TCO pour le matériel courant
• Amélioration de l'agilité et accélération de la
commercialisation du schéma pour la lecture
• Plus grande précision des informations obtenues
en raison des différences de données exploitables
pour une analyse plus approfondie
• Réduction du coût des montées en charge pour
répondre aux ANS
• Données récentes permettant une prise de décision
en cours de journée
• Délais de réponse de latence faibles
• Utilisation facultative des ressources avec
l'indexation
• Amélioration globale des informations et de l'impact
commercial
41. Pour en savoir plus
Ressource Emplacement
Didacticiel pour l'opérationnalisation de
Spark avec MongoDB
www.mongodb.com/blog/post/tutorial-for-operationalizing-
spark-with-mongodb
Utilisation de MongoDB avec Hadoop et
Spark
www.mongodb.com/blog/post/using-mongodb-hadoop-spark-
part-1-introduction-setup
Références de scalabilité
www.mongodb.com/collateral/scalability-benchmarking-
mongodb-and-nosql-systems-report
Études de cas mongodb.com/customers
Présentations mongodb.com/presentations
Formation en ligne gratuite education.mongodb.com
Webinaires et événements mongodb.com/events
Documentation docs.mongodb.org
Téléchargements MongoDB mongodb.com/download
Notas del editor
Le traitement des flux de diffusion est généralement situé sur un niveau de traitement distinct de celui du traitement par lot, mais il peut être stocké dans les magasins de données à différentes étapes.
À présent que nous comprenons vos objectifs et certaines des difficultés que vous rencontrez, je vais vous expliquer pourquoi nous avons développé MongoDB et en quoi nous pouvons vous être utile.
À l'origine, nous avons remarqué certaines évolutions commerciales et technologies sur le marché. Nous avons conçu MongoDB pour répondre à ces changements…
Données [essayez d'établir un lien avec les informations obtenues auprès du client]
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
Les données non structurées augmentent 2 fois plus vite que les données structurées
Délais [essayez d'établir un lien avec les informations obtenues auprès du client]
Les méthodes de développement ne sont plus en cascade (12 à 24 mois), mais itératives
C'est pourquoi des sociétés de pointe, telles que Facebook ou Etsy, expédient du code plusieurs fois par jour
Risques [essayez d'établir un lien avec les informations obtenues auprès du client]
Les bases d'utilisateurs ne sont plus internes (milliers d'utilisateurs), mais externes (millions d'utilisateurs)
Défaillance impossible
À l'échelle mondiale
Coûts [essayez d'établir un lien avec les informations obtenues auprès du client]
Les modèles économiques ont basculé vers l'Open Source et le SaaS pour un paiement selon la valeur au fil du temps
Possibilité d'exploiter le Cloud et les architectures les plus courantes pour réduire les coûts d'infrastructure
Observons les autres technologies disponibles sur le marché...
Les bases de données relationnelles ont posé les fondations de ce que vous attendez de votre base de données
Un accès aux données complet et rapide, à l'aide d'un langage de requête expressif et d'index secondaires
Une cohérence forte, pour toujours exécuter la version la plus récente de vos données
Ces bases ne sont toutefois plus adaptées au monde actuel
Elles sont développées pour des cycles de développement en cascade et des données structurées
Elles sont conçues pour des utilisateurs internes et non pas de nombreux utilisateurs à travers le monde
(elles proviennent de fournisseurs souhaitant collecter d'importants frais de licence à l'avance)
--> Ce qu'elles gagnent en matière d'accès aux données et en cohérence, elles le perdent en flexibilité, scalabilité et performance
Pourrait être plus visuel
Nous avons conçu MongoDB pour répondre aux changements actuels tout en préservant les principales capacités de base de données requises pour développer des applications fonctionnelles.
MongoDB est la seule base de données exploitant les innovations du NoSQL tout en conservant les fondements des bases de données relationnelles.
Nous avons conçu MongoDB pour répondre aux changements actuels tout en préservant les principales capacités de base de données requises pour développer des applications fonctionnelles.
MongoDB est la seule base de données exploitant les innovations du NoSQL tout en conservant les fondements des bases de données relationnelles.
Pour en savoir plus : http://www.mongodb.com/mongodb-scale
Suivi de l'étendue de Kernel 3.2 (en anglais) : https://docs.google.com/spreadsheets/d/1L1EbbWoshUIHXBzCh5e3sALtAFxm_dJ52SRPR6GzeAY/edit#gid=0
Notes de publication de la version 3.1.6 (en anglais) : http://docs.mongodb.org/manual/release-notes/3.1-dev-series/
Choix des règles de validation : Vous pouvez utiliser l'outil pour définir les règles de validation de votre choix
$lookup : crée des documents contenant tous les éléments provenant de l'étape précédente, ainsi que les données de n'importe quel document de la seconde collection contenant une étoile de la couleur correspondante (par exemple, des valeurs correspondent aux étoiles bleues et jaunes, mais ce n'est pas le cas pour l'étoile rouge)
Pour la création de rapports, plusieurs fournisseurs d'aide à la décision (ou « BI », pour « Business Intelligence ») ont développé des connecteurs pour intégrer MongoDB à leurs suites, en tant que source de données, conjointement à des bases de données relationnelles traditionnelles. Cette intégration permet d'utiliser les données MongoDB pour créer des rapports, afficher des représentations graphiques et mettre en place des tableaux de bord
Le traitement des flux de diffusion est généralement situé sur un niveau de traitement distinct de celui du traitement par lot, mais il peut être stocké dans les magasins de données à différentes étapes.
Un seul diagramme logique. Le traitement peut s'effectuer sur les mêmes serveurs physiques que les nœuds de stockage, afin de réduire le déplacement des données