Les Bases de Données Nosql: Pr. Soussi Nassima
Les Bases de Données Nosql: Pr. Soussi Nassima
Les Bases de Données Nosql: Pr. Soussi Nassima
ENSA Khouribga
Nous parlons en
Brontobytes.
‒ Le mot Big Data est inventé par les Anglo-Saxon pour désigner
l'explosion du volumes de données.
‒ Représente des collections de données très volumineuses
caractérisées par:
Une vitesse de croissement exponentielle,
Une variété si grandes qu'ils dépassent l'intuition et les
capacités humaines d'analyse et même celles des outils
informatiques classiques de gestion de base de données
ou de l'information.
1. Volume
‒ Fait référence aux énormes quantités de données à traiter qui
ne cesse de s’accroître chaque seconde.
‒ Sur Facebook seulement, nous envoyons 10 millions de
messages par jour, « Likons » 4,5 millions de fois et
téléchargeons 350 millions de nouvelles photos chaque jour.
=> Nous ne parlons plus en Téraoctets mais en Zettabytes
et Brontobytes.
Les Bases de Données NoSQL et Calcul Distribué 10
Introduction sur le Big Data
2. Variété
Fait référence à l’hétérogénité de format de données (
Géolocalisation, vidéos, échanges vocaux, posts sur les
réseaux sociaux…)
=> Les technologies du Big Data permettent d’analyser
les données non structurées qui représentent au moins
80 % des informations collectées.
3.Vitesse (Vélocité)
Fait référence à la fréquence du traitement et de génération de
données.
Exemples:
1. les transactions bancaires frauduleuses détectées en quelques
secondes,
2. le temps que prennent les logiciels pour analyser les réseaux
sociaux et capter les comportements qui déclenchent l’achat,
dans des millisecondes !
Les Bases de Données NoSQL et Calcul Distribué 12
Introduction sur le Big Data
4. Véracité
‒ Concerne l’authenticité de données (Fiabilité de données).
‒ Avec autant de formes de grosse donnée, la qualité et la
précision sont moins vérifiables (Faux profils sur les réseaux
sociaux, fautes d’orthographe, les abréviations, le langage
familier, …).
=> Il est indispensable de multiplier les précautions et penser
à vérifier systématiquement la validité des données d’entrée
et de traiter notamment le cas d’obsolescence des données.
Les Bases de Données NoSQL et Calcul Distribué 13
Introduction sur le Big Data
5. Valeur
‒ Concerne la création de valeur (objectif)
‒ Représente le point le plus important des 5 V. Les
technologies de stockage et d’analyse des Big Data ont de
sens si et seulement si elles apportent de la valeur ajoutée.
=> Exploiter les données, c’est avant tout répondre à des
objectifs commerciaux ou Marketing. La définition des
objectifs orientera l’utilisation des Big Data.
Le Big Data va au-delà des 5Vs qui ont été extensiers en 8Vs,
puis en 10Vs :
Visualisation
Vulnérabilité
5 Vs + Variabilité = 8 Vs + = 10 Vs
Volatilité
Validité
6. Visualisation:
‒ Pour tirer un résultat significatif lors du traitement des
mégadonnées, il faut les visualisés avec des outils appropriés
afin d’aider les data scientists ou les analystes à mieux les
comprendre.
7. Variabilité:
‒ Elle fait référence au nombre d’incohérences dans les données.
un scénario courant qui se produit lorsque les données proviennent
de différentes sources.
‒ Même en cas de forte variabilité, les données ne sont pas forcément
invalides ni non-utilisables.
‒ Ces incohérences doivent être détectées par des techniques de détection
d’anomalies pour faciliter la création d’analyse significative.
Les Bases de Données NoSQL et Calcul Distribué 17
Introduction sur le Big Data
8. Validité :
‒ La validité a quelques similitudes avec la véracité. Comme le
sens du mot l'indique, la validité des mégadonnées signifie à quel
point les données sont correctes et précises aux fins pour
lesquelles elles sont utilisées.
‒ Il est intéressant de noter qu'une partie considérable des
mégadonnées reste inutile, ce qui est considéré comme des
«données obscures». La partie restante des données non
structurées collectées est d'abord nettoyée pour analyse.
Les Bases de Données NoSQL et Calcul Distribué 18
Introduction sur le Big Data
8. Validité : (suite)
60% du temps d’un scientifique est consacré au nettoyage
de ses données avant de pouvoir effectuer une analyse.
=> Avant l’analyse des données massives, il faut passer par le
nettoyage profont des données pour garantir une qualité des
données cohérente avec des définitions communes.
9. Vulnérabilité :
Le Big Data apporte de nouveaux problèmes de sécurité.
10. Volatilité :
‒ La volatilité des mégadonnées fait référence à la durée de
validité des données et à la durée de leur stockage.
Il faut déterminer à quel moment les données ne sont plus
pertinentes pour l'analyse actuelle.
Les Bases de Données NoSQL et Calcul Distribué 20
Introduction sur le Big Data
Volume Visualisation
Variété Variabilité
Les 10 Vs
Vitesse du Vulnérabilité
Big Data
Véracité Validité
Valeur Volatilité
Les Bases de Données NoSQL et Calcul Distribué 21
Introduction sur le Big Data
‒ Fichiers
‒ Base de Données Relationnelle
‒ Entrepôt de Données Classique
‒ Fichiers HTML:
Langage des pages web.
Interpréter par les navigateurs
Intégrant des annexes (jpg, css,
js, …)
‒ Fichiers Brute:
Suite de caractère peu structuré
Traitement du langage naturel (NPL) pour avoir des
informations.
‒ Fichiers Binaire:
Suite d’octets non lisible: Image, video, programme, …
Prétraitement à faire avant d’exploiter les données.
Limitations:
Le modèle relationnel est moins efficace et peu adapté au stockage
et à l’interrogation des données (semi/non structurées):
‒ Toutes les lignes d’une table ont les mêmes colonnes.
‒ Elle respecte un schéma de base imposé à toute la BD Mise
à jour du schéma des données est peu performant et couteux en
temps de développement.
‒ Interrogation par jointures requête complexe, lourdes et
couteuse en temps d’exécution.
Les Bases de Données NoSQL et Calcul Distribué 34
Les Systèmes de Stockage Classique
Limitations: (suite)
‒ Incapable de stocker et gérer de très grands volumes de
données (de l’ordre du brontobyte) : limité à quelques To,
‒ Elle ne savent pas se distribuer massivement.
‒ Non adaptée pour faire des calculs de statistiques
complexes sur des valeurs ni sur des données volumineuses!
Avantages :
Le grand avantage d’un Data warehouse pour une entreprise est
le fait qu’il représente une façon pratique de visualiser les données
passées sans affecter les opérations actuelles.
Les entreprises exploitent la donnée stockée dans le Data
warehouse dans une optique de Business intelligence.
Elles peuvent optimiser leurs actions commerciales grâce à
une connaissance plus fine de leur marché, de leurs clients,
concurrents et prospects.
Les Bases de Données NoSQL et Calcul Distribué 37
Les Systèmes de Stockage Classique
Limites :
Les entrepôts de données classiques s'appuient sur des bases de
données relationnelles pour stocker des données structurées
relatives à l'historique de l'entreprise dans des tables de fait.
Il est nécessaire de changer ou adapter l'architecture
existante des DW pour stocker, traiter et faire l’analyser en
temps réel des grandes quantités de données non structurées.
BD NoSQL: Définition
‒ Le terme NoSQL a été créé par Johan Oskarsson en 2009 au
cour d’un meeting à San Fransisco.
‒ Elle s’écarte au paradigme classique des BD relationnelle.
‒ Permet de gérer une grandes
quantité de données avec une
haute scalabilité et flexibilité.
Scalabilité : Définition
Lorsque la charge du serveur augmente, et qu’il est temps de
rajouter des ressources matérielles à votre infrastructure, on parle
de la scalabilité:
C’est la capacité qu’a l’architecture pour évoluer en cas de
montée en charge si nécessaire.
‒ Scalabilité horizontale : possibilité d’ajouter des serveurs
d’un type donné.
‒ Scalabilité verticale : possibilité d’upgrader un serveur (ajout
de processeurs, RAM, disques…).
BD NoSQL: Caractéristiques
Les BD NoSQL :
‒ Adoptent une représentation de données non relationnelle
‒ Ne remplacent pas les BD relationnelles mais c’est une
alternative, un complément apportant des solutions plus
intéressantes dans certains contextes
‒ Apportent une plus grande performance dans le contexte
des applications Web avec des volumétries de données
exponentielle.
BD NoSQL: Caractéristiques
1. Sharding
2. Map Reduce
3. MVCC
Fondement 1 : Sharding
« Sharding » = Partitionnement des données sur plusieurs
serveurs
‒ Un ensemble de techniques qui permet de répartir les données sur
plusieurs nœuds/serveurs (shards) pour assurer la scalabilité de
l’architecture.
‒ Mécanisme de partitionnement horizontal des données dans lequel
les objets-données sont dispachés uniformément sur des nœuds serveurs
différents en fonction d’une clé de sharding.
‒ La répartition des données est gérée automatiquement par le
système.
Les Bases de Données NoSQL et Calcul Distribué 57
Fondements des Systèmes NoSQL
Fondement 1 : Sharding
Concrètement, il s’agit de créer un cluster appelé sharded cluster
composé de plusieurs machines (appelées shard) sur lesquelles les
données contenues dans notre base vont être réparties selon une clé de
sharding.
An Example of sharding a
single collection to five
sharded servers on an
aphanumeric key field
Fondement 1 : Sharding
‒ L’ensemble des serveurs forment un cluster.
‒ Quand les besoins s’augmentent il suffit d’ajouter des serveurs
au cluster.
On a ainsi un système que l’on peut faire évoluer
facilement selon les besoins (grande scalabilité).
Remarque: La capacité d’extension est théoriquement infinie
car il n’y a à ce jour pas de limites au nombre de machines que
l’on peut ajouter.
Fondement 1 : Sharding
Avantages :
‒ Le "Sharded Cluster" est économique : On ne travaille plus avec
une seule machine extrêmement performante, mais avec un cluster
composé de plusieurs machines de milieux de gamme, nettement
moins coûteuses.
‒ les requêtes se feront sur des jeux de données moins
volumineuse et pourront être parallélisées, ce qui permet d’obtenir
des temps de réponse plus rapides.
‒ Ajouter des serveurs supplémentaires sans interruption du
service.
Les Bases de Données NoSQL et Calcul Distribué 60
Fondements des Systèmes NoSQL
Fondement 2 : MapReduce
Fondement 2 : MapReduce
Fondement 2 : MapReduce
L’algorithme MapReduce s’exécute en 5 phases :
Fondement 2 : MapReduce
1. L’étape File : lire le fichier document en entrée et initialiser les
différents « Workers MapReduce »
2. L’étape Splitting : distribuer les données à traiter sur les
différents noeuds du cluster de traitement
3. L’étape Map : effectuer le calcul demandé en local sur chaque
nœud du cluster. Cette fonction opère sur la clé du split ainsi
que sa valeur pour retourner à la fin du traitement une liste des
pairs {clé,valeur}.
Map(keyin,valin) = { (key1,value1), …, (keyn,valuen)}
On peut avoir des clés identiques dans cette liste
Les Bases de Données NoSQL et Calcul Distribué 64
Fondements des Systèmes NoSQL
Fondement 2 : MapReduce
4. L’étape Shuffling : phase intermédiaire qui permet de
transférer les outputs des mappeurs aux réducteurs après
avoir les trier par clé.
Shuffle((key1,value1), …, (keyn,valuen)) =
{(key1,{value1, …,valuep}), …, (keym,{value1, …,valueb})}
Fondement 2 : MapReduce
Exemple d’utilisation :
Soit un fichier document contenant 3 lignes composée
chacune de 3 mots parmi les mots {A, B, C, D}. Il s’agit
de compter tous les mots contenus dans ce fichier.
Le traitement MapReduce effectué pour compter les
mots du document est :
Fondement 2 : MapReduce
Exemple d’utilisation :
Fondement 2 : MapReduce
Exemple d’utilisation :
Les étapes réalisées sont :
1. L’étape File : Lire du fichier d’entrée
2. L’étape Splitting : distribuer les données à traiter sur les
différents nœuds du cluster.
3. L’étape Map : on effectue le compte de chacune des lettres
et ceci en local sur chaque nœud du cluster de traitement
Fondement 2 : MapReduce
Exemple d’utilisation :
Les étapes réalisées sont :
4. L’étape Suffling : on regroupe toutes les lettres ainsi que
leur compte à partir de tous les noeuds de traitement
5. L’étape Reduce: on effectue le cumule de toutes les valeurs
de chaque lettre
6. L’étape Result : on agrège tous les résultats des différentes
étapes Reduce et on retourne le résultat final
Fondement 3 : MVCC
MVCC Contrôle de Concurrence Multi-Version
Fondement 3 : MVCC
MVCC Contrôle de Concurrence Multi-Version
Fondement 3 : MVCC
MVCC Contrôle de Concurrence Multi-Version
Fondement 3 : MVCC
MVCC Contrôle de Concurrence Multi-Version
Type de BD NoSQL
Les types de base de données NoSQL sont:
Forces :
Interface de requête très simple et souvent accessible
facilement.
Scalabilité horizontale performante et très facile : lors de
l'ajout d'un nouveau nœud, il suffira de redéfinir les intervalles des
clés dont les serveurs du cluster sont responsables.
Opérations de lecture et écriture très performantes.
Répartition des données aisée.
Les Bases de Données NoSQL et Calcul Distribué 80
Typologie des BD NoSQL
Faiblesses :
‒ Modèle de données TROP simple : pauvre pour les
données complexes
‒ Interrogation de données par clé seulement (médiocre).
‒ On ne peut agir que sur la valeur dans son entier: on ne
peut pas réaliser d'opérations CRUD sur une partie de la
valeur.
‒ Exemple de BD clé-Valeur
Redis : projet sponsorisé par VMWare
Voldemort : développé par Linkedln en
interne puis passage en open source.
Amazon Dynamo : Riak est son
implémentation Open Source.
Forces :
Modèle de données simple mais puissant
Mise à jour possible d’un document.
Forte expressivité de requêtage (requêtes assez complexes sur
des structures imbriquées)
Permet de structurer la valeur à stocker
Possibilité d’effectuer des requêtes sur le contenu dudocument.
Stocker d'importants volumes de données distribuées et
répliquées.
Les Bases de Données NoSQL et Calcul Distribué 86
Typologie des BD NoSQL
Faiblesses :
‒ Inadaptée pour les données interconnectées
‒ Lenteur éventuelle sur les données complexe.
‒ La forte duplication des données et la difficulté à gérer
la non-cohérence de ces dernières.
Remarque: On considère que la famille de colonne existe si elle est non vide
Les Bases de Données NoSQL et Calcul Distribué 91
Typologie des BD NoSQL
Concepts de base:
1. Colonne :
entité de base représentant un champ de donnée
chaque colonne est définie par un couple clé/valeur
Concepts de base:
2. Famille de colonnes :
permettent de regrouper plusieurs colonnes
les colonnes sont regroupées par ligne
chaque ligne est identifiée par un identifiant unique
(assimilées aux tables dans le modèle relationnel)
Modèle de base:
Forces:
Modèle proche du relationnel
Modèle de données simple mais puissant (expression de
structures imbriquées)
Très grandes flexibilité
Faiblesses :
N’est pas adapté aux données interconnectées ou
complexes (de type hiérarchique)
Exemple:
Forces :
Modèle de données puissant
Très efficace pour les données liées
Exécuter des algorithmes de graphes régulièrement utilisés
dans un modèle de données fortement connecté.
Faiblesses :
Partitionnement (sharding) compliqué
Parcours moins efficace si le graphe est très connecté
Inconvénients :
‒ Elles ne sont pas spécialement adaptées au traitement de
transactions complexes.
‒ Leurs utilisation n'est pas idéale non plus pour les
applications qui recourent à l'agrégation de données.
leur schéma flexible signifie que les données ne sont pas
homogènes sur tous les documents et ont, par conséquent,
peu de chances d'être correctement agrégées.