0% ont trouvé ce document utile (0 vote)
59 vues34 pages

Introduction aux bases NoSQL et Big Data

Ce chapitre présente les bases de données NoSQL comme une alternative aux bases de données relationnelles pour le web. Il décrit les principes des bases de données NoSQL, notamment leur capacité à gérer des données non structurées de manière distribuée tout en privilégiant la disponibilité sur la cohérence. Il présente ensuite les trois principaux modèles d'architecture que sont les entrepôts clé-valeur, les bases orientées documents et les bases orientées colonnes.

Transféré par

menouar.rania30
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 PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
59 vues34 pages

Introduction aux bases NoSQL et Big Data

Ce chapitre présente les bases de données NoSQL comme une alternative aux bases de données relationnelles pour le web. Il décrit les principes des bases de données NoSQL, notamment leur capacité à gérer des données non structurées de manière distribuée tout en privilégiant la disponibilité sur la cohérence. Il présente ensuite les trois principaux modèles d'architecture que sont les entrepôts clé-valeur, les bases orientées documents et les bases orientées colonnes.

Transféré par

menouar.rania30
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 PDF, TXT ou lisez en ligne sur Scribd

Chapitre 2

BDD relationnelles et NoSQL


Partie 2 : NoSQL

Big data & datamining

AG3 - Hakim AKEB


Sommaire

1. Rappel principes BDD relationnelles

2. Un autre modèle pour le web (le NoSQL)

3. Architectures des BDD NoSQL

4. Conclusion

Big data et Datamining SQL et NoSQL 2


1. Rappel principes BDD
relationnelle
1. Rappel principes BDD relationnelles
Rappels BDD relationnelles
Données stockées dans des tables
- 1 tables = colonnes (champs) + lignes (enregistrements)
- 1 table contient une clé primaire

- Les identifiants des tables permettent des relier les tables entre elles
- Cela permet alors de croiser les données (requêtes)

Big data et Datamining SQL et NoSQL 4


1. Rappel principes BDD relationnelles
1.1. SQL = Fondement mathématique

- Théorie des ensembles

- Par définition optimisé (pas de redondance des données par exemple)

- Basé sur l’algèbre relationnelle


- Projection (sélection colonnes = SELECT)
- Sélection (extraire des lignes d’une table = WHERE)
- Jointure (croiser les données de plusieurs tables = JOIN)
- Agrégation (fonctions de synthèse = somme, moyenne, etc.)
- Union (Union résultat de 2 requêtes par ex. =UNION)
- Intersection (idem pour deux requêtes = INTERSECT)
- Différence, produit, etc.

Big data et Datamining SQL et NoSQL 5


1. Rappel principes BDD relationnelles
1.2. Transactions (SGBDR)

Une transaction obéit aux propriétés ACID

Atomicité (Atomicity): une transaction est indivisible

Cohérence (Consistency): 1 requête laisse les données cohérentes

Isolation (Isolation): deux transactions (concurrentes) n’interfèrent pas

Durabilité (Durability): les données deviennent permanentes une fois


validées

Big data et Datamining SQL et NoSQL 6


1. Rappel principes BDD relationnelles
1.3. Insuffisances des BDD relationnelles

- Ne gèrent que des données structurées (texte, nombres, dates)

- Pas d’accès simultané aux données (transactions concurrentes)

- Plutôt limitées par la taille et la couverture géographique

Qu’en est-il alors de la gestion des données du web ?

Big data et Datamining SQL et NoSQL 7


2. Besoin d’un autre modèle
pour le web
2. Un autre modèle pour le web
2.1. Web = nouvelles contraintes

Applications web doivent être accessibles à tout moment !

Moyen: Duplication de serveurs à travers le monde (accédant aux mêmes


données en même temps)

Question : au détriment de la cohérence ?

Réponse: OUI! Priorité à la disponibilité

Exemple: site d’e-commerce (panne = grosses pertes)

Problème : synchronisation et cohérence difficiles ! On parle plutôt de cohérence


à terme (Eventual Consistency).

Big data et Datamining SQL et NoSQL 9


2. Un autre modèle pour le web
2.1. Web = nouvelles contraintes

Dans les applications à grande échelle : Coût incohérence < Coût panne

Traitement des conséquences (exemples):

- Surbooking : partenariat entre compagnies aériennes et hôtels

- E-commerce : remboursement à hauteur du préjudice

