Benchmarking NoSQL DataBase dans le cadre d'un projet IoT
-
Upload
chaker-allaoui -
Category
Technology
-
view
230 -
download
2
Transcript of Benchmarking NoSQL DataBase dans le cadre d'un projet IoT
1
BenchmarkingNoSQL DataBase dans le cadre d’un projet IoT
2
Système IoT
IoT représente l'extension d'Internet à des choses et à des lieux du monde physique. Alors qu'Internet ne se prolonge
habituellement pas au-delà du monde électronique, l'internet des objets (IdO, ou IoT pour Internet of Things en anglais)
représente les échanges d'informations et de données provenant de dispositifs présents dans le monde réel vers le
réseau Internet. L'internet des objets est considéré comme la troisième évolution de l'Internet, baptisée Web 3.0
(parfois perçu comme la généralisation du Web des Objets mais aussi comme celle du Web sémantique) qui fait suite à
l'ère du Web Social. L'internet des objets est en partie responsable de l'accroissement du volume de données générées
sur le réseau, à l'origine du Big Data. L'internet des objets revêt un caractère universel pour désigner des objets
connectés aux usages variés, dans le domaine de la e-santé, de la domotique ou du Quantified Self.fr.wikipedia.org
3Les modèles de données Big-DataColonne – Clé/Valeur – Document -Graphe
ColonneApache Cassandra,
Hbase, BigTable
Key-ValueCouchbase, Redis,
Memcached
DocumentmongoDB,
Couchbase, Riak
Graphe Model: Ce modèle de représentation des données se base sur la théorie des graphes. Il s’appuie sur la notion de nœuds,
de relations et de propriétés qui leur sont rattachées. Ce modèle facilite la représentation du monde réel, ce qui le rend adapté au
traitement des données des réseaux sociaux. La principale solution est Neo4J.
Remarque: ce modèle semble n’est pas être celui qui réponds aux mieux aux attentes exigés des systèmes IoT.
4Modèles des données en détailsExtensibiltés des modèles
Modèle “Colonne”Ce modèle ressemble à première vue à une table dans un SGBDR à la différence qu’avec
une BD NoSQL orientée colonne, le nombre de colonnes est dynamique. En effet, dans une
table relationnelle, le nombre de colonnes est fixé dés la création du schéma de la table et
ce nombre reste le même pour tous les enregistrements dans cette table.
Modèle “Clé-Valeur”Ce modèle peut être assimilé à une hashmap distribuée. Les données sont, donc,
simplement représentées par un couple clé/valeur. La valeur peut être une simple chaîne de
caractères, un objet sérialisé… Cette absence de structure ou de typage ont un impact
important sur le requêtage.
Modèle “Document”Ce modèle se base sur le paradigme clé valeur. La valeur, dans ce cas, est un document de
type JSON ou XML. L’avantage est de pouvoir récupérer, via une seule clé, un ensemble
d’informations structurées de manière hiérarchique. La même opération dans le monde
relationnel impliquerait plusieurs jointures.
5
mongoDB
mongoDB est un produit
De MongoDB, Inc
Version actuelle : 2.6.7
www.mongodb.org
Cassandra
Cassandra est un produit de
DATASTAX & Apache foundation
Version actuelle : 2.0.12
www.planetcassandra.org
Couchbase
Couchbase est un produit de
Couchbase, Inc,
Version actuelle : 3.0.2
www.couchbase.com
NoSQL DataBaseOpen sources et leaders
6MongoDB vs Cassandra vs CouchbaseCaractèristiques techniques
MongoDB Cassandra Couchbase
Catégorie Base de données Base de données Base de données
Licence AGPLv3 Apache Licence 2 Apache Licence 2
Model des données Document Colonnes, key/Value Key/Value, Document
Storage des données Système de fichiers RAM, Disque dûr Système de fichiers
Langage de manipulation API, REST, JavaScript API, Thrift protocol Memcached, REST, JavaScript
Types de données JSON, BSON, BLOB JSON, BLOB JSON, BLOB
Map Reduce OK OK OK
Compression OK OK OK
Intégrité de modèle Base Base MVCC
Atomicité NON OK Conditionnel
Indexation OK OK OK
Recherche Full text OK NON OK
Replication & Sharding OK OK OK
7MongoDBFLEXIBILITE – SCALABILITE – PERFORMANCE- EXPRESSIVE – INDEXATION - COMMUNITE
FLEXIBILITELe modèle de données de document de
MongoDB rend facile pour vous le stockage des
données de n'importe quelle structure et permet
de modifier dynamiquement vos schémas de
base de données NoSQL.
SCALABILITE
Augmentez proportionnellement ou à l'échelle
horizontale, un simple serveur aux milliers de
nœuds. Déployez dans le Cloud et à travers des
multiples data-centers.
PERFORMANCE
Systèmes très performants exécutés à échelle.
Réalise des millions d'opérations par seconde. Il
diminue ainsi le charge du travail pour les
opérations de lectures ou écritures des données.
EXPRESSIVELe langage d'interrogation de données de
MongoDB fournit des opérateurs de niveau de
supérieur pour des mises à jour sur place. Les
conducteurs pour à peu près tout les langages
de programmation informatiques, tels que: Java,
PHP, NodeJS, C#...
INDEXATIONL'accès rapide, au grain fin aux données, y
compris des index entièrement cohérents sur
n'importe quel champ, aussi bien que géospatial,
qu’un texte de recherche et des index de types
TTL.
COMMUNITEMongoDB à l’avantage de possèder une grande
communauté de développeurs et DBA
connaissant une forte croissance, celle la plus
rapide du monde de NoSQL, et scindé derrière
leur logiciel pour assurer son succès, fournissant
le logiciel des services pour rendre la vie plus
facile aux développeurs.
www.mongodb.org
8Apache CassandraFLEXIBILITE - SCALABILITE – PERFORMANCE - DISTRIBUTION – SIMPLICITE - TRANSACTION
FLEXIBILITEAvec des données, semi-structuré et peu
structuré, qui passe en courant dans des
demandes des applications modernes
d'aujourd'hui. Aussi satisfait dynamiquement des
changements de vos structures de données
quand vos besoins de données se développent.
SCALABILITE
Vous permet de facilement ajouter la capacité en
ligne pour accueillir plus de clients et plus de
données quand vous avez besoin.
Ajout des nœuds et des clusters à la volée sans
le besoin de redémarrer un serveur Cassandra
PERFORMANCE
Avec des réponse ultra-court face aux opérations
de CRUD et avec une courbe linéaire de montée
en charge par rapport à l’axe de temps qui
permet de doublez les nœuds pour garantir une
réponse conformes aux attentes de vos clients.
DISTRIBUTIONVous donne la flexibilité maximale pour distribuer
des données où vous avez besoin en
reproduisant des données à travers des data-
centers multiples, comme dans le Cloud public et
privés dans lesquels deviennent des
environnements de déploiement extrêmement
communs.
SIMPLICITEAvec tous l’incorporation des plusieurs nœuds
dans un groupe ou cluster master, il n'y a aucune
configuration complexe a mettre en œuvre, ainsi
la gérance des rôles d'administration devient
grandement simplifiée.
TRANSACTIONL'atomicité, l'isolement et la durabilité conforme
au modèle ACID par le biais des journaux de
logs assurent la durabilité de données en cas
des échecs de matériel, aussi bien que
l'isolement de transaction, l'atomicité, avec une
cohérence et consistance élevée.
www.planetcassandra.org
9CouchbaseFLEXIBILITE - SCALABILITE – PERFORMANCE – MOBILITE – TEMPS REEL - ADMINISTRATION
FLEXIBILITEDes cross-data configurables pour une
réplication, y compris actif/actif, pour une
implémentation à grand échelle dans des cloud
publics ou privés.
SCALABILITE
Ajoutez ou enlevez des nœuds dans un cluster à
la demande grâce à un partage de l'architecture
et avec aucun point d'échec.
PERFORMANCE
Un système de cache intégré, en occurrence
Memcached qui assure pendant une basse
latence l'accès aux données avec ou sans
verrouillage pour assurer les opérations d’I/O au
niveau des différents nœuds et cluster.
MOBILITEUne base de données incorporée pour portable
et demandes des applications IoT pour accès
hors connexion et synchronisation automatique.
TEMPS REELL'intégration avec Hadoop, Elasticsearch et une
API pour des données en continu pour prendre
d'assaut pour l'analytique en temps réel.
ADMINISTRATIONUne administration intégrée en console et l'API
scripting avec un large de groupe contrôle pour
gérer de grands déploiements.
www.couchbase.com
10Environnement documentale de test Fichiers JSON - Fichiers CSV
10.000 Documents
10 Milles documents, avec un
fichier de taille: 950 Ko
Fichier JSON d’origine: 2,58 Mo
Modèles pour les tests:
Document et Clé-Valeur
1.000.000 Documents
1 Millions documents, avec un
fichier de taille: 95 Mo
Fichier JSON d’origine: 258 Mo
Modèles pour les tests:
Clé-Valeur
10.000.000 Documents
10 Millions documents, avec un
fichier de taille 958 Mo
Fichier JSON d’origine: 2,46 Go
Modèles pour les tests:
Clé-Valeur
100.000 Documents
100 Milles documents, avec un
fichier de taille: 0.95 Mo
Fichier JSON d’origine: 25,8 Mo
Modèles pour les tests:
Document et Clé-Valeur
11
Env-logiciels
Les logiciels utilisés sont:
MongoVue, DevOpsCenter, la
console Web de Couchebase
en mode graphique, la
console mongo, la console
cassandra et couchbase-cli.
Env-matériels
Ces tests sont effectués sur
un PC de type Intel Core i5 de
8 Go de RAM, CPU 33,30
GHz, 500Go d’espace de
stockage et Windows 7
Profesional 64 bits.
Pour assurer un environnement équitable, les mêmes structures et données pour tous les documents, Key/Value sont utilisés pour
les opérations de lecture, mise à jour, suppression ou création (CRUD: Create, Read, Update, Delete).
Plusieurs tests sont réalisés pour chaque opération pour s’assurer que les réponses des nos systèmes NoSQL soient homogènes.
Environnement matériels et logicielsCaractèristiques matérielles - Interfaces de tests
12Nombre total de documents importer en occurenceComportement des databases pendant l’import massive de données
13Import des fichiers CSV dans la base de donnéesLatence pour les operations d’imports des données au format CSV
14Lecture d’un flot de données - ReadLatence des réponses pour les operations de lecture des résultats d’un flot de données
15Lecture d’un seul document – Find ByLatence des réponses pour les operations de lecture des résultats d’un seul élément
16Insertion d’un document – CreateLatence des réponses pour les operations de création d’un élément
17Mise à jour d’un document - UpdateLatence des réponses pour les operations de mise à jour d’un document
18Suppression d’un document - DeleteLatence des réponses pour les operations de suppression d’un document
19Récapitulatif des résultatsClassement des moteurs NoSQL selon leurs statistiques pour un déployement dans un système IoT
Analyse des résultatsSuite à ces résultats et constats, et en prenant
compte des circonstances applicatives d’un
système IoT, le moteur de base de données
Apache Cassandra peut constituer un meilleur
choix, avec une alternative MongoDB
intéressante au niveau de gérance de grande
quantité et flot de données en mêmes temps. En
ce qui concernat Couchbase, son comportement
et ces performances sont proportionnelles par
rapport aux aspects matériels et la quantité
mémoire allouée pour les instance Buckets pour
manipuler les données dans une situation normal
exercé par les deux autres moteurs NoSQL.
Couchbase à crasher 2 fois de suite pour un
import massive de données.
Contrairement à MongoDBb qui ne gère pas la
tâche d’administration du cache et laisse cette
approche pour une couche bas niveau du
système d’exploitation pour la gérée.
Apache cassandra fait des meilleures
performances au niveau Read, Insert, Update et
Delete, càd les opérations de CRUD
nécessairement employées en masse dans une
architecture moderne IoT.
20BibliographiesLiens externes – Téléchargement - Mots clés
MongoDB: www.mongodb.org
Téléchargement: www.mongodb.org/downloads
Apache Cassandra: www.planetcassandra.org
Téléchargement: www.datastax.com/download
Couchbase: www.couchebase.com
Téléchargement: www.couchbase.com/nosql-databases/downloads
Liens externes
Mots clés
Benchmarking NoSQL DataBase, IoT System, IoT Architecture, MongoDB, Apache Cassandra, Couchbase,
Big-Data, Colonne, Clé/Valeur, Document, CSV Format, MongoVue, DevOpsCenter, Couchbase Web Console,
Diagrammes de comparaisons, NoSQL Classement, import, operations CRUD, Create, Read, Update, Delete
21A proposPour vos remarques et suggéstions
ALLAOUI Chaker
Senior MEAN & Big Data Developer
Mail: [email protected]
Visit my profile in LinkedIn
http://tn.linkedin.com/in/chakerallaoui
Visit my web site
http://allaoui-chaker.github.io