4. 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
5. 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
7. 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
15. 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
16. LA PERCÉE NOSQL
1 TERME, 1000 POSSIBILITÉS
+ WELCOME TO THE JUNGLE BABY !
20. 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 !
27. 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
29. 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
35. FOCUS PRODUITS
REDIS
+ ADDITIONNAL FEATURES
•Transactions
•Publish / Subscribe
•Write to Disk
CLASSIC DUMP
APPEND ONLY
•Replication
MASTER / SLAVES
36. 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
39. 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
40. 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 É
41. 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
}
42. 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
43. 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
44. 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";
49. FOCUS PRODUITS
CASSANDRA
+TUNABLE CONSISTENCY
Client N2 N3
Reads on any node N1 N4
Indicates a
Consistency level
Read repair
N6 N5
50. 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
57. 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
59. 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
60. 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
•
61. 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 »
62. 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
66. FOCUS PRODUITS
NEO4J
+ LES MODES D’EXÉCUTION
•Mode Embarqué
ÉCRITURE EN FICHIER
SUPPORT DES TRANSACTIONS
API JAVA NATIVE
PERFORMANCE++
CLIENT UNIQUE À LA BASE
67. FOCUS PRODUITS
NEO4J
+ LES MODES D’EXÉCUTION
•Mode Server
API REST UNIVERSELLE
CLIENTS MULTIPLES À LA BASE
68. FOCUS PRODUITS
NEO4J
+ LES FEATURES
•Haute disponibilité
ENTERPRISE EDITION
SLAVE DATABASE
•Online backup
ENTERPRISE EDITION