1. NoSQL et Big Data
Arnaud Cogoluègnes - Zenika
ADIRA - 8 octobre 2014
This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.
22. Théorème CAP
Alan Alan
Partition réseau
Choisir disponibilité ou cohérence
Disponibilité = update autorisé
Cohérence = update interdit
23. Bases de données NoSQL
Clustering
Open source
Scalabilité
Pas de schéma
24. Clé/valeur
Pas bien pour…
Requêtes sur les données
Transactions sur plusieurs objets
Relations complexes
Bien pour…
Session
Profil
Cache
Implémentations
Redis
Riak
Hazelcast
"user1" => "login : alan ; gender : M"
"user2" => "login : zoe ; gender : F"
25. Orientées colonnes
Pas bien pour…
Requêtes
Agrégations
Bien pour…
Mesures
Logs
Expiration
Implémentations
Cassandra
HBase
stationID : 1234 =>
date : 20140914 value : 12
date : 20140915 value : 22
value : 18date : 20140916
stationID : 6789 =>
date : 20140914 value : 25
date : 20140915 value : 28
value : 27date : 20140916
26. Orientées documents
Pas bien pour…
Transactions sur plusieurs
collections
Requêtes avec jointures
Bien pour…
Logs
CMS
E-commerce
Implémentations
MongoDB
CouchBase
"commandes" : [
{
"id" : 32,
"clientId" : 2,
"lignes" : [
{
"articleId" : 79,
"prix" : 29,
"nom" : "Spring in Action"
}
]
}
]
27. Orientées graphes
Pas bien pour…
Grosse volumétrie
Mises à jour massives
Bien pour…
Données “connectées”
Routage, données localisées
Recommandations
Implémentations
Neo4j
Arnaud
Spring Batch
in Action
Zenika
Alan
auteur
employé
lecteur
28. Moteur d’indexation
Pas bien pour…
Transactions
Bien pour…
Indexation
Recherche plain/text
Implémentations
ElasticSearch
Solr
54. Jointure flux et référentiel
Hadoop
Traitement
(jointures, transformation)
Flux
Reporting
Données de référence
55. Gestion de données
Données brutes
Données
parsées
Traitement et
insertion
Archives Vues Transformations
Avro, GZIP
Rétention permanente
Parquet, Snappy
Rétention 2 ans glissants
Traitement (Cascading)
HDFS BD temps réel
56. Cinématique avec Spring Batch
Archivage
Traitement Traitement Traitement
Nettoyage
Java, API HDFS
Cascading
MapReduce
57. Hive, Pig, Cascading
UDF : User Defined Function
Hive
+
SQL (non-standard)
Prise en main rapide
Extensible avec UDF
-
Testabilité médiocre
Réutilisabilité médiocre
Pas de contrle du flot
Logique disséminée
Programmation par UDF
Pig
+
Pig Latin
Prise en main rapide
Extensible avec UDF
-
Testabilité médiocre
Réutilisabilité médiocre
Logique disséminée
Programmation par UDF
Cascading
+
API Java
Testable unitairement
Contrôle du flot
Bonne réutilisabilité
-
Programmation nécessaire
58. Comment commencer
● Identifier les cas d’utilisation
● Caractériser les données
○ volume, fraîcheur nécessaire, append-only
● En déduire les produits adaptés
● Virtualiser ou pas
● Penser au déploiement et à la maintenance
● Penser au cloud pour le prototypage
59. Conclusion
NoSQL : de nouveaux outils ciblés
Big Data : de nouvelles possibilités
Des architectures, des patterns émergents