Big data et Datamining SQL et NoSQL 10


2. Un autre modèle pour le web
2.2. Systèmes distribués et principes CDR

Cohérence (Consistency): même version des données sur tous les nœuds du
réseau

Disponibilité (Availability): applications accessibles à tout moment

Résistance aux morcellement (Partition Tolerance): le réseau fonctionnera


même s’il est partitionné en sous-réseaux (ex. nœuds en panne).

Big data et Datamining SQL et NoSQL 11


2. Un autre modèle pour le web
2.3. Cohérence vs flexibilité

La totale cohérence nuit à la disponibilité et à la vitesse (flexibilité)

Exemple: transaction qui accède à des données et les verrouille pendant


l’exécution de celle-ci. Toute autre transaction voulant accéder à ces données
attendra !

Résultat : le système devient indisponible => performances ralenties.

Solution : Big data => compromis entre cohérence et flexibilité (paramètres


à gérer selon l’application).
Vélocité = critère primordial

Big data et Datamining SQL et NoSQL 12


2. Un autre modèle pour le web
2.4. BDDs NoSQL

- NoSQL = Not Only SQL


- Difficile de donner une définition précise !

Propriétés NoSQL :
- Traitements et stockage distribués (TRES IMPORTANT!)
- Priorité à la vitesse + disponibilité
- Traiter des données non structurées
- Pas de schéma de données standard
- Pas de transactions au sens SGBDR

Big data et Datamining SQL et NoSQL 13


3. Architectures des BDD NoSQL
3. Architectures des BDD NoSQL
Trois principaux modèles

- Entrepôts clés-valeurs

- BDD orientées documents

- BDD orientées colonnes

Big data et Datamining SQL et NoSQL 15


3. Architectures des BDD NoSQL
3.1. Entrepôts clés-valeurs (key-value store)

- ECV = bdd les plus simples


- Ensemble de couples (clé, valeur)
- Clé = identifiant
- Valeur = texte, vidéo, AF123 Vol CDG – FRA : Départ 13h40, à l’heure
fichier log, image,
AF456 Vol ORY – PTP : Départ 6h00, retard 1h
structure complexe, etc.
CA875 Vol CDG1 – PEK: Départ 19h40, à l’heure

Opérations sur les données:


- Valeur = get(clé) pour récupérer la valeur stockée
- Insert(clé, valeur) insérer un nouvel elt dans la bdd
- Delete(clé) supprimer un elt de la bdd

Big data et Datamining SQL et NoSQL 16


3. Architectures des BDD NoSQL
3.1. Entrepôts clés-valeurs (key-value store)

Exemple : e-commerce

Ce qui est stocké:


- id de session (connexion au site)
- Profil utilisateur
- Données de session (temps, etc.)
- Contenu du panier

Big data et Datamining SQL et NoSQL 17


3. Architectures des BDD NoSQL
3.1. Entrepôts clés-valeurs (key-value store)

Implémentation:
- données stockées sur plusieurs nœuds (la valeur détermine nœud stockage)
- Répartition des clés selon le type de données de la partie Valeur pour
simplifier la gestion

Paramétrage de la cohérence (3 paramètres)


- Facteur de réplication: définit le nombre N de nœuds sur lesquels les données
doivent être répliquées.
- Quorum d’écriture (W): Nombre de nœuds dont on exige qu’ils notifient que
les données ont été écrites avec succès, donc écriture validée.
- Quorum de lecture (R ): Nombre min de nœuds à interroger pour être sûr
d’obtenir la dernière version des données.

On parle de cohérence forte si R + W > N

Big data et Datamining SQL et NoSQL 18


3. Architectures des BDD NoSQL
3.1. Entrepôts clés-valeurs (key-value store)

Produits:
- Redis, Amazon DynamoDB, Oracle NoSQL Database, Memcached,
Hazelcast, Ehcache, Berkeley DB (Oracle), LevelDB (Google), Aerospike,
Riak, Memcached DB, , …

Applications (exemples):
- Gestion profils utilisateurs sites e-commerce
- Gestion de sessions utilisateurs
- …

Big data et Datamining SQL et NoSQL 19


3. Architectures des BDD NoSQL
3.2. Bases orientées documents (Document store)

- Ressemblent (conceptuellement) aux Entrepôts Clés-Valeurs

- Valeur = document semi-structuré


(écrit par exemple en XML)

- Les valeurs peuvent ne pas avoir


