LangagesCentrésDonnées
Master2Fiil
Donnéesmassives
MapReduce
2/47
Plan
1Indexation/ImplantationdesOpérateurs/Calculdecoût
2RappelsJDBC/ImpedanceMismatch/JPA&Hibernate
3XML:Généralités,langageXPath
4LeLangageDuce
5Évaluationefficaced'XPath
6DonnéesMassive,MapReduce
6.1PropriétésetlimitesdesbasesSQL
6.2ParadigmeMapReduce
6.3HadoopetHDFS
6.4HiveetHiveQL
3/47
SQL
Le standard SQL spécifie un grand nombre d'aspects des bases de données
relationnelles:
Unlangagederequête( )
Unlangagedemodificationdedonnées( , )
Unlangagedeschémaetdecontraintes
Unlangagedeprogrammation(SQL/PSM)
Unmodèledeconcurrence(transactions, , , )
4/47
Garanties
Le modèle relationnel et les bases de données SQL offrent des garanties très
fortes:
Atomicity (Atomicité) : chaque transaction est du « tout ou rien ». Il est
impossible pour quelqu'un en dehors de la transaction d'observer une étape
intermédiaire.
Consistency (Cohérence) : chaque transaction fait passer la base d'un état
cohérentàunnouvelétatcohérent.Toutedonnéesauvegardéedanslabasedoit
êtrevalidevisàvisd'unensemblederègles(types,contraintes,triggers,…).
Isolation:l'exécutionconcurrentededeuxtransactionsT1etT2doitêtrela
mêmequeleurexécutionséquentielle.
Durability(Durabilité):unetransactionconfirmée( )lerestemêmeen
casdeproblèmes(pertedecourant,erreurinterne,…).
5/47
Quelimpact?
MaintenirunmodèleACIDaunimpacténormesurlesperformances(créationde
snapshots
, mise en place de verrous coûteux, attente de confirmation par le
disquequelesdonnéessontsauvées,…).
Commentaugmenterlesperformancesetlevolumedesdonnées?
Prendreun serveurplus puissant(ex. OracleExadata de40000à1 300000
USD+souscriptionmensuelle,entretien,…)
Mettreplusieursserveurs?Trèsdifficile,pourquoi?
6/47
DistributionetmodèleACID
Ilexistedeuxmodèlesdedistributionpossible:
Plusieursserveurscontenantchacununecopiecomplètedelabase:
Performancesaccruespourlesrequêtes
Diversitégéographiquepossible(plusgranderésistanceauxévènement
extérieurs)
Baissedesperformancespourlesmisesàjour
Nepermetpasdestockerplusdedonnéesquesurunseulserveur
Partitionnementdesdonnées.UnerelationRpeutêtredécoupésenmorceaux
R1,…,R1,disposéssurdes machines différentes. Ledécoupagepeut se faire
parcolonnesouparlignes.
Augmentationdelacapacitédestockageglobale
Jointures très coûteuses si deux colonnes sont sur deux machines
différentes
Agrégatscoûteuxsileslignessontsurdeuxmachinesdifférentes
Unemachineenpanneouinaccessiblecompromettoutlesystème
7/47
LemodèleACIDest-iltoujoursadapté?
LemodèleACIDestparfoistropcontraignant:
Systèmederéservationdebilletsd'avion?ModèleACIDnécessaire
Calcul du nombre de messages envoyé par utilisateurs de chaque tranche
d'âge,surFacebook?ModèleACIDinutile
Yat-ilunmodèlealternatif?
8/47
ThéorèmedeBrewer
Lethéorème(énoncécommeuneconjectureen1999parE.Breweretprouvéen
2004)ditquedansunsystèmedistribuépartageantdesdonnées,auplus2des3
propriétéssuivantespeuventêtreoptimale:
Consistency(cohérence):touslesnœudsdecalculvoientlesmêmedonnées
aumêmemoment
Availability (disponibilité) : chaque requête reçoit une réponse de succès ou
d'échec
Partition tolerence (tolérance aux pannes) : le système continue de
fonctionner correctement malgré un découpage arbitraire lié à des pannes
réseau
Le théorème en lui-même est souvent mal interprété. Il a surtout été énoncé
(d'aprèsBrewer)pourinciterlesgensàexplorerd'autresmodèles/compromis.
9/47
ModèleBASE
LemodèleBASEestrégitparlespropriétéssuivantes:
BasicallyAvailable(toujoursdisponible):lesystèmes'efforcederépondreà
unerequête,quelquesoitsonétat
Soft state (état « mou ») : l'état interne du système peut changer sans
interventiond'unutilisateur
Eventuallyconsistent(cohérentauboutd'untempsfini):sionlaissepasser
suffisammentdetempsentredeuxmisesàjouroupannes,lesystèmeconverge
versunétatcohérent
10/47
Exempleconcret
OnconsidèreunsystèmeavecdeuxnœudsN1etN2:
MiseàjourMsuividedeuxfoislamêmerequêteQ:
ACID : si M est dans une transaction, alors Q s'effectue strictement
aprèsMetlesdeuxinstancesdeQrenvoientlemêmerésultat
BASE : les deux instances de Q peuvent renvoyer des résultats
différents,Mpeuts'exécuterenmêmetempsqueQetnemêmepasêtre
fini.
N2tombeenpanne:
ACID:lesystèmeentierestenpanne
BASE:N1continuederépondre
11/47
QuepeutonfaireavecBASE?
LemodèleBASEpermetdecréerdessystèmescomposésdeplusieursnœuds,
capable de stocker des données indépendemment et de répondre rapidement.
Commentlemettreàprofit?
12/47
Plan
1Indexation/ImplantationdesOpérateurs/Calculdecoût
2RappelsJDBC/ImpedanceMismatch/JPA&Hibernate
3XML:Généralités,langageXPath
4LeLangageDuce
5Évaluationefficaced'XPath
6DonnéesMassive,MapReduce
6.1PropriétésetlimitesdesbasesSQL
6.2ParadigmeMapReduce
6.3HadoopetHDFS
6.4HiveetHiveQL
13/47
Programmationfonctionnelle,leretour
UnpeudecodeOCamlpoursedétendre
14/47
Lesitérateursmapetfold
:
:
detype( ) list list ,prendenargumentunefonction
et une liste d'éléments et applique la fonction à chaque élément. Elle
renvoielalistedesélémentstransformés(danslemêmeordre).
detype( ) list ,prendunefonctiond'agrégat,
unaccumulateurinitialetunelisted'élémentquisontpasséstouràtourà
lafonction.Lavaleurfinaledel'accumulateurestrenvoyée.
15/47
Visuellement
map
fffff
fold
f
f
f
f
f
16/47
Propriétésdemapetfold?
Lescollectionsdedépartsontinchangées
lesapplications delatransformationpar sont indépendantes, leur ordre
d'applicationn'estpasimportant
pour , l'ordre n'est pas important si l'agrégateur est associatif et
commutatif
CesobservationssontàlabasedeMapReduce
17/47
MapReduce
PopulariséparJeffreyDeanetSanjayGhemawatdansl'article:
MapReduce:SimplifiedDataProcessingonLargeClusters
(OSDI,2004)
Remarque: le paradigme n'est pas nouveau (BD distribuées, langages
fonctionnels), mais l'article l'a popularisé et a permis l'arrivée
d'implémentationsOpen-Sourcerobustes.
Cadre : on dispose d'un grand nombre de machines, dont chacune dispose
localementd'unensemblededonnées(distinctdesautres).Unnœudparticulier
jouelerôled'orchestrateurlesautressontdestravailleurs(workers).
UnetransformationMapReducesedécomposeentroisphases:
1.PhaseMap
2.PhaseShuffle
3.PhaseReduce(fold)
18/47
Préambule
Leprogrammeurfournitdeuxtransformations:
19/47
PhaseMap
Lorsdelaphase ,l'orchestrateurexécuteunecopiedelatransformationmap
sur chaque worker. Chacun ne transforme que les données qu'il possède
localement.
La fonction  reçoit ses données d'entrées sous la forme d'une paire clé,
valeur (par exemple (nom defichier, fichier) ou (id, ligne correspondant à l'id
dansunetable)).
Lafonctionrenvoiecommerésultatunelistedevaleurtransformées associéà
uneclédegroupe
20/47
PhaseShuffle
Lorsque la phase  est terminée sur tous les nœuds, les données sont
échangéesentrenœudsetgroupéesselonlaclédegroupe
Cetteopérationestunebarrière,ellenepeutseproduirequ'après lafindela
phase .Deplusellenécessitel'échangededonnéessurleréseau(coûteux).
1 / 12 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !