Académique Documents
Professionnel Documents
Culture Documents
Intro Data Lake
Intro Data Lake
Intro Data Lake
mounir.benayed@fss.usf.tn
Data Lake vs Data Warehouse vs Base de données
Tous conçus pour stocker des données
.
Les Bases de données
Les bases de données sont devenues « populaires » dans les années 1970-1980, avec l'essor de
la BDR.
Une BD est une collection organisée de données.
Les BD sont classées en fonction de la façon dont elles stockent ces données (BDR / BDOO / BDOR).
Elles sont conçues pour stocker et mettre à jour les données structurées en temps réel. (OLTP)
Elles ne contiennent souvent que les données les plus récentes.
Data Lake vs Data Warehouse vs Base de données
Le Data Lake
Un Data Lake ou lac de données est un référentiel de données permettant de stocker des
données brutes provenant de sources diverses. Ces données peuvent être structurées, non-
structurées ou semi-structurées pour une utilisation ultérieure.
Les données « chargées » dans les BD et les ED doivent être nettoyées et préparées avant d'être
stockées.
Les D non structurées peuvent être du texte, des données de médias sociaux ,des données
machine (fichiers journaux) et les données de capteurs (IoT).
Lac de données
Un lac de données est une méthode de stockage de données massives
utilisée par le big data. Ces données sont gardées dans leurs formats
originaux (brut et granulaire) ou sont très peu transformées. Le lac de
données donne la priorité au stockage rapide et volumineux de données
hétérogènes en adoptant une architecture en cluster
Les Data Lakes sont configurés sur un cluster de serveurs standard,
• Avec les data lakes, les data scientists peuvent accéder aux données, les
préparer et les analyser plus rapidement et avec une plus grande précision.
• Pour un data warehouse, l'essentiel de la préparation des données a généralement lieu avant le traitement ;
• dans un data lake, la préparation des données se produit plus tard (seulement lorsque les données sont
réellement utilisées).
Ne remplacent pas les BD R mais sont 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 importantes
Utilisent une très forte distribution de ces données et des traitements associés sur de nombreux serveurs
Adoption croissante des bases NoSQL par des grands acteurs du Web (Google, Facebook, …) => multiplication
des offres de systèmes NoSQL
Caractéristiques générales des BD NoSQL
« Colonne / Column » : permet de disposer d'un très grand nb de valeurs sur une même ligne, d’effectuer
des requêtes par clé (stockage de listes : messages, posts, commentaires, ...)
« Graphe » : pour gérer des relations multiples entre les objets (données issues de réseaux sociaux, …)
Neo4j, OrientDB, …
BD NoSQL : Clé-valeur
Elles fonctionnent comme un grand tableau associatif et retourne une valeur dont elle ne connaît pas la structure
leur modèle peut être assimilé à une table de hachage (hashmap) distribuée
L’absence de structure ou de typage ont un impact important sur le requêtage : toute l’intelligence portée
auparavant par les requêtes SQL devra être portée par l’applicatif qui interroge la BD.
• évolutivité (scalable)
• disponibilité
• Faiblesses :
déporte une grande partie de la complexité de l'application sur la couche appication elle-même
BD NoSQL : colonne
Il est possible d’ajouter des colonnes aux tables - l'insertion d'une ligne est plus coûteuse
Modèle proche d’une table dans un SGBDR mais le nombre de colonnes est dynamique et peut varier
d’un enregistrement à un autre ce qui évite de retrouver des colonnes ayant des valeurs NULL.
HBase (Open Source de BigTable de Google utilisé pour l'indexation des pages web, Google Earth,
Google analytics, ...)
Cassandra (fondation Apache qui respecte l’architecture distribuée de Dynamo d’Amazon, Facebook)
SimpleDB (Amazon).
BD NoSQL : colonne
Ces bases de données NoSQL sont celles se rapprochant le plus des bases de données R (SGBDR).
On y retrouve le principe de “table” avec des lignes et des colonnes, mais elles ont deux principales
grosses différences :
Les colonnes sont dynamiques. Au sein d’une même table deux individus peuvent ne pas avoir le même
nombre de colonnes car les valeurs nulles ne sont pas stockées (# SGBDR). => libérer de la place de
stockage et améliorer les performances de traitement
Il suffit de ne créer qu’une seule table contenant toutes les données (# SGBDR) => absence de ‘jointure’
entre les tables.
L’historisation des données se fait à la valeur et non pas à la ligne comme dans les SGBDR cela empêche
le stockage d’informations en doublon => allège la base de données et diminue les temps de calcul.
• Les principaux concepts associés :
Colonne :
entité de base représentant un champ de donnée
chaque colonne est définie par un couple clé / valeur
une colonne contenant d’autres colonnes est nommée supercolonne.
Famille de colonnes :
permettent de regrouper plusieurs colonnes (ou supercolonnes)
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) et
sont identifiées par un nom unique
Supercolonnes
situées dans les familles de colonnes sont souvent utilisées comme les lignes d’une table de jointure dans
le modèle relationnel.
Forces et faiblesses
Forces :
Faiblesses :
Basées sur le modèle « clé-valeur » mais la valeur est un document en format semi -structuré hiérarchique de
type JSON ou XML (possible aussi de stocker n'importe quel objet, via une sérialisation)
Les documents n'ont pas de schéma, mais une structure arborescente : ils contiennent une liste de champs, un
champ a une valeur qui peut être une liste de champs, ...
CouchDB
RavenDB
MongoDB, Terrastore, …
Un document est composé de champs et des valeurs associées
Les valeurs :
sont soit d’un type simple (entier, chaine de caractère, date, ...) soit elles mêmes composées
de plusieurs couples clé/valeur.
Bien que les documents soient structurés, ces BD sont dites “schemaless” : il n’est pas nécessaire de
définir au préalable les champs utilisés dans un document
• Forces :
• Faiblesses :
S’appuie sur les notions de nœuds, de relations et de propriétés qui leur sont rattachées.
Neo4J
OrientDB
Les BD NoSQL orientés graph utilisent :
Moteur de stockage pour les objets (similaire à une base documentaire, chaque entité de cette base
étant nommée nœud)
Mécanisme de description d’arcs (relations entre les objets), arcs orientés et avec propriétés (nom,
date, ...)
Plus efficaces que les BDR pour traiter les problématiques liées aux réseaux (cartographie, relations
entre personnes, ...)