Bases de données NoSQL

publicité
Bases de données
NoSQL
Raja CHIKY
[email protected]
2016-2017
Institut Mines-Télécom
Institut Mines-Télécom
3
About me
§ 
§ 
§ 
§ 
Associate professor in Computer Science – head of LISITE-RDI Research team
Research interest: Data stream mining, scalability and resource optimization in
distributed architectures (e.g cloud architectures), recommender systems
Lecturer in CNAM,Telecom Sud (INT), ECP, Institut Mines-Télécom, etc.
Research field: Large scale data management
Heterogeneousand
sta1cdata
Heterogeneousand
dynamicdatastreams
1. Real-time and
distributed
processing of
various data
sources
2. Use semantic
technologies to
add a semantic
layer
3. Recommender
systems and
collaborative data
mining
sensors
4. Optimizing resources in large scale systems
Institut Mines-Télécom
Plan
§  Introduction
§  Concepts de base autour des BDs
distribués
§  MapReduce
§  Bases de données clé-valeur
§  Bases de données orientées colonne
§  Bases de données orientées document
§  Bases de données orientées graphe
Institut Mines-Télécom
Introduction
§  Des entreprises face à de nouveaux usages
•  Une augmentation exponentielle des volumes de données à
traiter
•  La prise en compte des données en tant que ressources
stratégiques
§  Des technologies en constante évolution
•  Accroissement des capacités de calculs et d’analyse
•  Coût de stockage moins onéreux
• 
L’émergence du Big Data
─  Comment mettre à profit des ressources jusqu’alors
inexploitées?
─  Comment mettre à profit des sources disponibles ailleurs?
5
18/11/2016
Institut Mines-Télécom
Modèle de présentation Télécom Evolution
Le volume des données stockées
augmente en permanence
Augmentation de volume lié :
•  Aux données produites par
les objets connectés
•  Au web, réseaux sociaux
•  A l’utilisation d’ordinateurs
pour un nombre d’activités
humaines de plus en plus
grand
•  …
Conséquence :
•  La donnée numérique,
« seule trace » de processus
sans « traces papiers »
Une croissance exponentielle :
l’univers digital
Mines-Télécom
doubleInstitut
tous
les 18 mois
Big Data: exemples
§  Volumes de données estimées
• 
• 
• 
• 
Google: 15 000PB (=15 Exabytes)
Facebook: 300PB
Ebay: 90PB
Spotify: 10PB
§  Volumes de données par jour:
• 
• 
• 
• 
7
18/11/2016
Google: 100 PB (5 milliards de requêtes par jour)
Twitter: 100 TB (>200 millin de tweets par jour)
Facebook: 600 TB
…
Institut Mines-Télécom
Modèle de présentation Télécom Evolution
A quoi ressemblent ces données
§  Généralement, ce ne sont pas des données
structurées (comme dans les BD traditionnels)
normalisées (3FN ou FNBC)
§  Ce sont des données semi ou non structurées
• 
• 
• 
• 
• 
8
18/11/2016
Tweets
Logs des serveurs
Pages web
Données liées
Fichiers CSV, JSON , etc. volumineux
Institut Mines-Télécom
Modèle de présentation Télécom Evolution
{"created_at":"WedJan 21 15:21:04 +0000 2015","id":
557920823764586496,"id_str":"557920823764586496","text":"#T ulsaAirport#Oklahoma Jan 21
08:53 Temperature 37\u00b0F clouds Wind NW 7 km\/h Humidity 85% .. http:\/\/t.co\/
SnC8ST3gQC","source":"\u003ca href=\"http:\/\/www.woweather.com\/USA\/TulsaIAP.htm\"
rel=\"nofollow\"\u003eupd ate weather tulsa\u003c\/a
\u003e","truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":nu
ll,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"
user":{"id":255167 921,"id_str":"255167921","name":"Weather
Tulsa","screen_name":"wo_tulsa","location":"Tulsa","url":"http:\/\/itunes.apple.com\/app\/
weatheronline\/id299504833?mt=8","description":"Weather Tulsa\n\nhttp:\/\/
www.woweather.com \/USA\/Tulsa.htm","protected":false,"verified":false,"followers_count":
111,"friends_count":60,"listed_count":5, "favourites_count":0,"statuses_count":
33805,"created_at":"Sun Feb 20 20:31:42 +0000 2011","utc_offset":7200,"ti
me_zone":"Athens","geo_enabled":false,"lang":"en","contributors_enabled":false,"is_transla
tor":false,"profile_b ackground_color":"C0DEED","profile_background_image_url":"http:\/\/
abs.twimg.com\/images\/themes\/theme1\/bg.pn
g","profile_background_image_url_https":"https:\/\/abs.twimg.com\/images\/themes\/theme1\/
bg.png","profile_background_tile":false,"profile_link_color":"0084B4","profile_sidebar_borde
r_color":"C0DEED","profile_sidebar_fill_
color":"DDEEF6","profile_text_color":"333333","profile_use_background_image":true,"profile
_image_url":"http:\/\/pbs.twimg.com\/profile_images\/1249942071\/WO-20pxlinien_normal.png","profile_image_url_https":"https:\/\/pbs.twimg.com\/profile_images\/
1249942071\/WO-20px-linien_normal.png","default_profile":true,"default_profile_imag
e":false,"following":null,"follow_request_sent":null,"notifications":null},"geo":null,"coordinat
es":null,"place":null,"contributors":null,"retweet_count":0,"favorite_count":0,"entities":
{"hashtags":[{"text":"TulsaAirport", "indices":[0,13]},{"text":"Oklahoma","indices":
[14,23]}],"trends":[],"urls":[{"url":"http:\/\/t.co\/SnC8ST3gQC","expanded_url":"http:\/\/bit.ly\/
188eNcw","display_url":"bit.ly\/188eNcw","indices":[93,115]}],"user_mentions":[],"symbols":
[]},"favorited":false,"retweeted":false,"possibly_sensitive":false,"filter_level":"low","lang":"e
n","timestamp_ms":"1421853664710"} {"created_at":"WedJan 21 15:21:04 +0000 2015","id":
557920823877464064,"id_str":"557920823877464064","text":"An imeepisode updated:
Kyoukaino Kanata: Mini Theater # 6 ( http:\/\/t.co\/kjEPWveEHM)
#MalUpdater","source":"\u003ca href=\"http:\/\/www.malupdater.com\" rel=\"nofollow
\"\u003eMal Updater\u003c\/a
\u003e","truncated":false ,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_re
18/11/2016
9ply_to_user_id":null,"in_reply_to_user_id_
Institut Mines-Télécom
Modèle de présentation Télécom Evolution
Big Data: 3V
Velocité
Volume
PetaOctets par
Jour/Sem.
Données en
temps réel
(Collecte/
Analyse)
Variété
Données non
strcturées/ logs
web/ audio/
vidéo/ etc.
En extraire la Valeur
Institut Mines-Télécom
Le Big Data – de nouvelles possibilités
techniques
•  Stockage et traitements distribués «scalable et sans limite »
•  De nouveaux modèles : en plus des tableaux « en ligne » des
SGBDR traditionnels, on peut stocker des fichiers (JSON, XML,
YAML), des tables en colonnes, des graphes
•  Stockages volatiles « en mémoire », en complément du stockage
« sur disque »
•  Business models « open source » : Outils disponibles gratuitement,
nativement interopérables, roadmap d’évolution rythmées et portées
par la communauté internationale (entreprises et universités)
•  Architectures distribuées : pensées pour être résistantes aux pannes
•  Propriétés ACID des SGBDR plus flexibles
A corréler avec les autres technologies disruptives :
cloud, objets connectés, mobilité, réseaux sociaux
Institut Mines-Télécom
La donnée revient au centre des débats
§  Une valeur qui se concrétise dans les usages
•  Les succès des géants du web
ne cessent de démontrer la
valeur générée par les
données
•  Le volume de données
stockées est en croissance
permanente
•  Les innovations technologiques
du ‘Big Data’, résultat des
solutions mises au point par
les géants du web, apportent
de nouvelles possibilités
•  Le gouvernement français mise
sur ces progrès techniques
pour porter la croissance
économique
Institut Mines-Télécom
???
$$
12
Exemple simple: Google-Grippe
http://www.google.org/flutrends/
Institut Mines-Télécom
Macy’s
§  Plus de 800 points de vente (Macy’s &
Bloomingdale’s)
§  Segmentation de la clientèle et vue 360° multicanal du client
-> campagnes marketing personnalisées, promotions
ciblées, up- et cross-selling
(e.g. moins d’emails envoyés, mais plus de trafic généré
vers le site web de Macy’s)
§  politique de prix dynamique (sur 73 millions de
références) pour chaque point de vente, en
fonction de la demande, des stocks, de la
présence locale de concurrents
§  Les ventes en magasins ont été boostées de 10%
Source: http://www.sas.com/resources/asset/Big-Data-in-Big-Companies.pdf
14
18/11/2016
Institut Mines-Télécom
Modèle de présentation Télécom Evolution
Netflix
§  Recommandations basées sur les données utilisateur
« There are 33 million different versions of Netflix. »
75% des vidéos regardées viennent des suggestions de Netflix
à ses utilisateurs
§  Big Data a motivé l’achat des droits (pour 100 million
US$) et le tournage de la série House of Cards
(popularité de séries similaires, choix du producteur,
du réalisateur, des acteurs)
Bande annonce personnalisée en fonction du type
d’utilisateur
House of Cards a amené 2 millions de nouveaux
utilisateurs aux USA et 1 million en dehors des USA
Source: http://www.infoq.com/fr/news/2014/01/netflix-bigdatadecisions
15
18/11/2016
Institut Mines-Télécom
Modèle de présentation Télécom Evolution
Exploitation des réseaux sociaux
§  Comprendre l’audience
• 
• 
• 
• 
Quelle est la valeur de l’audience ?
Qui sont les abonnés (compte Twitter par exemple) ?
Quels sont les centres d’intérêt des abonnés ?
Identification des tweets les plus importants
§  E-réputation
•  Monitoring de l’opinion
§  Innovation participative
•  Boite à idées sur internet
•  Analyse de l’opinion pour la création de produits et services
innovants
16
18/11/2016
Institut Mines-Télécom
Modèle de présentation Télécom Evolution
Nestlé
§  Un portfolio de 2000 marques (nutrition, santé, bien-être)
§  2010 : crise liée à l’huile de palme utilisée dans les produits Kit
Kat (campagne virale de Greenpeace)
§  Depuis, une équipe de 15 personnes (Digital Acceleration
Team) surveille 24h/24 les échanges concernant les produits
Nestlé sur les réseaux sociaux avec le but d’engager le
dialogue et de transformer les sentiments négatifs
Source: http://www.usine-digitale.fr/article/une-social-war-room-cheznestle.N195769
17
18/11/2016
Institut Mines-Télécom
Modèle de présentation Télécom Evolution
Predpol
§  PredPol=« Predictive Policing »
§  prédire la probabilité des crimes et délits
(nature, localisation à quelques centaines de mètres
près, timing à 12h près)
base d’apprentissage de 13 millions d’événements
§  Los Angeles: diminution de 33% des agressions
§  Santa Cruz : diminution de
27% des cambriolages
en moins d’un an
18
18/11/2016
Institut Mines-Télécom
Modèle de présentation Télécom Evolution
Institut Mines-Télécom
Défis du Big Data
§  Appréhender une
croissance exponentielle
du volume de données
§  Maîtriser la variété des
données et en extraire
l’information pertinente
(la valeur)
§  Traitement temps réel
des informations
§  Rendre l’information
accessible au plus tôt
§  Anticiper et faciliter la
prise de décision
Institut Mines-Télécom
Acquisition
Stockage
Analyse
Visualisation
• Données structurées
• Données non structurées
(logs, images, flux, etc.)
• Classique (SGBDR,
DWH)
• Big Data (Volumétrie,
Evolutif, etc.)
• Explorative (DataMining,
Olap), prédictive
• Scalable, on the fly,
temps réel, etc.
• Reportings
• A la volée, en temps réel,
dynamique
Les limites du relationnel
21
18/11/2016
Institut Mines-Télécom
Modèle de présentation Télécom Evolution
Vision historique
Bases de données relationnelles (fin des années 70) – Innovation de rupture
•  Outils de modélisation : E/R, ..
•  langages de requêtes : SQL, etc.
•  Optimisation des requêtes
- Indexation : Arbres B+, hachage, etc.
- Interfaces, outils de report
- Gestion des transactions, OLTP
Bases de données avancées (années 80)
•  modèles : relationnel étendu, objet, objet-relationnel …
•  applis : spatial, temporel, multimédia, active, bases de connaissances, ...
Base de données et web (années 90)
•  XML et Bases de Données
•  Web-Mining
Décisionnel (années 90)
•  Entrepôts et OLAP
•  KDD et data mining
Nouvelles bases de données (fin des années 2000)
22
•  NoSQL
•  In Memory
18/11/2016
Institut Mines-Télécom
Modèle de présentation Télécom Evolution
comparaison transactionnel /
décisionnel
Caractéristique
Production / Opérationnel
OLTP
Online Transaction Processing
Décisionnel
OLAP
Online Analytical Processing
Utilisateurs
Rouages de l’entreprise
Observateurs des rouages de l’entreprise
Usage
Automatisation des processus
opérationnels
Outillage du processus de décision
Opérations
MàJ
Analyse
Type d’accès
L/E
Lecture – MàJ par batch uniquement via ETL
Niveau données
Élémentaires, courantes, orientées
applications
Global, relatives à l’historique, orientées thème
et sujet
Quantité d’information
manipulée
Faible
Importante
Taille de la base
100 MB à 1GB
1GB à 1TB
Ancienneté des données
Récente
Historique
Données
Normalisation (3NF)
Redondance, Agrégation
Temps
Instantané
Représentation du passé, prévision du futur
Accès aux données
Via les écrans d’une application
Accès direct aux données par les utilisateurs
en lecture
Institut Mines-Télécom
Limites des SGBDR
Limite
Commentaire
Volume
Difficulté à traiter dans un temps raisonnable de
larges volumes de données.
Agrégation des données dans les entrepôts.
Données uniquement
structurées
Les SGBDR ne prennent pas en compte les
données non structurées
Vitesse de stockage
Adapter le stockage à l’évolution des besoins
Absence de scalabilité
Difficulté à adapter les capacités de stockage de
manière élastique
Institut Mines-Télécom
Limites des SGBDR
•  Représentation tabulaire pas toujours adaptée
•  Normalisation imposant la répartition d’une entité sur
plusieurs tables
•  jointures sur clés étrangères pour retrouver les données relatives à
une entité
•  Surcharge sémantique
•  pas de différentiation entre entités et relations, tout est contenu
dans un schéma de table
•  Récursivité complexe
•  calcul de la fermeture transitive : si (a,b) et (b,c) sont des tuples de
R, alors (b,c) est aussi un tuple de R, déduit par inférence
•  Homogénéité de la structure tabulaire, aussi bien au niveau
des lignes que des colonnes
Institut Mines-Télécom
Ce qui a changé
• 
Complexité :
• 
• 
Indépendance par rapport au schéma :
• 
• 
• 
• 
tenir compte des évolutions de schéma
Scalabilité
• 
• 
évite de stocker des valeurs nulles
Variabilité
• 
• 
traitement indépendant d’une définition de schéma
données structurées sans être conformes à un schéma donné
données de même type peuvent être représentées différemment y compris
dans le même ensemble de données
Données éparses
• 
• 
données organisées en structures complexes
adaptation dynamique à la distribution des données et à la structure du réseau
de machines
Volume
Institut Mines-Télécom
NoSQL
§ 
2003 : Google FS (GFS) et Big Table (Hbase : version libre)
• 
• 
• 
Système de fichiers distribué fonctionnant en commodity hardware (cluster constitué d’un
grand nombre de machines de puissance moyenne)
Gigantesque table de hachage distribuée
Gère la cohérence et la distribution
HBASE : développée par la société Powerset, active dans le traitement du langage naturel
• 
système de gestion de données orienté colonnes, destinée à manipuler de très larges
volumes de données sur une architecture distribuée
• 
Utilisée par les acteurs majeurs du web (eBay, Yahoo!, Twitter)
§ 
2004 : publication de Map/Reduce
• 
• 
• 
§ 
HDFS et Hadoop
• 
§ 
Stockage des données sur GFS
Traitements distribués (MAP)
Restitution des résultats (REDUCE)
Versions Open Sources financées par Yahoo! Puis données à la fondation Apache
En 2012 :
• 
• 
Cluster de 10000 machines pour Yahoo!
Volume de 100 Péta octets sur HDFS pour Facebook
Institut Mines-Télécom
SQL/NoSQL : quelles différences ?
SGBDR
NoSQL (Not Only SQL)
Modèle relationnel :
•  Fondements théoriques
•  Normalisation
Sans schéma ou schéma dynamique
SQL (richesse des requêtes)
Adaptation de SQL (ex : CQL – Cassandra
Query Language, PigLatin)
DSL : Domain Specific Language (ex :
MongoDB)
Défaut d’impédance
Meilleure encapsulation des langages
Marqueur NULL
Pas de schéma pré-défini
Transactions ACID
Cohérence
vs
Théorème de CAP
disponibilité
OLTP/OLAP
Environnements décisionnels avec intégration
d’Hadoop ou du MapReduce
« maison » (Vertica, Pentaho, Datameer)
Institut Mines-Télécom
Le paysage des bases de données
Institut Mines-Télécom
« NoSQL,
NewSQL and Beyond: The answer to SPRAINed relational databases », 451 Group,2011
Concepts de base autour
des BD’s distribuées
Extensibilité – Sharding MapReduce
Institut Mines-Télécom
Extensibilité (scalability)
§  L'extensibilité est la propriété d'un système, d'un
réseau ou d'un processus qui témoigne de sa
capacité à gérer des charges de travail importantes
en toute souplesse ou à être agrandi sans difficulté
§  Deux types:
•  Verticale
•  Horizontale
§  Définition de la scalabilité :
Un système est scalable si ses performances sont
proportionnelles aux ressources qui lui sont allouées :
─  les transferts réseaux sont un facteur limitant de la scalabilité
─  principe de localité des données : exécuter un traitement au
plus près des données plutôt que de déplacer les données vers
un traitement (principe de base d’un système comme Hadoop)
Institut Mines-Télécom
Extensibilité verticale
§  En pratique
•  Remplacer les serveurs par
des machines plus puissantes
§  Coût important
§  Mise en place facile
Institut Mines-Télécom
Extensibilité horizontale
§  En pratique:
•  Ajout de machines ordinaires
§  Coût moins important
§  Mise en place plus délicate
Institut Mines-Télécom
Monter en charge un SGBDR
§  Problèmes de passage à l'échelle quand le jeu de données
est trop volumineux
§  SGBDR n'ont pas été conçues pour être distribués
§  Solutions de bases de données distribuées (multi-nœuds)
=>«passage à l'échelle horizontale»
§  Différentes approches:
•  Maître-esclave
•  Partitionnement (sharding)
Institut Mines-Télécom
Monter en charge un SGBDR
§  Maître/esclave
•  Toutes les écritures sont envoyées au maître
•  Les lectures peuvent être incorrectes tant que les écritures
n'ont pas été propagées
•  La volumétrie des données peut poser des problèmes si le
maître doit dupliquer les données aux esclaves
§  Partitionnement
•  Efficaces pour lectures et écritures
•  Manque de transparence, les applications doivent s'adapter
au partitionnement
•  Perte des contraintes référentielles (relations) et jointure
entre les partitions
Institut Mines-Télécom
Maître/esclave
Esclave
Client
écriture
Maître
Esclave
Institut Mines-Télécom
Réplication
synchrone ou
asynchrone
Partitionnement vertical
§  Vertical
•  Les serveurs stockent différentes tables d'une base de
données
Institut Mines-Télécom
Partitionnement horizontal
Institut Mines-Télécom
On perd alors beaucoup de l'intérêt du
relationnel !
Partitionnement horizontal
§  Chaque serveur est responsable d'un sous
ensemble de données (identifié par un intervalle de
clés)
§  Ajout d'une nouvelle machine
•  comment répartir la charge (load balancing) ?
§  Localisation des données
• 
Distributed Hash Tables (DHT)
Institut Mines-Télécom
DHT
§  Mécanisme distribué et décentralisé permettant d’associer des valeurs de
clés à un contenu par hachage de la clé
• 
• 
• 
Chaque participant gère une partie de la table de hachage.
Performance en recherche de l’ordre de log(N)
Facilement reconfigurable lorsqu’un site se connecte ou se déconnecte
§  Mécanisme général pour la localisation de ressources distribuées identifiées
par des clés
• 
• 
• 
• 
§ 
Les clés et les noeuds (adresse IP) sont hachés sur le même anneau (cercle)
Clés et pairs sont affectés à un identifiant ds [0..m]
Succ(kid) : le plus petit identifiant de noeud qui soit supérieur ou égal à k mod m
Pred(kid) : le plus grand identifiant de noeud inférieur à k mod m
Chaque clé d’identifiant k est gérée par le noeud suivant ou égal, i.e.,
d’identifiant supérieur ou égal
• 
Pred(Succ(kid)) < kid ≤ Succ(kid)
§  Fonction, de hachage consistante comme MD5, SHA1 pour éviter les
collisions et bien équilibrer la charge
40
Institut Mines-Télécom
Exemple (1)
identifier
node
key
X
6
1
0
1
7
6
succ(2) = 3
identifier
circle
6
succ(1) = 1
2
succ(6)= 0
5
3
4
41
Institut Mines-Télécom
2
2
Exemple (2)
Institut Mines-Télécom
Les choix techniques de
NoSQL
Institut Mines-Télécom
Les choix techniques du
NoSQL
§  Architecture distribuée
•  techniques de distribution des traitements et des données
avec ou sans maitre
Réplication
§  Niveau de cohérence
•  forte, à terme, faible
§  Abandon du modèle relationnel
•  nécessité de concevoir les applications pour un usage
spécifique des données
§  Transfert de la complexité vers les applications
•  gestion de conflit
Institut Mines-Télécom
la réplication
•  Principe de base du NoSQL
•  La panne est la règle (disque, application, système, serveur, …)
• 
il faut donc pouvoir assurer la sécurité des données
•  La redondance est la réponse pour faire face aux pannes. On duplique :
• 
• 
les données sur des disques différents
SPOF : Single Point Of Failure
•  Objectifs de la réplication
• 
• 
disponibilité (reprise sur panne immédiate et automatique)
scalabilité en lecture :
• 
• 
scalabilité en écriture :
• 
• 
• 
distribuer les requêtes en lecture sur plusieurs machines quand les données sont
répliquées
problèmes d’écritures concurrentes
répartition de la charge
localité des données
•  Principal problème lié à la réplication
•  La cohérence
Institut Mines-Télécom
réplication synchrone
Chaîne de 8 messages pour 3 copies, temps d’attente pouvant être rallongé
en cas de surcharge d’un serveur par exemple.
Source : polycopié de P. Rigaux – Bases de Données Documentaires et Distribuées
Institut Mines-Télécom
réplication asynchrone
Plus rapide, mais :
•  le client reçoit un acquittement alors que la réplication n’est pas complète,
•  le client poursuit son exécution alors que toutes les copies ne sont pas encore
mises-à-jour ; il se peut donc qu’une lecture renvoie des copies obsolètes
Source : polycopié de P. Rigaux – Bases de Données Documentaires et Distribuées
Institut Mines-Télécom
Cohérence
•  dépend de 3 facteurs dans le NoSQL : topologie du système (maître-esclave ou
sans maître) et le caractère asynchrone ou non des écritures
Institut Mines-Télécom
Cohérence
§  Niveaux de cohérence :
•  Cohérence forte (propriétés ACID) : réplication
synchrone et mécanisme de verrouillage fort
•  Cohérence à terme (Eventual consistency) : le
système garantit la convergence à terme vers un
état consistant
─  choix de la majorité des moteurs NoSQL
•  Cohérence faible : favorise la disponibilité des
données, jamais d’attente pour les opérations de
lecture et d’écriture ⇒ certaines requêtes peuvent
être effectuées sur des données anciennes
Institut Mines-Télécom
Consistance à terme
§  Pour être toujours consistant :
•  R + W > N
•  R = nombre de nœuds qui doivent s’accorder lors de la lecture d’une
valeur
•  W = nombre de nœuds qui doivent valider une insertion
•  N = facteur de réplication
•  Exemple : N = 3
•  On ne prend en compte ici que les nœuds concernés
Age:
15
Age: Age:
15
15
Insertion
avec W=2
Lecture
avec R=2
Age:
15
Age: Age:
16
16
Age = 16
Nœud 1 Nœud 2 Nœud 3
Nœud 1 Nœud 2 Nœud 3
W+R>3
Institut Mines-Télécom
Renvoie
16
Théorème de CAP
Institut Mines-Télécom
Théorème CAP (E.Brewer, 2000)
BASE (Basically Available, Soft state, Eventually Consistant)
Les données
sont
disponibles,
même lors de
la perte d’un
nœud
Avalaibility
Partition
tolerant
Consistency
Chaque nœud
peut
fonctionner de
manière
autonome
Les données
sont à jour
•  Au maximum 2 propriétés respectées par n'importe quel système de données distribué
•  plus précisément, si une garantie haute est assurée pour deux des propriétés, une
garantie plus faible est assurée pour la dernière
•  Pour passer à l'échelle, on utilise le partitionnement. Ce qui implique un choix entre la
cohérence ou la disponibilité
Institut Mines-Télécom
CA (1)
Pas de partitionnement,
Cohérence et disponibilité
App
Data
A
Institut Mines-Télécom
Data
B
AP (2)
Partitionnement et disponibilité
Incohérence
App
Data
A
Institut Mines-Télécom
Old Data
B
CP (3)
Partitionnement, Cohérence
Pas disponible
App
New Data
Wait for new data
A
Institut Mines-Télécom
B
CAP
Visual Guide to NoSQL Systems - Nathan Hurst's Blog
http://blog.nahurst.com/visual-guide-to-nosql-systems
Institut Mines-Télécom
MapReduce
Institut Mines-Télécom
Motivation: traitement de données à
grande échelle
§  Traiter de grands volumes de données (> 1 To)
§  Paralléliser les traitements sur des centaines /
milliers de processeurs
... Et tout cela de façon très simplifiée
Institut Mines-Télécom
MapReduce
§  Introduit par Google en 2004
•  MapReduceparadigm and how it is used in Google(Google file system,
etc.)
•  J. Dean and S. Ghemawatin 2004: MapReduce: Simplified Data
Processing on Large Clusters. OSDI 2004: 137-150
§  But: faire des traitements parallèles (indexation, datamining,
…)
§  Déplacer les traitements vers l'infrastructure de stockage
§  MapReduce Offre:
• Parallélisation et distribution automatique des traitements
• Tolérance aux pannes
• Equilibrage de charge
• Abstraction propre pour les programmeurs
Institut Mines-Télécom
principe de localité des données
Client-serveur : l’application cliente
reçoit les données du serveur
Institut Mines-Télécom
Principe de localité des données : le programme
est distribué à toutes les machines contenant les
données
Modèle de programmation
§  Emprunté à la programmation fonctionnelle
§  Les programmeurs implémentent deux méthodes:
Map: est une étape de transformation des données sous la
forme de paires clé/valeur
•  Reduce: est une étape de fusion des enregistrements par clé
pour former le résultat final
• 
Institut Mines-Télécom
MapReduce (architecture globale)
Institut Mines-Télécom
Map
§  map (in_key, in_value) -> (out_key,
intermediate_value) list
§  Exemples:
–  Majuscules
let map(k, v) = emit(k.toUpper(), v.toUpper())
(“foo”, “bar”) -> (“FOO”, “BAR”)
(“Foo”, “other”) -> (“FOO”, “OTHER”)
(“key2”, “data”) -> (“KEY2”, “DATA”)
–  Changement de clé
let map(k, v) = emit(v.length(), v)
(“hi”, “test”) -> (4, “test”)
(“x”, “quux”) -> (4, “quux”)
(“y”, “abracadabra”) -> (10, “abracadabra”)
Institut Mines-Télécom
Reduce
§  reduce (out_key, intermediate_value list) ->
out_value list
§  Après la fin de map(), toutes les valeurs
intermédiaires pour une clé de sortie sont
regroupées dans une liste
§  reduce() combine les valeurs intermédiaires dans
une ou plusieurs valeurs finales pour chaque clé de
sortie
§  Exemple:
let reduce(k, vals) =
sum = 0
foreach int v in vals:
sum += v
emit(k, sum)
(“A”, [42, 100, 312]) -> (“A”, 454)
(“B”, [12, 6, -2]) -> (“B”, 16)
Institut Mines-Télécom
Map and Reduce
§  Map (k1,v1) à list(k2,v2)
§  Reduce(k2,list(v2)) à list(k3,v3)
Les clés permettent de regrouper les données et les machines/
tâches
§  Par exemple:
• k1= identifiant d ’un document
• v1= contenu du document
• k2= mot
• v2= occurrence
• k3=mot
• v3= occurrence finale
Institut Mines-Télécom
Cas d'utilisation – Word Count
Pomme Orange
Pomme
Peche Orange
Pomme
Pomme Orange
Pomme
Fichier d’entrée
Pomme Orange
Pomme
Pomme:2
Orange:1
Pomme:2
Pomme: 1
Pomme :2
Pomme:5
Peche Orance Pomme
Peche:1
Orange:1
Pomme :1
Orange1
Orange:1
Orange1
Orange: 3
Pomme Orange
Pomme
Pomme:2
Orange:1
Peche:1
Peche:1
Map
Tri
Découpage
Institut Mines-Télécom
Reduce
Pomme: 5
Peche :1
Orange: 3
Résultat
Map/Reduce: comptage de mots
Map (string key, string value)
// key: document name
// value: document content
For each word w in value:
EmitIntermediate (w, “1”);
Reduce (String key, Iterator values)
// key: a word
// value: a list of counts
int result = 0;
For each word v in values:
result += v;
Emit (result);
Institut Mines-Télécom
Traitement vers les données
§  Données stockées dans des systèmes de fichier
distribués
•  Ex. Google File System, Hadoop Distributed File System
§  Plusieurs blocks (chunks généralement de 64Mo)
§  Noeud maitre (master node) connait les localités
des données
•  Reçoit les jobs
•  Calcule le nombre de map et reduce nécessaires
•  Sélectionne et active les nœuds esclaves
§  Noeud maitre envoie les traitements vers les
nœuds esclaves (worker nodes)
Institut Mines-Télécom
MapReduce
§  Applications
•  Indexation de document dans un moteur de recherches, grep
distribué, tri distribué, statistiques d'accès au web, construction
d'index inversé, clustering de documents, etc.
§  Plusieurs implémentations: C#, C++, Erlang, Java, Python,
etc.
§  La plus connue:
• 
Apache Hadoop Map Reduce
§  Une grande majorité des bases NoSQL intègrent une
implémentation de MapReduce
•  MongoDB, CouchDB, Riak, Cassandra
Institut Mines-Télécom
Hadoop
Projet Open Source (Apache Software Foundation)
Environnement d'exécution distribué
Java
Sous-projets: MapReduce, HDFS, Hbase, Pig, Hive,
Mahout, etc.
§  Grande volumétrie de données
§ 
§ 
§ 
§ 
•  Exemple de Yahoo: 500GB de données triées en 59s avec un
cluster de 1400 nœuds.
§  Applications:
•  LastFm: statistiques hebdomadaires (Top artistes, Top Titres)
•  Facebook: reporting et statistiques internes (croissance du
nombre d'utilisateurs, consultation des pages, etc.)
§  http://wiki.apache.org/hadoop/PoweredBy
•  Amazon, Apple, Ebay, IBM, Google, Microsoft, SAP, Twitter, etc
Institut Mines-Télécom
Use cases
§  Facebook has multiple Hadoop clusters deployed now - with the
biggest having about 2500 cpu cores and 1 PetaByte of disk
space. We are loading over 250 gigabytes of compressed data
(over 2 terabytes uncompressed) into the Hadoop file system
every day and have hundreds of jobs running each day against
these data sets. (source: https://www.facebook.com/note.php?
note_id=16121578919)
§  Google : the size of one phase of the computation [of the index]
dropped from approximately 3800 line of C++ code to
approximately 700 lines when expressed using MapReduce.
(source: The art of rails, Edward Benson, p38)
§  The Yahoo ! Search Webmap is a Hadoop application that runs
on a more than 10,000 core Linux cluster and produces data that
is now used in every Yahoo ! Web search query. (source:
en.wikipedia.org)
§  Other users: Amazon, ebay, Netflix, Spotify, IBM, LinkedIn, etc.
Institut Mines-Télécom
Implémentation des opérations
d’algèbre relationnel en MapReduce
§  Sélection:
•  Map retourne l’enregistrement s’il correspond aux critères
de sélection
•  Pas de Reduce
§  Jointure:
•  Map renvoie une paire intermédiaire composée du champ
de jointure en clé et l’enregistrement en valeur
•  Reduce reçoit pour chaque clef de jointure la liste des
enregistrements correspondants et se charge de faire le
produit cartésien de ces enregistrements
Institut Mines-Télécom
MapReduce: conclusions
§  MapReduce s'est avéré être une abstraction très
utile
§  Simplifie grandement les calculs à grande échelle
chez les grands acteurs du web (Google, facebook,
etc.)
§  Paradigme de programmation fonctionnelle peut
être appliqué à des applications à grande échelle
§  Fun & Simple: on ne se concentre que sur le
problème et on laisse la librairie gérer le « sale
boulot » (réplication, tolérance aux fautes,
répartition de charge, etc.)
Institut Mines-Télécom
Ecosystème Hadoop
§  Avro: Serialisation données
§  Chukwa: supervision de
clusters
§  Flume: collecte de données
log en temps réel
§  Hbase: BD Colonnes
§  Hive: Requêtage sur les
données (proche de SQL)
§  Pig: Langage de requêtage
(scripting)
§  Sqoop: transfert de données
entre SGDBDR et hadoop
§  Oozie: Workflow et
orchestration de jobs
§  Hue: Interface graphique pour
Hadoop
§  …
Institut Mines-Télécom
Problèmes de MapReduce
§  La simplicité est le principe du MapReduce, tant
que l'application ne nécessite pas des requêtes
complexes SQL
§  Opérations classiques de bases de données
doivent être codées à la main
•  Join, selection, projection, etc.
§  Solution: Utilisation d’un langage de haut niveau
•  Permet de traduire le langage de haut niveau en
mapReduce de façon automatique
•  Pig, Hive, etc.
76
18/11/20
16
Institut Mines-Télécom
Pig
§  Implémentation commencée par Yahoo! Research
§  Execute plus de 30% des jobs Yahoo!
§  Caractéristiques
•  Exprime des jobs mapReduce
•  Fournit des opérateurs relationnels (SQL)
─  (JOIN, GROUP BY, etc.)
•  Facilement intégrables aves des programmes
en java
Institut Mines-Télécom
Pig - exemple
url-Info
Visits
•  Soient deux tables:Visits, url-Info
•  Trouver les top 10 des pages les plus visitées dans chaque
catégorie
User
Url
Time
Amy
cnn.com
8:00
Amy
bbc.com
10:00
Amy
flickr.com
10:05
Fred
cnn.com
12:00
Url
Category
PageRank
cnn.com
News
0.9
bbc.com
News
0.8
flickr.com
Photos
0.7
espn.com
Sports
0.9
Institut Mines-Télécom
LoadVisits
LoadUrlInfo
Groupbyurl
Foreachurl
generatecount
Joinonurl
Groupbycategory
Foreachcategory
generatetop10urls
En MapReduce
Institut Mines-Télécom
En Pig
LoadVisits
Groupbyurl
Foreach url
generatecount
LoadUrl Info
Joinonurl
Groupbycategory
Foreach category
generatetop10urls
80
18/11/20
16
visits = load ‘/data/visits’ as (user, url, time);
gVisits = group visits by url;
visitCounts = foreach gVisits
generate url, count(visits);
urlInfo = load ‘/data/urlInfo’ as
(url, category, pRank);
visitCounts = join visitCounts by url,
urlInfo by url;
gCategories = group visitCounts by
category;
topUrls = foreach gCategories
generate top(visitCounts,10);
store topUrls into ‘/data/topUrls’;
* top, count sont des fonctions définies par l’utilisateur
Institut Mines-Télécom
Pig by Example
Map1
LoadVisits
Groupbyurl
Reduce1
Foreachurl
generatecount
LoadUrlInfo
Map2
Joinonurl
Reduce2
Map3
Groupbycategory
Reduce3
81
18/11/20
16
Foreachcategory
generatetop10urls
Institut Mines-Télécom
UDF: User Defined Functions
§  On peut écrire ses propres fonctions en Java qui seront
traduites en Java
§  Un exemple
https://wiki.apache.org/pig/UDFManual
Institut Mines-Télécom
Hive
Un entrepôt de données pour Hadoop
Open-Source
Ecrit en java
Les méta-données sont stockées dans des bases de
données relationnelles
§  Offre un langage de requêtage proche de SQL:
HiveQL
§  Offre la possibilité de définir des fonctions
§  Offre une indexation
§ 
§ 
§ 
§ 
http://hive.apache.org/
Institut Mines-Télécom
Architecture - Hadoop
Institut Mines-Télécom
Architecture - Hive
§  Au dessus de HDFS et Cluster Hadoop
§  Utiliser Flume et Sqoop pour migrer les données
dans Hive
§  Utiliser la commande Hive « LOAD DATA »
§  Utiliser ODBC pour se connecter à l’architecture BI
Institut Mines-Télécom
Langages - LDD
§  Creation d’une table
hive> CREATE TABLE customer (age INT, address STRING)
§  Voir les tables
hive> SHOW TABLES;
§  Décrire les tables
hive> DESCRIBE customer;
§  Modification d’une table
hive> ALTER TABLE customer ADD COLUMNS (age INT);
§  Décrire les tables
hive> DROP TABLE customer;
Institut Mines-Télécom
Langages – LMD
§  Charger un fichier dans Hive
hive> LOAD DATA LOCAL INPATH ‘/data/home/test.txt ’ OVERWRITE
INTO TABLE customer;
§  HIVEQL
hive> SELECT c.age FROM customer c WHERE c.sdate=‘2008-08-15’
hive>INSERT OVERWRITE DIRECTORY ‘/data/hdfs_file’ SELECT c.*
FROM customer c WHERE c.sdate=‘2008-08-15’;
§  Ecrit tout le contenu de la table customer dans un
répertoire hdfs
§  Peut s’utiliser avec ODBC pour s’interfacer avec des
outils de Business Intelligence
Institut Mines-Télécom
Merci pour votre attention
[email protected]
Institut Mines-Télécom
Téléchargement