SlideShare une entreprise Scribd logo
1  sur  49
Télécharger pour lire hors ligne
27/11/2019 1
Comparatifs des familles NoSQL & concepts de modélisation
ConnectedWeek Angers 2019 - Alexandre Bergere
2
Avanade
2016 - 2019
Sr Anls, Data Engineering
Data Analyst & Data Architect
Freelance
ESAIP
Teacher
2016 - x
Data Freelance
2019 - x
OpenClassroom
Mentor
2019 - x
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere
Alexandre BERGERE
Le monde RGBD …
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 3
1970 1980 1990 2000 2010
Oracle
DB2
SQL Server
Access
MySQL
PostgreSQL
OLTP OLAP
Transaction Analytical
… connait ses limites
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 4
De plus en plus de données
Données très variées (iot, réseaux sociaux,
temporaire, schémas évolutifs, séries
temporaires …)
0101010100101010101010101010100101010111101010
1010000101010010100101010101000101010010100100
1010010010101001001010010101010101001010101010
1010101010010101011110101010100001010100101001
0101010100010101001010010010100100101010010010
1001010101010100101010101010101010100101010111
1010101010000101010010100101010101000101010010
1001001010010010101001001010010101010101001010
1010101010101010010101011110101010100001010100
1010010101010100010101001010010010100100101010
0100101001010101010100101010101010101010100101
0101111010101010000101010010100101010101000101
0100101001001010010010101001001010010101010101
0010101010101010101010010101011110101010100001
0101001010010101010100010101001010010010100100
1010100100101001010101010100101010101010101010
1001010101111010101010000101010010100101010101
0001010100101001001010010010101001001010010101
0101010010101010101010101010010101011110101010
1000010101001010010101010100010101001010010010
1001001010100100101001010101010100101010101010
1010101001010101111010110100101010111101001010
1011110100101010111101001010101111010010101011
1101001010101111010010101011110100101010111101
0000000001010101111010010101011110100101010111
No SQL
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 5
No SQL couvre plusieurs concepts:
o Non relational databases
o Not Only SQL
o NoSQL
Pourquoi?
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 6
o Gestion de grands volumes de données structurées, semi-structurées et non structurées qui
changent rapidement.
o Adaptés aux sprints agiles, itérations rapides de schémas et push fréquents (CI/CD)
o Orienté API & programmation objet permettant une utilisation plus flexible et plus simple
o Technologie distribuée
De nombreuses bases de données …
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 7
1970 1980 1990 2000 2010
Oracle
DB2
SQL Server
Access
MySQL
PostgreSQL
Cassandra
HBase
MongoDB
Redis
Elasticsearch
Dynamo DB
Neo4j
CouchDB
Cosmos DB
BigQuery
… et différents modèles
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 8
Relational data store HDFS Key Value data store Columnar data store
Search data store Graph data store Document data store
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 9
Démystifier les bases NoSQL Avoir quelques technologies
à « essayer à la maison »
Comprendre les différentes
modélisation et leurs cas
d’usage
Objectifs de la présentation
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 10
Fichiers orientée colonnes
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 11
Optimized Row Columnar
File System
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 12
o Gratuit & Open Source (Apache)
o Compression efficace des données
o Conçu pour la performance sur de grands
ensembles de données
o Fichiers divisibles par bloc, permettant une
meilleur optimisation des fichiers
o Performances d'interrogation accrues par
rapport aux magasins de données basés sur
les lignes (python, R, Power BI …)
Pers_ID Surname First_Name City
0 Miller Paul London
1 Ortega Alvaro Valencia
0 Miller Paul London 1 Ortega Alvaro Valencia
0 1 Miller Ortega Paul Alvaro London Valencia
Format ligne
Format colonne
Object store
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 14
Azure blob storage
On Premise Cloud Provider
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 15
Base de données orientée documents
Document
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 16
Pers_ID Surname First_Name City
0 Miller Paul London
1 Ortega Alvaro Valencia
2 Huber Urs Zurich
3 Blanc Gaston Paris
4 Bertolini Fabrizio Rome
Car_ID Model Year Value Pers_ID
101 Bently 1973 100000 0
102 Rolls Royce 1965 330000 0
103 Peugot 1993 500 3
104 Ferrari 2005 150000 4
105 Renault 1998 2000 3
106 Renault 2001 7000 3
107 Smart 1999 2000 2
CAR
PERSON
Document Model
RDBMS
Flexibles
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 17
Mongo DB
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 18
Leader in The Forrester Wave™: Big Data NoSQL, Q1 2019
Created in 2007 & first release
in 2010.
Des données structures riches
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 19
• JSON:
• String, Number, Array, Object, NULL, Boolean.
• BSON:
• Date, BinData, ObjectID, Geo-Location.
• Better storage performance.
ObjectID:
◦ _id : 'DATE[4] | MAC_ADDR[3] | PID[2] | COUNTER[3]
> find
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 20
# FIND()
> db.<collection>.find ({<conditions>},{<champs>})
> db.products.find( { qty: { $gt: 25 } }, { item: 1, qty: 1 } )
# Options:
>
.pretty()
.sort() : 1 : ASC, -1: DESC :
sort({‘name’:-1})
.skip() : number
.limit() : number
.count()
> update
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 21
# UPDATE()
> db.<collection>.update
({<conditions>},{<champs>},{upsert:true/false},{multi:true/false})
> { "_id": "artist:281", "last_name": "Cotillard", "first_name": "Marion", "birth_date": "1975" }
# Operator Update:
> db.artists.update({"_id": "artist:281"},{ $set : {"last_name" : "Page"}})
> { "_id": "artist:281", "last_name": “Page", "first_name": "Marion", "birth_date": "1975" }
# Replacement Update:
> db.artists.update({"_id": "artist:281"},{"last_name" : "Page"})
> { "_id": "artist:281", "last_name": “Page"}
> update
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 22
# UPDATE()
> db.<collection>.update ({<conditions>},{<champs>}
,{upsert:true/false}
,{multi:true/false}
)
> db.pageview.update({'_id':’/companies/users'},{$inc:{'views':1}},{upsert:true})
Upsert: Si valeur à vrai, créé un nouveau document, lorsque le document n’existe pas.
Multi: Si valeur à faux, met à jours uniquement le premier document.
démo
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 23
Visualize, understand, and work with your geospatial data
Point and click to construct sophisticated queries, execute
them with the push of a button and Compass will display your
results both graphically and as sets of JSON documents.
A better approach to CRUD makes it easier to interact with your
data
Modify existing documents with greater confidence using the
intuitive visual editor, or insert new documents and clone or
delete existing ones in just a few clicks.
démo
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 24
démo
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 25
Cas d’usage
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 26
o Application Web
o Schémas évolutif ou discontinue
o Développement Agile
o Analytics et logs
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 27
https://console.firebase.google.com/
o Temps réel & base document
o Base à froid
o Identification
o Machine Learning
o Hébergement
Firebase
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 28
Base de données graph
Qu’est ce qu’un graph ?
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 29
Un graph est une collection de noeud (vertices) et de relations (edges), soit un ensemble de noeuds et de
relations qui se connectent les unes aux autres.
RDBMS vs graph
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 30
Movie
Review
Person
1..n
1..1
1..1
1..n
Neo4j
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 31
Q3 2016 Q1 2019
Cypher
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 32
MATCH (variable:Label {propertyKey: propertyValue, propertyKey2: propertyValue2})
RETURN variable
MATCH (m:Movie {released: 2003, tagline: 'Free your mind'})
RETURN m
Cypher
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 33
Using a relationship in a query:
MATCH (p:Person)-[rel:ACTED_IN]->(m:Movie {title: 'The Matrix'})
RETURN p, rel, m
Variables:
o p to represent the Person nodes during the query, the
variable
o m to represent the Movie node retrieved
o rel to represent the relationship for the relationship
type, ACTED_IN
démo
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 34
démo
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 35
démo
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 36
Cas d’usage
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 37
o Détection de fraudes
o Réseaux sociaux
o Recommandation de produits
o Géolocalisation & recherche de chemin le plus court
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 38
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 39
Search data store
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 40
o Moteur de stockage et de recherche de données
o Recherche par poids de mot :
o Fréquence dans le document
o Taille du document
o Fréquence dans tous les documents
o Moteur de recherche distribué avec de l’analyse en temps réel
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 41
Azure Search
Outils
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 42
DB-Engines Ranking
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 43
https://db-engines.com/en/ranking_trend
Trend Popularity
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 44
Hackolade is a visual data modeling software for the leading NoSQL databases, Hadoop, and for Swagger API
design:
https://hackolade.com/
Ressources
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 45
Aller plus loin !
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 46
https://openclassrooms.com/fr/courses/4462426-maitrisez-les-bases-de-
donnees-nosql/4462433-choisissez-votre-famille-nosql
Mongo DB
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 47
MongoDB in action, 2nd
Edition docs.mongodb.com university.mongodb.com
Neo4j
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 48
https://neo4j.com/books/
https://neo4j.com/graphacademy/
Firebase
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 49
https://firebase.google.com/docs/firestore
https://codelabs.developers.google.com/codelabs/firestore-web
50
alexandre.bergere@gmail.com
27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere
https://fr.linkedin.com/in/alexandrebergere @AlexPhile https://www.slideshare.net/AlexandreBERGERE

Contenu connexe

En vedette

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

En vedette (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

comparatifs des familles NoSQL & concepts de modélisation

  • 1. 27/11/2019 1 Comparatifs des familles NoSQL & concepts de modélisation ConnectedWeek Angers 2019 - Alexandre Bergere
  • 2. 2 Avanade 2016 - 2019 Sr Anls, Data Engineering Data Analyst & Data Architect Freelance ESAIP Teacher 2016 - x Data Freelance 2019 - x OpenClassroom Mentor 2019 - x 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere Alexandre BERGERE
  • 3. Le monde RGBD … 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 3 1970 1980 1990 2000 2010 Oracle DB2 SQL Server Access MySQL PostgreSQL OLTP OLAP Transaction Analytical
  • 4. … connait ses limites 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 4 De plus en plus de données Données très variées (iot, réseaux sociaux, temporaire, schémas évolutifs, séries temporaires …) 0101010100101010101010101010100101010111101010 1010000101010010100101010101000101010010100100 1010010010101001001010010101010101001010101010 1010101010010101011110101010100001010100101001 0101010100010101001010010010100100101010010010 1001010101010100101010101010101010100101010111 1010101010000101010010100101010101000101010010 1001001010010010101001001010010101010101001010 1010101010101010010101011110101010100001010100 1010010101010100010101001010010010100100101010 0100101001010101010100101010101010101010100101 0101111010101010000101010010100101010101000101 0100101001001010010010101001001010010101010101 0010101010101010101010010101011110101010100001 0101001010010101010100010101001010010010100100 1010100100101001010101010100101010101010101010 1001010101111010101010000101010010100101010101 0001010100101001001010010010101001001010010101 0101010010101010101010101010010101011110101010 1000010101001010010101010100010101001010010010 1001001010100100101001010101010100101010101010 1010101001010101111010110100101010111101001010 1011110100101010111101001010101111010010101011 1101001010101111010010101011110100101010111101 0000000001010101111010010101011110100101010111
  • 5. No SQL 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 5 No SQL couvre plusieurs concepts: o Non relational databases o Not Only SQL o NoSQL
  • 6. Pourquoi? 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 6 o Gestion de grands volumes de données structurées, semi-structurées et non structurées qui changent rapidement. o Adaptés aux sprints agiles, itérations rapides de schémas et push fréquents (CI/CD) o Orienté API & programmation objet permettant une utilisation plus flexible et plus simple o Technologie distribuée
  • 7. De nombreuses bases de données … 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 7 1970 1980 1990 2000 2010 Oracle DB2 SQL Server Access MySQL PostgreSQL Cassandra HBase MongoDB Redis Elasticsearch Dynamo DB Neo4j CouchDB Cosmos DB BigQuery
  • 8. … et différents modèles 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 8 Relational data store HDFS Key Value data store Columnar data store Search data store Graph data store Document data store
  • 9. 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 9 Démystifier les bases NoSQL Avoir quelques technologies à « essayer à la maison » Comprendre les différentes modélisation et leurs cas d’usage Objectifs de la présentation
  • 10. 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 10 Fichiers orientée colonnes
  • 11. 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 11 Optimized Row Columnar
  • 12. File System 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 12 o Gratuit & Open Source (Apache) o Compression efficace des données o Conçu pour la performance sur de grands ensembles de données o Fichiers divisibles par bloc, permettant une meilleur optimisation des fichiers o Performances d'interrogation accrues par rapport aux magasins de données basés sur les lignes (python, R, Power BI …) Pers_ID Surname First_Name City 0 Miller Paul London 1 Ortega Alvaro Valencia 0 Miller Paul London 1 Ortega Alvaro Valencia 0 1 Miller Ortega Paul Alvaro London Valencia Format ligne Format colonne
  • 13. Object store 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 14 Azure blob storage On Premise Cloud Provider
  • 14. 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 15 Base de données orientée documents
  • 15. Document 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 16 Pers_ID Surname First_Name City 0 Miller Paul London 1 Ortega Alvaro Valencia 2 Huber Urs Zurich 3 Blanc Gaston Paris 4 Bertolini Fabrizio Rome Car_ID Model Year Value Pers_ID 101 Bently 1973 100000 0 102 Rolls Royce 1965 330000 0 103 Peugot 1993 500 3 104 Ferrari 2005 150000 4 105 Renault 1998 2000 3 106 Renault 2001 7000 3 107 Smart 1999 2000 2 CAR PERSON Document Model RDBMS
  • 16. Flexibles 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 17
  • 17. Mongo DB 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 18 Leader in The Forrester Wave™: Big Data NoSQL, Q1 2019 Created in 2007 & first release in 2010.
  • 18. Des données structures riches 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 19 • JSON: • String, Number, Array, Object, NULL, Boolean. • BSON: • Date, BinData, ObjectID, Geo-Location. • Better storage performance. ObjectID: ◦ _id : 'DATE[4] | MAC_ADDR[3] | PID[2] | COUNTER[3]
  • 19. > find 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 20 # FIND() > db.<collection>.find ({<conditions>},{<champs>}) > db.products.find( { qty: { $gt: 25 } }, { item: 1, qty: 1 } ) # Options: > .pretty() .sort() : 1 : ASC, -1: DESC : sort({‘name’:-1}) .skip() : number .limit() : number .count()
  • 20. > update 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 21 # UPDATE() > db.<collection>.update ({<conditions>},{<champs>},{upsert:true/false},{multi:true/false}) > { "_id": "artist:281", "last_name": "Cotillard", "first_name": "Marion", "birth_date": "1975" } # Operator Update: > db.artists.update({"_id": "artist:281"},{ $set : {"last_name" : "Page"}}) > { "_id": "artist:281", "last_name": “Page", "first_name": "Marion", "birth_date": "1975" } # Replacement Update: > db.artists.update({"_id": "artist:281"},{"last_name" : "Page"}) > { "_id": "artist:281", "last_name": “Page"}
  • 21. > update 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 22 # UPDATE() > db.<collection>.update ({<conditions>},{<champs>} ,{upsert:true/false} ,{multi:true/false} ) > db.pageview.update({'_id':’/companies/users'},{$inc:{'views':1}},{upsert:true}) Upsert: Si valeur à vrai, créé un nouveau document, lorsque le document n’existe pas. Multi: Si valeur à faux, met à jours uniquement le premier document.
  • 22. démo 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 23 Visualize, understand, and work with your geospatial data Point and click to construct sophisticated queries, execute them with the push of a button and Compass will display your results both graphically and as sets of JSON documents. A better approach to CRUD makes it easier to interact with your data Modify existing documents with greater confidence using the intuitive visual editor, or insert new documents and clone or delete existing ones in just a few clicks.
  • 23. démo 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 24
  • 24. démo 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 25
  • 25. Cas d’usage 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 26 o Application Web o Schémas évolutif ou discontinue o Développement Agile o Analytics et logs
  • 26. 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 27 https://console.firebase.google.com/ o Temps réel & base document o Base à froid o Identification o Machine Learning o Hébergement Firebase
  • 27. 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 28 Base de données graph
  • 28. Qu’est ce qu’un graph ? 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 29 Un graph est une collection de noeud (vertices) et de relations (edges), soit un ensemble de noeuds et de relations qui se connectent les unes aux autres.
  • 29. RDBMS vs graph 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 30 Movie Review Person 1..n 1..1 1..1 1..n
  • 30. Neo4j 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 31 Q3 2016 Q1 2019
  • 31. Cypher 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 32 MATCH (variable:Label {propertyKey: propertyValue, propertyKey2: propertyValue2}) RETURN variable MATCH (m:Movie {released: 2003, tagline: 'Free your mind'}) RETURN m
  • 32. Cypher 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 33 Using a relationship in a query: MATCH (p:Person)-[rel:ACTED_IN]->(m:Movie {title: 'The Matrix'}) RETURN p, rel, m Variables: o p to represent the Person nodes during the query, the variable o m to represent the Movie node retrieved o rel to represent the relationship for the relationship type, ACTED_IN
  • 33. démo 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 34
  • 34. démo 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 35
  • 35. démo 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 36
  • 36. Cas d’usage 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 37 o Détection de fraudes o Réseaux sociaux o Recommandation de produits o Géolocalisation & recherche de chemin le plus court
  • 37. 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 38
  • 38. 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 39 Search data store
  • 39. 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 40 o Moteur de stockage et de recherche de données o Recherche par poids de mot : o Fréquence dans le document o Taille du document o Fréquence dans tous les documents o Moteur de recherche distribué avec de l’analyse en temps réel
  • 40. 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 41 Azure Search
  • 41. Outils 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 42
  • 42. DB-Engines Ranking 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 43 https://db-engines.com/en/ranking_trend Trend Popularity
  • 43. 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 44 Hackolade is a visual data modeling software for the leading NoSQL databases, Hadoop, and for Swagger API design: https://hackolade.com/
  • 44. Ressources 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 45
  • 45. Aller plus loin ! 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 46 https://openclassrooms.com/fr/courses/4462426-maitrisez-les-bases-de- donnees-nosql/4462433-choisissez-votre-famille-nosql
  • 46. Mongo DB 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 47 MongoDB in action, 2nd Edition docs.mongodb.com university.mongodb.com
  • 47. Neo4j 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 48 https://neo4j.com/books/ https://neo4j.com/graphacademy/
  • 48. Firebase 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere 49 https://firebase.google.com/docs/firestore https://codelabs.developers.google.com/codelabs/firestore-web
  • 49. 50 alexandre.bergere@gmail.com 27/11/2019 ConnectedWeek Angers 2019 - Alexandre Bergere https://fr.linkedin.com/in/alexandrebergere @AlexPhile https://www.slideshare.net/AlexandreBERGERE