00 panorama-nosql
DESCRIPTION
Courte introduction sur le Nosql. Plus de détails ici : http://www.eventuallycoding.com/index.php/panorama-nosql/TRANSCRIPT
Associé chez www.Lateral-Thoughts.com
Associé chez www.Hopwork.com
@hugolassiege
hlassiege at lateral-thoughts.com
Contact
Panorama
Des à priori ?
NoSQL
NotoSQL
NotonlySQL
“Polyglot Persistence, like polyglot programming, is all
about choosing the right persistence option for the task at hand.SCOTT LEBERKNIGHT - https://www.altamiracorp.com/blog/employee-
posts/polyglot-persistence
Donc, SQL c’est bien ?
Oui
La normalisation des
données
Le SQL
A bientôt 40 ans on peut dire qu’il est mature
Ou pas…
Select column from table limit 10
Select * from table where rownum > 10
Fonctions propriétaires, séquences etc…
ACID
Atomicité
Cohérence
Isolation
Durabilité
Alors pourquoi changer ?
Le volume a augmenté
“ 90% des données dans le monde ont été créées au
cours des deux dernières années seulement.IBM - http://www-01.ibm.com/software/fr/data/bigdata/
L’usage à évolué
Recherche sémantique
Réseaux sociaux
Moteurs de recommandations
…
Les attentes ont évolué
“les interruptions de service informatique coûtent 440.000 € de
l’heure aux entreprises en EuropeGlobal Switch
“ Un coût de 6,5 milliards d'euros pour les entreprises françaises
JDN – http://www.journaldunet.com/solutions/dsi/couts-indisponibilite-des-donnees-en-france.shtml
Et les architectures ?
Sans doute un peu…
Et le Nosql dans tout ça?
“ C’est l’enfer
Hugo Lassiège
150 bases de données listées sur
http://nosql-database.org/
Une définition
Next Generation Databases mostly addressing some of the points: being non-relational, distributed, open-
source and horizontally scalable.
Scaling
Horizontal scalingVertical scaling
Quelques points communs
schema-free, easy replication support, simple API, a huge amount of data, eventually consistent / BASE
BASE?
Basically Available, Soft state, Eventually consistent
not ACID
Quel est le problème avec
ACID ??
Comment garantissez-vous ACID et une disponibilité de 99%
Vous garantissez la
consistence ?
Dans ce cas, votre disponibilité est dépendante du taux de
panne de chaque composant
Vous garantissez la
disponibilité ?
(en répliquant vos données)
Dans ce cas, comment gérez vous la perte de réseaux entre
réplicas ?
Si vous autorisez les écritures, vous ne garantissez pas la
cohérence
CAP theorem
“It is impossible for a web service to provide following three guarantees :
Consistency Availability Partition-toleranceA distributed system can satisfy any two of these guarantees at the same time but not all three
Eric Brewer
Note du formateur : un système CA, vous y croyez ?
Basically Available : le système fonctionne
Soft state : les données ne sont pas forcément consistantes
Eventually consistent : mais finiront par l’être
=> Système AP
Revenons à nos moutons
4 grandes familles
Key Value
Column oriented
Document oriented
Graph oriented
Key-Value
Key Value
Key-Value
Id => objet
Login:#id => unlogin
Email:#id => [email protected]
Skills#id => set(redis, mongodb, java)
Column oriented
Document oriented
KeyDocument
{ field1 : value1,Field2 : value2}
Graph oriented
Pour finir
Logs
Audit
Transactions bancaires
10 ou 1M
d’utilisateurs ?
24/24 ?
RechercheReporting
Cache