SlideShare a Scribd company logo
201301 - Panorama NoSQL
LE SPEAKER
RÉMY GIRODON


+ FOLLOW ME !
 •
 •    @rgirodon
201301 - Panorama NoSQL
SOMMAIRE
PANORAMA NOSQL


LE CONSTAT ACTUEL
  AVANTAGES ET LIMITES DU RELATIONNEL

LA PERCÉE NOSQL
 QUELQUES POINTS DE CONVERGENCE
 BEAUCOUP DE DISPARITÉS

FOCUS PRODUITS
 FOCUS REDIS
 FOCUS CASSANDRA
 FOCUS MONGODB
 FOCUS NEO4J
SOMMAIRE
PANORAMA NOSQL


LE CONSTAT ACTUEL
  AVANTAGES ET LIMITES DU RELATIONNEL

LA PERCÉE NOSQL
 QUELQUES POINTS DE CONVERGENCE
 BEAUCOUP DE DISPARITÉS

FOCUS PRODUITS
 FOCUS REDIS
 FOCUS CASSANDRA
 FOCUS MONGODB
 FOCUS NEO4J
LE CONSTAT ACTUEL
RELATIONNEL EVERYWHERE


+ UN DATA MODEL
       NATUREL ET INTUITIF
       PROPRE : NORMALISATION DES DONNÉES
LE CONSTAT ACTUEL
RELATIONNEL EVERYWHERE


+ STANDARDISATION ET RICHESSE DU LANGAGE SQL
 •Création des tables
 •Définition des contraintes
 •Manipulation des données
         REQUÊTES
         INSERT
         UPDATE
         DELETE
         PROCÉDURES STOCKÉES
 •Définition d’Index
LE CONSTAT ACTUEL
RELATIONNEL EVERYWHERE


+ DESIGNED FOR ACID
       ATOMICITÉ


       COHÉRENCE


       ISOLATION


       DURABILITÉ
LE CONSTAT ACTUEL
RELATIONNEL EVERYWHERE


+ UNE OFFRE TRÈS VASTE
LE CONSTAT ACTUEL
LES LIMITES DU RELATIONNEL


+ DATA CHANGE
LE CONSTAT ACTUEL
LES LIMITES DU RELATIONNEL


+ DATA CHANGE
LE CONSTAT ACTUEL
LES LIMITES DU RELATIONNEL


+ DATA CHANGE
LE CONSTAT ACTUEL
LES LIMITES DU RELATIONNEL




+ EN UN MOT LE RELATIONNEL C’EST SUPER !
LE CONSTAT ACTUEL
LES LIMITES DU RELATIONNEL




+ MAIS PAS POUR TOUT !
SOMMAIRE
PANORAMA NOSQL


LE CONSTAT ACTUEL
  AVANTAGES ET LIMITES DU RELATIONNEL

LA PERCÉE NOSQL
 QUELQUES POINTS DE CONVERGENCE
 BEAUCOUP DE DISPARITÉS

FOCUS PRODUITS
 FOCUS REDIS
 FOCUS CASSANDRA
 FOCUS MONGODB
 FOCUS NEO4J
LA PERCÉE NOSQL
1 TERME, 1000 POSSIBILITÉS


+ WELCOME TO THE JUNGLE BABY !
LA PERCÉE NOSQL
QUELQUES POINTS DE CONVERGENCE
LA PERCÉE NOSQL
QUELQUES POINTS DE CONVERGENCE
LA PERCÉE NOSQL
QUELQUES POINTS DE CONVERGENCE
LA PERCÉE NOSQL
BEAUCOUP DE DISPARITÉS


+ 4 GRANDES FAMILLES DE STORES
 •Key-Value Stores
 •Column-Oriented Stores
 •Document-Oriented Stores
 •Graph-Oriented Stores

+ DIFFÉRENCES FONDAMENTALES
 •Dans le Data Model
 •Dans la façon de requêter la base

