Big Data Et Nosql - Extraits
Big Data Et Nosql - Extraits
Big Data Et Nosql - Extraits
Contexte
• Applications et Plateformes Web
▫ Croissance de la quantité de données Exponentielle
▫ Volume à gérer sans précédents
. Besoin de distribuer les calculs et les données
. Nombreux serveurs
. Données hétérogènes, complexes et souvent liées
• Ex :
▫ Google, Amazon, Facebook
▫ Google DataCenter :
. 5000 servers/data center, ~1M de serveurs
▫ Facebook :
. 1 Péta Octets de données
SGBDR : Limitations
• Fonctionnalités
▫ Jointures entre les tables
▫ Construction de requêtes complexes
▫ Contraintes d’intégrité solides
• Contexte distribué
▫ Liens entre entités -> Même serveur
▫ ++ liens -> ++ placement complexe de données
La Solution : NoSQL
• NoSQL : Not Only SQL
▫ Nouvelle approche de stockage et de gestion de
données
▫ Permet le passage à l’échelle via un contexte
hautement distribué
▫ Gestion de données complexes et hétérogènes
. Pas de schéma pour les objets
• Ne remplace pas les SGBDR !!
▫ Quantité de données énorme (PétaBytes)
▫ Besoin de temps de réponses
▫ Cohérence de données faible
NoSQL BD : Principales
Caractéristiques
• Pas de relations
▫ Pas de schéma physiques ou dynamiques
• Données complexes
▫ Imbrication, tableaux
• Distribution de données (milliers de serveurs)
▫ Parallélisation des traitements (Map/Reduce)
• Replication des données
▫ Disponibilité vs Cohérence (no transactions)
▫ Peu d’écritures, Beaucoup de lectures
Mises à jour
• Gestion concurrence multi-version
▫ Idem que dans SGBD
• Maj -> label sur l’ancienne version, ajout de la
nouvelle version
• Anciennes versions nettoyées périodiquement
Documents JSon
• Principe : Clé-Valeur
▫ “nom” : “Travers”
• Types de données
▫ Atomique : String, Integer, flotants, booléens…
▫ Liste : tableaux
▫ Documents : objets {…}
Dauphine –
JSon : Identifiant
• La clé « _id » est communément utilisée pour
identifier un objet
▫ Dans une base, l’objet de même identifiant écrase
la version précédente
▫ Peut être défini automatiquement
. Exemple MongoDB : "_id" : ObjectId(1234567890)
NoSQL vs Joins
• Contexte distribué = lien entre les données
complexe
• Si l’on considère deux collections de documents
JSon
▫ Pour une jointure entre les deux collections
. Sur quel serveur se fait la jointure ?
. Distribution des données à joindre ?
. Problème de coût (plus cher qu’en local)
Conclusion
• NoSQL :
▫ Dédié à un contexte extrêmement distribué
▫ Calcul fortement distribué
▫ 4 types de calculs complexes (clé-valeur,
document, colonnes, graphes)
• Ne doit pas remplacé automatiquement un
SGBD
▫ Propriétés ACID
▫ Requêtes complexes
▫ Performance de jointure
Web 2.0 et les limites des
modèles
relationnels
▶ Beaucoup de donnees
● Digg 3TB
● Facebook 50TB
● Ebay 2PB
▶ Beaucoup d'utilisateurs
▶ Beaucoup de trafic
▶ Et les bases relationnelles pour
gerer tout
cela ?
MapReduce
▶Introduit par Google
▶2 etape
● Etape Map → itere sur une liste
d'elements
independants et accomplit une operation
specifique
sur chaque element
function(doc){}
●Etape Reduce → prend une liste et
combine les
elements selon un algorithme particulier
fonction(keys, values, rereduce){}
[4] : 9_base_de_données_NoSQL.pdf
NoSQL
•Fournit un modèle de base de données différent du modèle relationnel
ou objet
•Les modèles pour les bases de données NoSQL datent des années
1960
NoSQL
•Principalement utilisé sur des clusters de serveurs
NoSQL
•Lesentreprises du WEB 2.0 avaient besoin de solutions
technologiques plus adaptées à leurs besoins
•Développement des systèmes NoSQL propriétaires
•Facebook Cassandra, Hbase
•Google BigTable
•LinkedIn Projet Voldemort
•Twitter Cassandra
Théorème CAP
•Énoncé par Eric Brewer en 1999
•Indique
qu’il est impossible, pour un système distribué, de garantir en
même temps les trois contraintes suivantes
•Cohérence : Tous les noeuds du système voient les mêmes données au même moment
Théorème CAP
•Habituellement,un système de gestion de base de données garantit la
cohérence et la disponibilité
•Il
existe par contre un temps incompressible entre la mise à jour d’un
noeud et sa synchronisation avec les autres
•Ce temps peut avoir un grand impact sur un système très chargé
Théorème CAP
•Lesbases de données NoSQL tendent à privilégier la
disponibilité et la tolérance au partitionnement
•Il
peut être préférable que deux personnes faisant la même
recherche sur Google obtiennent des résultats différents que
pas de réponses du tout
•Facebook, Twitter, etc. utilisent le même principe
Théorème CAP
•Les bases de données NoSQL sont pratiques dans certaines situations
•Requiert une bonne tolérance au partitionnement
NoSQL - Types
•Il existe différents types de bases de données NoSQL
•Colonne
•Clé/Valeur
•Document
•Graphe
•Etc.
•Les types Document et Graphe sont basés sur le type Clé/Valeur
NoSQL - Colonne
•Les données sont sauvegardées dans des colonnes
•L’inverse des BD relationnelles où les données sont par rangées
NoSQL – Clé/Valeur
•Chaque entrée de la base de données est représentée par une clé et
une valeur quelconque
NoSQL – Document
•Spécialisation du concept de clé/valeur
•La valeur est un document
•Forme structurée d’une valeur
NoSQL – Graphe
•Basé sur la théorie des graphes
•Pratiquelorsque les relations entre les données peuvent être
représentées sous forme de graphes
•Consistent (Consistency)
•Isolation (Isolation)
•Durable (Durability)
•L’acronyme BASE veut dire
•Basically Available, Soft state, Eventual consistency
•Les bases de données relationnelles et
orientées objet respectent les
principes ACID, les bases de données NoSQL respectent les principes
BASE
•Certains logiciels peuvent fonctionner même si les résultats ne sont pas les
mêmes
•Est-ce grave si votre page Facebook n’affiche pas exactement tout ce que vos amis viennent de
publier, tant qu’éventuellement, vous êtes capable de voir ces publications?
1- Définition
Big Data est un terme populaire
utilisé pour décrire la croissance
exponentielle, la disponibilité et
l'utilisation des informations
structurées ou bien non
structurées.
"Big Data" est un terme appliqué
à des ensembles de données dont
la taille est au-delà de la capacité
des outils logiciels couramment
utilisés pour capturer, gérer et
traiter les données dans un délai
écoulé étant acceptable.
La taille de Big Data est une
cible mouvante, à partir de 2012
allant de quelques dizaines de