• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
201301 - Panorama NoSQL
 

201301 - Panorama NoSQL

on

  • 631 views

 

Statistics

Views

Total Views
631
Views on SlideShare
456
Embed Views
175

Actions

Likes
0
Downloads
24
Comments
0

1 Embed 175

http://mj89sp3sau2k7lj1eg3k40hkeppguj6j-a-sites-opensocial.googleusercontent.com 175

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    201301 - Panorama NoSQL 201301 - Panorama NoSQL Presentation Transcript

    • LE SPEAKERRÉMY GIRODON+ FOLLOW ME ! • • @rgirodon
    • SOMMAIREPANORAMA NOSQLLE CONSTAT ACTUEL AVANTAGES ET LIMITES DU RELATIONNELLA PERCÉE NOSQL QUELQUES POINTS DE CONVERGENCE BEAUCOUP DE DISPARITÉSFOCUS PRODUITS FOCUS REDIS FOCUS CASSANDRA FOCUS MONGODB FOCUS NEO4J
    • SOMMAIREPANORAMA NOSQLLE CONSTAT ACTUEL AVANTAGES ET LIMITES DU RELATIONNELLA PERCÉE NOSQL QUELQUES POINTS DE CONVERGENCE BEAUCOUP DE DISPARITÉSFOCUS PRODUITS FOCUS REDIS FOCUS CASSANDRA FOCUS MONGODB FOCUS NEO4J
    • LE CONSTAT ACTUELRELATIONNEL EVERYWHERE+ UN DATA MODEL NATUREL ET INTUITIF PROPRE : NORMALISATION DES DONNÉES
    • LE CONSTAT ACTUELRELATIONNEL 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 ACTUELRELATIONNEL EVERYWHERE+ DESIGNED FOR ACID ATOMICITÉ COHÉRENCE ISOLATION DURABILITÉ
    • LE CONSTAT ACTUELRELATIONNEL EVERYWHERE+ UNE OFFRE TRÈS VASTE
    • LE CONSTAT ACTUELLES LIMITES DU RELATIONNEL+ DATA CHANGE
    • LE CONSTAT ACTUELLES LIMITES DU RELATIONNEL+ DATA CHANGE
    • LE CONSTAT ACTUELLES LIMITES DU RELATIONNEL+ DATA CHANGE
    • LE CONSTAT ACTUELLES LIMITES DU RELATIONNEL+ EN UN MOT LE RELATIONNEL C’EST SUPER !
    • LE CONSTAT ACTUELLES LIMITES DU RELATIONNEL+ MAIS PAS POUR TOUT !
    • SOMMAIREPANORAMA NOSQLLE CONSTAT ACTUEL AVANTAGES ET LIMITES DU RELATIONNELLA PERCÉE NOSQL QUELQUES POINTS DE CONVERGENCE BEAUCOUP DE DISPARITÉSFOCUS PRODUITS FOCUS REDIS FOCUS CASSANDRA FOCUS MONGODB FOCUS NEO4J
    • LA PERCÉE NOSQL1 TERME, 1000 POSSIBILITÉS+ WELCOME TO THE JUNGLE BABY !
    • LA PERCÉE NOSQLQUELQUES POINTS DE CONVERGENCE
    • LA PERCÉE NOSQLQUELQUES POINTS DE CONVERGENCE
    • LA PERCÉE NOSQLQUELQUES POINTS DE CONVERGENCE
    • LA PERCÉE NOSQLBEAUCOUP 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 NOSQLKEY-VALUE STORES
    • LA PERCÉE NOSQLCOLUMN-ORIENTED STORES
    • LA PERCÉE NOSQLDOCUMENT-ORIENTED STORES
    • LA PERCÉE NOSQLGRAPH-ORIENTED STORES
    • LA PERCÉE NOSQLBEAUCOUP DE DISPARITÉS+ CONNAÎTRE A MINIMA LES DIFFÉRENTS PRODUITS •Data Model •Features de Requêtage
    • LA PERCÉE NOSQLBEAUCOUP DE DISPARITÉS+ FAIRE LE BON CHOIX POUR SON USE-CASE MÉTIER !
    • SOMMAIREPANORAMA NOSQLLE CONSTAT ACTUEL AVANTAGES ET LIMITES DU RELATIONNELLA PERCÉE NOSQL QUELQUES POINTS DE CONVERGENCE BEAUCOUP DE DISPARITÉSFOCUS PRODUITS FOCUS REDIS FOCUS CASSANDRA FOCUS MONGODB FOCUS NEO4J
    • FOCUS PRODUITSREDIS+ DESCRIPTIF RAPIDESimplicity Speed Reliability
    • FOCUS PRODUITSREDIS+ 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 PRODUITSREDIS+ STRING COMMANDS+ USAGE •Cache Provider •Session Manager •Counters •ID Generators
    • FOCUS PRODUITSREDIS+ LIST COMMANDS+ USAGE •Real lists •Time Series •Queues / Workers
    • FOCUS PRODUITSREDIS+ SET COMMANDS+ USAGE •Real Sets •Relations
    • FOCUS PRODUITSREDIS+ ZSET COMMANDS+ USAGE •Scores •Inverted Index
    • FOCUS PRODUITSREDIS+ HASHES COMMANDS+ USAGE •Structured Data
    • FOCUS PRODUITSREDIS+ ADDITIONNAL FEATURES •Transactions •Publish / Subscribe •Write to Disk CLASSIC DUMP APPEND ONLY •Replication MASTER / SLAVES
    • SOMMAIREPANORAMA NOSQLLE CONSTAT ACTUEL AVANTAGES ET LIMITES DU RELATIONNELLA PERCÉE NOSQL QUELQUES POINTS DE CONVERGENCE BEAUCOUP DE DISPARITÉSFOCUS PRODUITS FOCUS REDIS FOCUS CASSANDRA FOCUS MONGODB FOCUS NEO4J
    • FOCUS PRODUITSCASSANDRA+ HISTORIQUE RAPIDE
    • FOCUS PRODUITSCASSANDRA+ 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 PRODUITSCASSANDRA+ 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 PRODUITSCASSANDRA+ 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 PRODUITSCASSANDRA+ 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 PRODUITSCASSANDRA+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 PRODUITSCASSANDRA+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 PRODUITSCASSANDRA+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 PRODUITSCASSANDRA+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 PRODUITSCASSANDRA+REQUÊTAGE VIA CQL •CREATE INDEX email_key ON users (email); •SELECT * FROM users •WHERE "email" = "rgirodon@example.com";
    • FOCUS PRODUITSCASSANDRA+ BUILT-IN CLUSTERING Keys Keys 20..30 10..20 N2 N3Keys Keys N1 N4 30..400..10 N6 N5 Keys Keys 40..50 50..60
    • FOCUS PRODUITSCASSANDRA+TUNABLE REPLICATION Replication N2 N3 K1 Factor = 2 N1 N4 N6 N5 K1
    • FOCUS PRODUITS CASSANDRA +TUNABLE CONSISTENCY Client N2 N3Reads on any node N1 N4 Indicates aConsistency level Read repair N6 N5
    • SOMMAIREPANORAMA NOSQLLE CONSTAT ACTUEL AVANTAGES ET LIMITES DU RELATIONNELLA PERCÉE NOSQL QUELQUES POINTS DE CONVERGENCE BEAUCOUP DE DISPARITÉSFOCUS PRODUITS FOCUS REDIS FOCUS CASSANDRA FOCUS MONGODB FOCUS NEO4J
    • FOCUS PRODUITSMONGODB+ DERRIÈRE LE PRODUIT, UNE COMPANY
    • FOCUS PRODUITSMONGODB+ 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ÉESdb.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 PRODUITSMONGODB+ SUPPORT API CLIENTES
    • FOCUS PRODUITSMONGODB+ BUILT-IN REPLICATION
    • FOCUS PRODUITSMONGODB+ BUILT-IN SHARDING
    • SOMMAIREPANORAMA NOSQLLE CONSTAT ACTUEL AVANTAGES ET LIMITES DU RELATIONNELLA PERCÉE NOSQL QUELQUES POINTS DE CONVERGENCE BEAUCOUP DE DISPARITÉSFOCUS PRODUITS FOCUS REDIS FOCUS CASSANDRA FOCUS MONGODB FOCUS NEO4J
    • FOCUS PRODUITSNEO4J+ DERRIÈRE LE PRODUIT, UNE COMPANY
    • FOCUS PRODUITSNEO4J+ 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 PRODUITSNEO4J+ 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 PRODUITSNEO4J+ 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 PRODUITSNEO4J+ LE REQUÊTAGE •Par Traversal NAVIGATION DANS LE GRAPHE À PARTIR D’UN NŒUD CONSTRUCTION DE CHEMINS DE PARCOURS EN FONCTION D’OPTION
    • FOCUS PRODUITSNEO4J+ LE REQUÊTAGE •Exemple de Traversal (Les amis de mes amis sont mes amis…)
    • FOCUS PRODUITSNEO4J+ LE REQUÊTAGE •Exemple de Traversal (Les amis de mes amis sont mes amis…)
    • FOCUS PRODUITSNEO4J+ LE REQUÊTAGE •Par Cypher (Declarative Graphe Query Language)
    • FOCUS PRODUITSNEO4J+ LES MODES D’EXÉCUTION •Mode Embarqué ÉCRITURE EN FICHIER SUPPORT DES TRANSACTIONS API JAVA NATIVE PERFORMANCE++ CLIENT UNIQUE À LA BASE
    • FOCUS PRODUITSNEO4J+ LES MODES D’EXÉCUTION •Mode Server API REST UNIVERSELLE CLIENTS MULTIPLES À LA BASE
    • FOCUS PRODUITSNEO4J+ LES FEATURES •Haute disponibilité ENTERPRISE EDITION SLAVE DATABASE •Online backup ENTERPRISE EDITION
    • CONCLUSIONTOUS LES PROBLÈMES NE SONT PAS DES CLOUS !
    • Merci !NOM DU CLIENT