+ ADAPTÉ À DES USE-CASES DIFFÉRENTS !
LA PERCÉE NOSQL
KEY-VALUE STORES
LA PERCÉE NOSQL
COLUMN-ORIENTED STORES
LA PERCÉE NOSQL
DOCUMENT-ORIENTED STORES
LA PERCÉE NOSQL
GRAPH-ORIENTED STORES
LA PERCÉE NOSQL
BEAUCOUP DE DISPARITÉS




+ CONNAÎTRE A MINIMA LES DIFFÉRENTS PRODUITS
 •Data Model
 •Features de Requêtage
LA PERCÉE NOSQL
BEAUCOUP DE DISPARITÉS




+ FAIRE LE BON CHOIX POUR SON USE-CASE
 MÉTIER !
SOMMAIRE
PANORAMA NOSQL


LE CONSTAT ACTUEL
  AVANTAGES ET LIMITES DU RELATIONNEL

LA PERCÉE NOSQL
 QUELQUES POINTS DE CONVERGENCE
 BEAUCOUP DE DISPARITÉS

FOCUS PRODUITS
 FOCUS REDIS
 FOCUS CASSANDRA
 FOCUS MONGODB
 FOCUS NEO4J
FOCUS PRODUITS
REDIS


+ DESCRIPTIF RAPIDE
Simplicity                     Speed




                 Reliability
FOCUS PRODUITS
REDIS


+ LE DATA MODEL                                     Database

        5 Data Types

         id_14   String         String commands        Row


         id_15   List            List commands         Row


         id_16   Set             Set commands
                                                       Row


         id_17   Sorted Set   Sorted Set commands      Row


         id_18   Hash           Hash commands          Row
FOCUS PRODUITS
REDIS


+ STRING COMMANDS




+ USAGE
 •Cache Provider
 •Session Manager
 •Counters
 •ID Generators
FOCUS PRODUITS
REDIS


+ LIST COMMANDS




+ USAGE
 •Real lists
 •Time Series
 •Queues / Workers
FOCUS PRODUITS
REDIS


+ SET COMMANDS




+ USAGE
 •Real Sets
 •Relations
FOCUS PRODUITS
REDIS


+ ZSET COMMANDS




+ USAGE
 •Scores
 •Inverted Index
FOCUS PRODUITS
REDIS


+ HASHES COMMANDS




+ USAGE
 •Structured Data
FOCUS PRODUITS
REDIS


+ ADDITIONNAL FEATURES
 •Transactions

 •Publish / Subscribe

 •Write to Disk
        CLASSIC DUMP
        APPEND ONLY

 •Replication
        MASTER / SLAVES
SOMMAIRE
PANORAMA NOSQL


LE CONSTAT ACTUEL
  AVANTAGES ET LIMITES DU RELATIONNEL

LA PERCÉE NOSQL
 QUELQUES POINTS DE CONVERGENCE
 BEAUCOUP DE DISPARITÉS

FOCUS PRODUITS
 FOCUS REDIS
 FOCUS CASSANDRA
 FOCUS MONGODB
 FOCUS NEO4J
FOCUS PRODUITS
CASSANDRA


+ HISTORIQUE RAPIDE
FOCUS PRODUITS
CASSANDRA


+ LE DATA MODEL                            Keyspace : userAppKeyspace

   Column Family : users
         id_14   {
                     company_name : "SQLI",
                                                              Row
                     company_agence : “Lyon",
                     company_standard : "0472405353“
                     user_firstname: "Rémy",
                     user_lastname: "Girodon",           Columns
                     user_skill_1: ”java”,
                     user_skill_2: ”cassandra”
     }

         id_15   {
                     …                                        Row
     }

         id_16   {
                     …                                        Row
     }
FOCUS PRODUITS
CASSANDRA


+ LE DATA MODEL FAÇON SIMPLE
 •Column
        TRIPLET NAME / VALUE / TIMESTAMP


 •Row
        UNE CLÉ
        UN ENSEMBLE DE COLUMNS TRIÉ PAR NAME


 •Column families
        UN ENSEMBLE DE ROWS
FOCUS PRODUITS
CASSANDRA


