0% ont trouvé ce document utile (0 vote)
3 vues55 pages

Introduction aux bases NoSQL et enjeux

Le document présente les bases des systèmes NoSQL, en mettant l'accent sur leur capacité à stocker, extraire, restituer et exploiter les données. Il décrit les éléments clés des bases de données non relationnelles, les systèmes de distribution des traitements et les systèmes de stockage en mémoire. Enfin, il aborde des solutions spécifiques telles que Neo4j, MongoDB, Oracle NoSQL et Redis, illustrant leurs fonctionnalités et applications.

Transféré par

mouvement.ingenieurs
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
3 vues55 pages

Introduction aux bases NoSQL et enjeux

Le document présente les bases des systèmes NoSQL, en mettant l'accent sur leur capacité à stocker, extraire, restituer et exploiter les données. Il décrit les éléments clés des bases de données non relationnelles, les systèmes de distribution des traitements et les systèmes de stockage en mémoire. Enfin, il aborde des solutions spécifiques telles que Neo4j, MongoDB, Oracle NoSQL et Redis, illustrant leurs fonctionnalités et applications.

Transféré par

mouvement.ingenieurs
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd

LES BASES NOSQL

Philippe Lacomme

placomme@[Link]
Tel. 04 73 40 75 85
Source… principale

Philippe Lacomme
placomme@[Link]
04 73 40 75 85
Maître de conférences
ISIMA

[Link]
4 enjeux
• Stocker (Comment ?)

• Extraire (fouille de données)

• Restituer

• Exploiter les données (nouvelle valorisation)


Trois éléments
• bases de données non relationnelles,
appelées à tort NoSQL ;

• un système de distribution des traitements ;

• un système de stockages de données en


mémoire pour accélérer les traitements.
Trois éléments

Système de distribution des


traitements

Système de base de
données non relationnelles

Système de stockage en
mémoire (Memtables)
Autrefois….
Dans notre vieux temps
L’approche classique
LIVRE AUTEUR
L’approche classique
Problème 1
Problème 2
La vraie vie...

Naissance

Modification
La vraie vie...
Durée de vie
Modifications permanentes

Un besoin Mise en prod.

2015 2016 2017 2018

Nouvelles données
Modification du MCD
Nouvelles données
Modification du MCD
Bilan

• MCD/MLD  base relationnelle

• Adaptée au cas où les données ne


changent que rarement de
structure
Une solution : base NoSQL
Existant
Existant
Principe
a1
a1
a1 a2

a2
a2
E1 R E2

a3
a3

e1 e2 E1
a1 a2 a3 a1 a2 a3 a1
a2
V1 V2 V3 a3

W1 W2 W3

17
Principe
OBJECT

Instance 1
a1=V1
a2=V2
a3=V3
Instance 2 Instance 1
a1=W1 a1=V1
a2=W2 a2=V2
a3=W3 a3=V3
a4=W4

Instance 3
a2=t2
a3=t3
a4=t4 Instance 2
a5=t5 a1=W1
a2=W2
a3=W3
a4=W4

18
LA SOLUTION NÉO4J
Positionnement
Une base de données = un graphe

Une entité

Une relation
Installation
Connexion
Ajout d’informations
Les informations structurées
Ajout d’informations structurées
T_PERSONNE T_PERSONNE
NOM +NOM
PRENOM +PRENOM
VILLE +VILLE
TELEPHONE +TELEPHONE
+LeNoeud_de_Reference
+GetNode_Personne
+GetNom
+GetPrenom
+GetVille
+GetTelephone
+ajouter (nom, prenom, ville, téléphone)
+afficher()
Ajout d’informations structurées
Node firstNode = [Link]();
Node secondNode = [Link]();
Node TroisiemeNode = [Link]();

Person une_personne = new Person(firstNode);


une_personne.ajouter("Tintin", "Pierre", "Clermont", "0102");
une_personne.afficher();

Person une_personne2 = new Person(secondNode);


une_personne2.ajouter("Milou", "Thierry", "Paris", "0101");
une_personne2.afficher();

Person une_personne3 = new Person(TroisiemeNode);


une_personne3.ajouter("Castafiore", "Marie", "Paris", "0901");
une_personne3.afficher();
Visualisation et interrogation de la
base
Visualisation de la base
Résultat
Editeur Cypher

[Link]
MongoDB
Connexion
try
{
MongoClient mongoClient = new MongoClient();
DB db = [Link]("bibliotheque");

// Code

}
catch(Exception E)
{
[Link]([Link]());
}
Le modèle classique

Livre Auteur
Insertion d’information
Liens table/collection

DBCollection coll_livre = [Link]("Livre");

BasicDBObject dbObject_Livre = new BasicDBObject();


dbObject_Livre.put("Numero", "10101");
dbObject_Livre.put("Titre", "aaaaa");
dbObject_Livre.put("Prix", 10);
coll_livre.insert(dbObject_Livre);
MongoDB et le Cloud

36
MongoDB et Hadoop
1. Liste des fichiers ".jar" à copier dans le répertoire "lib" d'Hadoop

2. Accéder à une base

37
ORACLE NoSQL
Démonstration
Serveur

ping

Client

39
Vérification de l’environnement
C:\oracle\CE\kv-ce-2.0.39\
[Link]

40
Création d’un rep. de travail

41
Ajouter

String keyString1 = "85478";


String valueString1 = "Castafiore";

Key une_cle1 = [Link](keyString1);


Value une_valeur1 = [Link]([Link]());
[Link](une_cle1, une_valeur1);
Ajouter

t_auteur un_auteur = new t_auteur();


un_auteur.nom = "Dayre";
un_auteur.prenom = "Pascal";
un_auteur.domicile = "Toulouse";

tableau_des_cles_de_recherche.clear();
tableau_des_cles_de_recherche.add("Dayre");
tableau_des_cles_de_recherche.add("Pascal");

Key myKey = [Link](tableau_des_cles_de_recherche);


Value myValue = [Link](un_auteur.toString().getBytes());
[Link](myKey, myValue);
LA SOLUTION REDIS
Installation
Un couple clé/valeur
package testjedis;

import [Link].*;

public class TestJedis {


public static void main(String[] args) {

Jedis jedis = new Jedis("localhost");


[Link]("Durant", "Mon premier roman");
String value = [Link]("Durant");
[Link]("value= "+value);

}
}
Manipulation d’une liste
package testjedis;
import [Link].*;
import [Link];

public class TestJedis {


public static void main(String[] args) {
Jedis jedis = new Jedis("localhost");

[Link]("message_java", "Bienvenue dans Redis");


[Link]("message_java", "Ceci est un chapitre introductif");
[Link]("message_java", "les exemples sont simples");

List<String> value = [Link]("message_java", 0, 2);


for (int i=0; i<[Link](); i++)
[Link]("value numero "+ i +" = "+[Link](i));
}
}
Principes
communs
Principe : accès direct
T : Tableaux associatifs

clé
T[i]  accès en O(1)
Magique ou non ?
Un énoncé « classique »
Magique ou non ?
Magique ou non ?
[Link]
themes/datastax-2014-08/files/
NoSQL_Benchmarks_EndPoint.pdf?2

53
Conclusion
Une nouvelle manière de stocker les données

But : extraire des données présentes mais à ce


jour non exploitées
Pour Restituer
Et au final exploiter les données (nouvelle
valorisation)

Système de distribution des


traitements

Système de base de
données non relationnelles

Système de stockage en
mémoire (Memtables)
Questions ?

Vous aimerez peut-être aussi