toutes le même format

Big data et Datamining SQL et NoSQL 20


3. Architectures des BDD NoSQL
3.2. Bases orientées documents (Document store)
- Un exemple avec MongoDB (source MongoDB.com)
Les données sont stockées au format JSON (JavaScript Object Notation)
{ "_id": "5cf0029caff5056591b0ce7d",
"firstname": "Jane",
Exemple de déclaration d’1 "lastname": "Wu",
structure JSON "address": { "street": "1 Circle Rd",
"city": "Los Angeles",
"state": "CA", "zip": "90404" },
"hobbies": ["surfing", "coding"] }
Exemple de requête au format JSON + résultat:
db.users.find({ "address.zip" : "90404" })

{ "_id": "5cf0029caff5056591b0ce7d", "firstname": "Jane", "lastname": "Wu", "address":{}}


{ "_id": "507f1f77bcf86cd799439011", "firstname": "Jon", "lastname": "Davis", "address":{}}
{ "_id": "5349b4ddd2781d08c09890f3", "firstname": "Jim", "lastname": "White", "address":{}}
{ "_id": "5bf142459b72e12b2b1b2cd", "firstname": "Jeff", "lastname": "Taylor", "address":{}}
{ "_id": "5cf003283b23d04a40d5f88a", "firstname": "Jerry", "lastname": "Miller", "address":{}}
{ "_id": "5bf142459b72e12b2b1b2cd", "firstname": "Jai", "lastname": "Williams", "address":{}}
{ "_id": "5cf0036deaa1742dd225ea35", "firstname": "Jess", "lastname": "Johnson", "address":{}}
{ "_id": "54495ad94c934721ede76d90", "firstname": "Jill", "lastname": "Brown", "address":{}}
{ "_id": "566eb3c704c7b31facbb0007", "firstname": "Janet", "lastname": "Jones", "address":{}}
{ "_id": "5a999cc461d36489a27f2563", "firstname": "Jan", "lastname": "Smith", "address":{}}
Big data et Datamining SQL et NoSQL 21
3. Architectures des BDD NoSQL
3.2. Bases orientées documents (Document store)

Implémentation:
- Réplication des données sur des nœuds (assurer la disponibilité)
- Répartition équilibrée des données entre les nœuds
- Schéma de type Maître-Esclave (Master-Slave)
- Les requêtes sont envoyées au maître, qui décide vers quel esclave l’envoyer
- Si le maître tombe en panne, les esclaves élisent un nouveau maître

Produits:
MySQL*, Oracle*, MS SQL Server*, MongoDB, IBM DB2*, IBM Notes (anciennement Lotus
Notes), Couchbase (optimisation applications mobiles, IoT et web)
* : sont aussi des BDD SQL

Applications:
- Gestion de contenu: Blogs, plateformes vidéo
- Catalogues produits e-commerce (milliers de produits avec caractéristiques différentes)

Big data et Datamining SQL et NoSQL 22


3. Architectures des BDD NoSQL
3.3. Bases orientées colonnes (Column-oriented database)
- Modèle de données riche
- On peut créer:
- Des colonnes statiques à la façon SGBDR

- Des regroupements de colonnes (Super-colonnes)

- Des familles de colonnes (Column family) : équivalent de la table SGBDR

- Des colonnes dynamiques (nom colonnes, type données colonnes, leur nombre)

Big data et Datamining SQL et NoSQL 23


3. Architectures des BDD NoSQL
3.3. Bases orientées colonnes (Column-oriented database)

Implémentation:
- La BDD stockée sur plusieurs nœuds
- Disponibilité assurée par la réplication (redondance), pas de nœud maître
- On peut gérer le niveau de cohérence (propagation modifs à tous les nœuds)
- Une transaction se limite de verrouiller seulement l’enregistrement à modifier.

Ces bdd sont très efficaces car très rapides (accès + requêtes) + plus compactes

Produits: Cassandra, Hbase, Microsoft Azure Cosmos DB, Google Cloud Bigtable, …
Cassandra: CERN, eBay, Netflix, Facebook, Twitter, Instagram, The Weather Channel, …
Applications: applications ne pouvant se permettre de perdre des données

Big data et Datamining SQL et NoSQL 24


3. Architectures des BDD NoSQL
3.3. Bases orientées colonnes (Column-oriented database)

Régler le niveau de cohérence

On peut régler ce niveau, par exemple en écriture. Dans Cassandra on a plusieurs