+ MAIS PAS SI SIMPLE !
 •Column
          L E N A M E P E U T S T O C K E R D E L’ I N F O R M AT I O N
          ( PA S U N I Q U E M E N T U N E S T R I N G ! )


 •R o w
          PEUT CONTENIR PLUSIEURS MILLIONS DE
          COLONNES
          PA S D E S C H E M A I M P O S É
FOCUS PRODUITS
CASSANDRA


+ LE DATA MODEL                        Keyspace : serverAppKeyspace

   Column Family : serverConnections

         id_14   {                                                Row
                     name : “www.sqli.com",
                     2012-09-19 11:36:12:134 : “10.33.198.67",
                     2012-09-19 11:36:12:628 : “10.33.198.68",
                     2012-09-19 11:36:12:981 : “10.33.198.67",   Columns
                     2012-09-19 11:36:13:062 : “10.33.198.69",
                 }


         id_15   {
                     …                                            Row
     }

         id_16   {
                     …                                            Row
     }
FOCUS PRODUITS
CASSANDRA


+REQUÊTAGE VIA L’API
 •Au niveau Row

      RÉCUPÉRER TOUTES LES ROWS


      RÉCUPÉRER UNE ROW VIA SA KEY


      RÉCUPÉRER UNE LISTE DE ROWS VIA
      UNE LISTE DE KEYS
FOCUS PRODUITS
CASSANDRA


+REQUÊTAGE VIA L’API
 •Au niveau Column


       RÉCUPÉRER TOUTES LES COLUMNS


       RÉCUPÉRER UNE COLUMN VIA SON NAME


       RÉCUPÉRER UNE LISTE DE COLUMNS VIA UNE
       LISTE DE NAMES


       RÉCUPÉRER UN RANGE DE COLUMNS
FOCUS PRODUITS
CASSANDRA


+REQUÊTAGE VIA CQL

 •SELECT * FROM users WHERE KEY = "id_14";
 •
 •UPDATE users
 •SET "email" = "rgirodon@example.com",
 •     "phone" = "0472405353"
 •WHERE KEY = "id_14";
FOCUS PRODUITS
CASSANDRA


+REQUÊTAGE VIA CQL
 •SELECT "2012-09-19 00:00:00:000"
 •          .. "2012-09-19 23:59:59:999"
 •FROM serverConnections
 •WHERE KEY = "id_14";
FOCUS PRODUITS
CASSANDRA


+REQUÊTAGE VIA CQL

 •CREATE INDEX email_key ON users (email);


 •SELECT * FROM users
 •WHERE "email" = "rgirodon@example.com";
FOCUS PRODUITS
CASSANDRA


+ BUILT-IN CLUSTERING
                                   Keys
         Keys
                                  20..30
        10..20
                  N2    N3




Keys                                          Keys
          N1                         N4      30..40
0..10




                  N6         N5      Keys
          Keys
                                    40..50
         50..60
FOCUS PRODUITS
CASSANDRA


+TUNABLE REPLICATION
                                       Replication
            N2         N3
                        K1
                                       Factor = 2




       N1                         N4




            N6              N5
                             K1
FOCUS PRODUITS
    CASSANDRA


    +TUNABLE CONSISTENCY
    Client                N2   N3




Reads on any node    N1                  N4

  Indicates a
Consistency level

   Read repair
                          N6        N5
SOMMAIRE
PANORAMA NOSQL


LE CONSTAT ACTUEL
  AVANTAGES ET LIMITES DU RELATIONNEL

LA PERCÉE NOSQL
 QUELQUES POINTS DE CONVERGENCE
 BEAUCOUP DE DISPARITÉS

FOCUS PRODUITS
 FOCUS REDIS
 FOCUS CASSANDRA
 FOCUS MONGODB
 FOCUS NEO4J
FOCUS PRODUITS
MONGODB


+ DERRIÈRE LE PRODUIT, UNE COMPANY
FOCUS PRODUITS
MONGODB


+ UN DATA MODEL SIMPLE                          Database : userAppDb

   Collection : users


          id_14    {                     Document
                   firstname: "Rémy",
                   lastname: "Girodon",
                   company: {
                            name : "SQLI",
                            agence : “Lyon",
                            standard : "0472405353“
                   },
                  skills: [‘java’, ‘mongodb’]
      }