niveaux:

ONE: on écrit sur 1 seul nœud (optimise les performances), mais si écriture perdue…

QUORUM: une écriture se propage sur une majorité de nœuds du cluster avant d’être
validée (donc plus de sécurité)

ALL: on exige que tous les nœuds aient répondu positivement pour valider une
opération d’écriture.

Big data et Datamining SQL et NoSQL 25


3. Architectures des BDD NoSQL
3.4. Top 20 des Bases de données: (db-engines.com février 2021)

Big data et Datamining SQL et NoSQL 26


3. Architectures des BDD NoSQL
3.4. Top 20 des Bases de données: (db-engines.com février 2022)

Big data et Datamining SQL et NoSQL 27


3. Architectures des BDD NoSQL
3.4. Top 20 des Bases de données: (db-engines.com mars 2023)

Big data et Datamining SQL et NoSQL 28


3. Architectures des BDD NoSQL
3.5. Autres types de BDD NoSQL
BDDs orientées graphes (Graph DB)
- BDD = nœuds + arcs entre les nœuds
- Nœuds = données
- Arcs = relations entres les nœuds (données)
Avantages:
- Arcs : évitent les jointures (coûteuses) pour retrouver 1 information
(exemple : Vidéos louées par 1 client = Arcs → Vidéos), sans passer par la
table Locations.

Exemple ci-contre : gestion des followers dans les


réseaux sociaux (source Neo4j)
BDD les plus connues: SQL Server, Redis, Maria DB

Big data et Datamining SQL et NoSQL 29


3. Architectures des BDD NoSQL
3.5. Autres types de BDD NoSQL
RDF Store (Resource Description Framework)
- Sous-classe des BDD orientées graphes
- Représenter les données sous la forme de triplets (sujet-prédicat-objet)
- RDF Store est aussi appelé Triplestore

BDDS RDF dans le top 20:


- Oracle
- IBM db2

FOAF = Friend of a Friend


= Ontologie pour décrire des
personnes + relations entre elles

Big data et Datamining SQL et NoSQL 30


3. Architectures des BDD NoSQL
3.5. Autres types de BDD NoSQL

BDDs moteurs de recherche (Search Engine Database)


- Conçues pour rechercher du contenu dans les données
- Optimisées pour rechercher des données longues, semi-structurées ou structurées
- Offrent des outils pour rechercher des motifs dans un texte

Exemples : MongoDB, Redis, ElasticSearch, …

Exemple d’utilisation: combiner plusieurs fichiers logs pour suivre en temps réel ce
qui se passe sur un système.

ElasticSearch: modèle utlisé par Amazon Web Services (AWS), Google cloud, Microsoft
Azure, …

Big data et Datamining SQL et NoSQL 31


4. Conclusion
4. Conclusion
Le NoSQL est-il l’avenir des BDD?
- NoSQL:
- Différents modèles de données répondent à des besoins différents
- Le modèle de données devient ainsi « rigide » et a un usage spécifique

- Adopter le NoSQL =
- abandonner un système universel (SGBDR). Nécessaire si on veut obtenir des
performances élevées répondant aux exigences des applis web à grande échelle
- Complexité technique BDDs transférée dans NoSQL vers les applications
(programmation), les incohérences sont par ex gérées dans les applis et non pas
vraiment dans les BDDs

- Manque de retour à cause de l’âge « jeune » des BDD NoSQL => les deux systèmes
(SGBRD et NoSQL) continueront à coexister (pour l’instant …)

Big data et Datamining SQL et NoSQL 33


Sources
• R. Bruchez. Les bases de données NoSQL et le big data: comprendre et mettre en œuvre.
Editions Eyrolles, 2015.
• B. Dayley. NoSQL with MongoDB in 24 Hours, Sams Teach Yourself. Sams Publishing, 2014
• J-L Hainaut. Bases de données - 3e éd.: Concepts, utilisation et développement. Dunod, 2015
• D. Vohra. NoSQL Web Development with Apache Cassandra. Cengage Learning, 2015.

Sites internet
• DB-engines: https://db-engines.com/en/ranking, 2023
• Mongo DB, https://docs.mongodb.com, 2023
• Cassandra, http://cassandra.apache.org/, 2023
• Amazon web services, https://aws.amazon.com/, 2023

Big data et Datamining SQL et NoSQL 34

Vous aimerez peut-être aussi