FOCUS PRODUITS
  MONGODB


  + DES FEATURES DE REQUÊTAGE AVANCÉES
db.users.find( {age: {$gte: 30} } )

db.users.find( {“company.name": ‘SQLI'} )

db.users.update( {lastname: ‘Girodon'} , {$set: {age : 34})

db.users.remove({firstname: ’Girodon’})

db.users.ensureIndex( {“age”: 1} )

db.users.ensureIndex( {“skills”: 1, “company.agence”:1 } )
FOCUS PRODUITS
MONGODB


+ SUPPORT API CLIENTES
FOCUS PRODUITS
MONGODB


+ BUILT-IN REPLICATION
FOCUS PRODUITS
MONGODB


+ BUILT-IN SHARDING
SOMMAIRE
PANORAMA NOSQL


LE CONSTAT ACTUEL
  AVANTAGES ET LIMITES DU RELATIONNEL

LA PERCÉE NOSQL
 QUELQUES POINTS DE CONVERGENCE
 BEAUCOUP DE DISPARITÉS

FOCUS PRODUITS
 FOCUS REDIS
 FOCUS CASSANDRA
 FOCUS MONGODB
 FOCUS NEO4J
FOCUS PRODUITS
NEO4J


+ DERRIÈRE LE PRODUIT, UNE COMPANY
FOCUS PRODUITS
NEO4J


+ LE DATA MODEL                                       Database : userAppDb



        ID: 7152
        Name: Rémy
        Age: 34
        Twitter: @rgirodon



                 WORKS WITH

            From: 01/11/2008
            Project: STMicro LYS




                                   ID: 10097
                                   Name:Nicolas
                                   Age: 29
                                   Twitter: @nmoret
FOCUS PRODUITS
NEO4J


+ LE DATA MODEL
 •Les nœuds ont un ID
 •Les nœuds ont des propriétes key - value
 •Les arêtes ont un Label
 •Les arêtes ont une direction
 •Les arêtes ont des propriétes key - value
 •
FOCUS PRODUITS
NEO4J


+ LE REQUÊTAGE
 •Par Index
        APPLICABLE AUX PROPRIÉTÉS DES NŒUDS ET
        ARÊTES
        EX: RÉCUPÉRATION D’UN NŒUD PAR LA VALEUR
        DE SA PROPRIÉTÉ « NAME »
FOCUS PRODUITS
NEO4J


+ LE REQUÊTAGE
 •Par Traversal
        NAVIGATION DANS LE GRAPHE À PARTIR D’UN
        NŒUD
        CONSTRUCTION DE CHEMINS DE PARCOURS EN
        FONCTION D’OPTION
FOCUS PRODUITS
NEO4J


+ LE REQUÊTAGE
 •Exemple de Traversal (Les amis de mes amis sont mes
  amis…)
FOCUS PRODUITS
NEO4J


+ LE REQUÊTAGE
 •Exemple de Traversal (Les amis de mes amis sont mes
  amis…)
FOCUS PRODUITS
NEO4J


+ LE REQUÊTAGE
 •Par Cypher (Declarative Graphe Query Language)
FOCUS PRODUITS
NEO4J



+ LES MODES D’EXÉCUTION
 •Mode Embarqué
        ÉCRITURE EN FICHIER
        SUPPORT DES TRANSACTIONS
        API JAVA NATIVE
        PERFORMANCE++
        CLIENT UNIQUE À LA BASE
FOCUS PRODUITS
NEO4J



+ LES MODES D’EXÉCUTION
 •Mode Server
        API REST UNIVERSELLE
        CLIENTS MULTIPLES À LA BASE
FOCUS PRODUITS
NEO4J



+ LES FEATURES
 •Haute disponibilité
        ENTERPRISE EDITION
        SLAVE DATABASE

 •Online backup
        ENTERPRISE EDITION
CONCLUSION
TOUS LES PROBLÈMES NE SONT PAS DES CLOUS !
Merci !
NOM DU CLIENT

More Related Content

PDF
Using JSON with MariaDB and MySQL
PPTX
Couchbase N1QL: Language & Architecture Overview.
PDF
Diving into MySQL 5.7: advanced features
PPTX
Mindmap: Oracle to Couchbase for developers
PPTX
BGOUG15: JSON support in MySQL 5.7
PDF
php[tek] - Making the most out of MySQL
PDF
DPC18 - OMG MySQL 8.0 is out! are we there yet?
KEY
Taming Cassandra
Using JSON with MariaDB and MySQL
Couchbase N1QL: Language & Architecture Overview.
Diving into MySQL 5.7: advanced features
Mindmap: Oracle to Couchbase for developers
BGOUG15: JSON support in MySQL 5.7
php[tek] - Making the most out of MySQL
DPC18 - OMG MySQL 8.0 is out! are we there yet?
Taming Cassandra

What's hot (8)

PDF
DPC18 - Making the most out of MySQL
PDF
MySQL 8.0: not only good, it’s GREAT! - PHP UK 2019
PDF
ActiveRecord Query Interface (2), Season 2
PDF
Practical Ruby Projects with MongoDB - Ruby Kaigi 2010
KEY
NOSQL101, Or: How I Learned To Stop Worrying And Love The Mongo!
PDF
5_MariaDB_What's New in MariaDB Server 10.2 and Big Data Analytics with Maria...
PDF
Creating New Streams: Presented by Dennis Gove, Bloomberg LP
PPTX
Php forum2015 tomas_final
DPC18 - Making the most out of MySQL
MySQL 8.0: not only good, it’s GREAT! - PHP UK 2019
ActiveRecord Query Interface (2), Season 2
Practical Ruby Projects with MongoDB - Ruby Kaigi 2010
NOSQL101, Or: How I Learned To Stop Worrying And Love The Mongo!
5_MariaDB_What's New in MariaDB Server 10.2 and Big Data Analytics with Maria...
Creating New Streams: Presented by Dennis Gove, Bloomberg LP
Php forum2015 tomas_final
Ad

Viewers also liked (9)

PPTX
00 panorama-nosql
PDF
201003 BIRT
PDF
How to unlock the Roi_of your Marketing_with_analytics
PDF
NoSQL panorama - Jean Seiler Softeam
PDF
Presentación Social You 2016
PDF
A.Anglada Commark
PDF
Introducing A\\V ASESORES
PPTX
Group 2
00 panorama-nosql
201003 BIRT
How to unlock the Roi_of your Marketing_with_analytics
NoSQL panorama - Jean Seiler Softeam
Presentación Social You 2016
A.Anglada Commark
Introducing A\\V ASESORES
Group 2
Ad

Similar to 201301 - Panorama NoSQL (20)

PPTX
Netcetera
PPTX
JS App Architecture
PDF
Cassandra Data Modeling
PDF
Oracle SQL Basics by Ankur Raina
PDF
Cassandra Data Modelling with CQL (OSCON 2015)
PPTX
Cassandra 2012 scandit
PDF
Apache Cassandra - Data modelling
KEY
PostgreSQL talk, Database 2011 conference
ODP
MongoDB & PHP
PPTX
Apache Cassandra Data Modeling with Travis Price
ODP
Cassandra Data Modelling
PDF
Json within a relational database
PPTX
Discover The Power of NoSQL + MySQL with MySQL
PPTX
Discover the Power of the NoSQL + SQL with MySQL
PPTX
[Mas 500] Data Basics
PPTX
MySQL 8 - UKOUG Techfest Brighton December 2nd, 2019
PDF
Cassandra
PDF
Open Source World June '21 -- JSON Within a Relational Database
PDF
Les nouveautés de MySQL 8.0
PPT
The No SQL Principles and Basic Application Of Casandra Model
Netcetera
JS App Architecture
Cassandra Data Modeling
Oracle SQL Basics by Ankur Raina
Cassandra Data Modelling with CQL (OSCON 2015)
Cassandra 2012 scandit
Apache Cassandra - Data modelling
PostgreSQL talk, Database 2011 conference
MongoDB & PHP
Apache Cassandra Data Modeling with Travis Price
Cassandra Data Modelling
Json within a relational database
Discover The Power of NoSQL + MySQL with MySQL
Discover the Power of the NoSQL + SQL with MySQL
[Mas 500] Data Basics
MySQL 8 - UKOUG Techfest Brighton December 2nd, 2019
Cassandra
Open Source World June '21 -- JSON Within a Relational Database
Les nouveautés de MySQL 8.0
The No SQL Principles and Basic Application Of Casandra Model

More from lyonjug (20)

PDF
DIY: Analyse statique en Java
PDF
Lightning talk LyonJUG février 2016 - Ansible
PDF
Introduction LyonJUG décembre 2015
PDF
Introduction LyonJUG Janvier 2016
PPTX
Presentation jug novembre2015
PPTX
201502 - Integration Testing
PDF
201311 - Middleware
PDF
201303 - Golo
PDF
201303 - Java8
PDF
201305 - Lambda by R. Forax
PDF
201301 - Focus Neo4j
PPTX
201209 Lombok & Guava
PDF
201209 LT Clojure
PDF
Spring Batch Workshop (advanced)
PDF
Spring Batch Workshop
PDF
Engagement des sociétés d'Ingénierie dans la contribution open source : un ce...
PDF
GlassFish, Application versioning et rolling upgrade en haute disponibilité
PPTX
Développement dans le cloud - Sacha Labourey
PPTX
Présentation Granite ds lyon 2011 par William Draï
PDF
20091020 JPA2
DIY: Analyse statique en Java
Lightning talk LyonJUG février 2016 - Ansible
Introduction LyonJUG décembre 2015
Introduction LyonJUG Janvier 2016
Presentation jug novembre2015
201502 - Integration Testing
201311 - Middleware
201303 - Golo
201303 - Java8
201305 - Lambda by R. Forax
201301 - Focus Neo4j
201209 Lombok & Guava
201209 LT Clojure
Spring Batch Workshop (advanced)
Spring Batch Workshop
Engagement des sociétés d'Ingénierie dans la contribution open source : un ce...
GlassFish, Application versioning et rolling upgrade en haute disponibilité
Développement dans le cloud - Sacha Labourey
Présentation Granite ds lyon 2011 par William Draï
20091020 JPA2

Recently uploaded (20)

PDF
A novel scalable deep ensemble learning framework for big data classification...
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PDF
Developing a website for English-speaking practice to English as a foreign la...
PDF
project resource management chapter-09.pdf
PPTX
O2C Customer Invoices to Receipt V15A.pptx
PPT
What is a Computer? Input Devices /output devices
PPTX
Modernising the Digital Integration Hub
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
DP Operators-handbook-extract for the Mautical Institute
PPTX
observCloud-Native Containerability and monitoring.pptx
PPTX
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
PPTX
TLE Review Electricity (Electricity).pptx
PDF
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
PPTX
Programs and apps: productivity, graphics, security and other tools
PPTX
1. Introduction to Computer Programming.pptx
PDF
Getting Started with Data Integration: FME Form 101
PPTX
Final SEM Unit 1 for mit wpu at pune .pptx
PDF
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Zenith AI: Advanced Artificial Intelligence
A novel scalable deep ensemble learning framework for big data classification...
Univ-Connecticut-ChatGPT-Presentaion.pdf
Developing a website for English-speaking practice to English as a foreign la...
project resource management chapter-09.pdf
O2C Customer Invoices to Receipt V15A.pptx
What is a Computer? Input Devices /output devices
Modernising the Digital Integration Hub
NewMind AI Weekly Chronicles - August'25-Week II
DP Operators-handbook-extract for the Mautical Institute
observCloud-Native Containerability and monitoring.pptx
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
TLE Review Electricity (Electricity).pptx
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
Programs and apps: productivity, graphics, security and other tools
1. Introduction to Computer Programming.pptx
Getting Started with Data Integration: FME Form 101
Final SEM Unit 1 for mit wpu at pune .pptx
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Zenith AI: Advanced Artificial Intelligence

201301 - Panorama NoSQL