Introduction aux systèmes NoSQL (Not Only SQL)

Dimension: px
Commencer à balayer dès la page:

Download "Introduction aux systèmes NoSQL (Not Only SQL)"

Transcription

1 Introduction aux systèmes NoSQL (Not Only SQL) Bernard ESPINASSE Professeur à Aix-Marseille Université (AMU) Ecole Polytechnique Universitaire de Marseille Avril De nouveaux besoins en gestion de données 2. Introduction aux systèmes NoSQL 3. Modèle «Clés-Valeurs» 4. Modèle «Colonnes» 5. Modèle «Documents» 6. Modèle «Graphes» 1. De nouveaux besoin en gestion de données Nouveaux besoins en gestion de données Limites des SGBD Relationnels-transactionnels Le théorème de Brewer ou de CAP Le grand paysage des bases de données 2. Introduction aux systèmes NoSQL Les grands principes des systèmes NoSQL Typologie des systèmes NoSQL Quelques systèmes NoSQL Introduction au NoSQL Fondements des systèmes NoSQL : Sharding, Consistent hashing, MapReduce, MVCC, Vector-clock» Typologie des BD NoSQL 3. Modèle NoSQL «Clé-Valeur» 4. Modèle NoSQL «Colonne» 5. Modèle NoSQL «Document» 6. Modèle NoSQL «Graphe» Bernard ESPINASSE - Introduction aux systèmes NoSQL 1 Bernard ESPINASSE - Introduction aux systèmes NoSQL 2 Documents : C. Strauch, «Nosql databases», Lecture Notes, Stuttgart Media University, A. Foucret, «Livre blanc sur NoSQL», par Smile (http://www.smile.fr/livresblancs/culture-du-web/nosql). S-K. Gajendran, «A Survey on NoSQL Databases». S. Abiteboul, I. Manolescu, P. Rigaux, M-C Rousset, P. Senellart, «Web Data Management», Cambridge University Press 2011 (en ligne, la 3ème partie : J. Dean and S. Ghemawat, «MapReduce: Simplified Data Processing on Large Clusters», OSDI 2004 Présentations : P. Selmer, «NOSQL stores and Data analytics tools», Advances in Data Management, A.-C. Caron, «NoSQL», Université de Lille 1. M. Jaffré, P. Rauzy, «MapReduce», ENS, K. Tannir, «MapReduce : Algorithme de parallélisations des traitements», 2011, Nouveaux besoins en gestion de données Limites des SGBD Relationnels-transactionnels Le théorème de Brewer ou de CAP Le grand paysage des bases de données Bernard ESPINASSE - Introduction aux systèmes NoSQL 3 Bernard ESPINASSE - Introduction aux systèmes NoSQL 4

2 NoSQL Contexte Recherche sur le web 5/22 NoSQL Contexte Système distribué 6/22 Inverted File - structure Constat : essor des très grandes plateformes et applications Web (Google, Facebook, Twitter, LinkedIn, Amazon, ) volume considérable de données à gérer par ces applications nécessitant une distribution des données et leur traitement sur de nombreux serveurs ces données sont souvent associées à des dʼobjets complexes et hétérogènes => Limites des SGBD traditionnels (relationnels et transactionnels) basés sur SQL Dʼoù nouvelles approches de stockage et de gestion des données : permettant une meilleure scalabilité dans des contextes fortement distribués permettant une gestion dʼobjets complexes et hétérogènes sans avoir à déclarer onau connaît préalable le nombre lʼensemble de documents des champs n i associés représentant à un terme un objet t i. regroupées on donne derrière un poids le terme w k NoSQL à chaque(proposé document par d k Carl associé Strozzi), au terme ne se t i.le substituant poids pas traduit aux SGBD la pertinence Relationnels du document mais les pour complètant ce terme. en comblant leurs faiblesses (Not Only SQL) Système distribué Utilisent des LANs (Local Area Networks) avec 3 niveaux de communication Système distribué : = système logiciel qui permet de coordonner plusieurs ordinateurs. Généralement, cette coordination se fait par! Les envoi serveurs de messages sont via regroupés un réseauen auquel «Racks sont reliés» : liaison ces ordinateurs. réseau rapide, environ 1Go/sec Pourquoi? parce qu on manipule un très grand volume de données.! un Sans «Data distribution, center on» consiste n a pas d application en un grand scalable. nombre de «racks», interconnectés On peut imaginer par 2des scenarii routeurs de traitement (switches) des données : liaison : à 100 Mo/sec 1. On dispose d un grand ensemble de données, et on doit leur! entre différents appliquer des «traitements Data centers disponibles» : communication sur des sites distincts. internet Il faut à 2-3 Mo/sec donc envoyer les données aux endroits appropriés, et enchaîner les exécutions distantes. C est un scénario de type Workflow, que l on Les serveurs peut communiquent implémenter avec par des envoi web services. de messages, Traitements ils ne distribués. partagent pas 2. Les données sont distribuées sur un certain nombre de serveurs, et on de disque ni de ressource de traitement = architecture «shared pousse les programmes vers ces serveurs. Il est en effet plus nothing» efficace de transférer un petit programme sur le réseau plutôt qu un grand volume de données. Données distribuées. On verra aujourd hui l algorithme MapReduce qui utilise cette approche. Bernard ESPINASSE - Introduction aux systèmes NoSQL 5 Bernard ESPINASSE - Introduction aux systèmes NoSQL 6 NoSQL Contexte Système distribué 7/22 NoSQL Contexte Système distribué 8/22 Exemple : Data Centers de Google Ex. : Data center de Google (début 2010) : Utilise des LANs (Local Area Networks). On distingue 3 niveaux de! Un «communication Data center»: Google contient entre 100 et 200 «Racks», chacun contenant 1. Les 40 serveurs sont regroupés en racks. Liaison réseau rapide, environ 1Go/sec.! environ Un data serveurs center consiste par «Data-center un grand nombre» pour de un racks, total interconnectés de 1 millions de serveurs par des (estimation routeurs (switches). dʼaprès la Liaison consommation à 100 Mo/sec. électrique). 3. Entre diffé r e n t s d a t a c e n t e r s, i l y a a u s s i u n e p o s s i b i l i t é d e communication mais par liaison assez lente (internet Mo/sec) Les serveurs communiquent par envoi de messages, Ils ne partagent Ex. : Data center de Facebook (2010) : pas de disque ni de ressource de traitement.! 2500 = cpu architecture (serveurs) shared nothing. Début 2010 : 1 data center Google contient entre 100 et 200 racks,! 1 PetaByte chacun contenant dʼespace 40 disque serveurs. (= milleterabytes Environ 5000 serveurs = 1 million par de data-center Gigabytes)! Plus pour de 250 un total Gigabytes de 1 millions données de serveurs compressées (estimation (plus d après de 2 Terabytes la non consommation compressés) électrique). Schéma : LAN/data center Rack1 Rack2 Rack3 Bernard ESPINASSE - Introduction aux systèmes NoSQL 7 Bernard ESPINASSE - Introduction aux systèmes NoSQL 8

3 système logiciel permettant de coordonner plusieurs ordinateurs ordinateurs reliés par un réseau local (LAN) communiquant généralement par envoi de messages utilisant une architecture distribuée :! fonctionnant sur du matériel peu spécialisé! matériel facilement remplaçable en cas de panne Application particulière : la distribution de données sur plusieurs serveurs organisés en «data centers» :! gestion de volumes de données très importants! assurer une continuité de service en cas d'indisponibilité de service sur un serveur On dispose d'un très grand ensemble de données sur lesquelles on doit leur appliquer des traitements. 2 stratégies : Par distribution des traitements (scaling des traitements) :! on distribue ces traitements sur un nombre de machines important afin dʼabsorber des charges très importantes! on envoie les données aux endroits appropriés, et on enchaîne les exécutions distantes (scénario type Workflow implémentable avec des web services) Par distribution des données (scaling des données) :! on distribue les données sur un nombre important de serveurs afin de stocker de très grands volumes de données! on «pousse» les programmes vers ces serveurs (plus efficace de transférer un petit programme sur le réseau plutôt qu'un grand volume de données Ex : algorithme MapReduce). Bernard ESPINASSE - Introduction aux systèmes NoSQL 9 Bernard ESPINASSE - Introduction aux systèmes NoSQL 10!"#$%&&'()#%*+#*%,-)... SGBD Relationnels offrent : un système de jointure entre les tables permettant de construire des requêtes complexes impliquant plusieurs entités un système dʼintégrité référentielle permettant de sʼassurer que les liens entre les entités sont valides Contexte fortement distribué : Ces mécanismes ont un coût considérable : avec la plupart des SGBD relationnels, les données dʼune BD liées entre elles sont placées sur le même nœud du serveur si le nombre de liens important, il est de plus en plus difficile de placer les données sur des nœuds différents.. Bernard ESPINASSE - Introduction aux systèmes NoSQL 11 / Bernard ESPINASSE - Introduction aux systèmes NoSQL 12

4 !"#$%&&'()#%*+#*%,-)#./0*1233 SGBD Relationnels sont généralement transactionnels : => gestion de transactions respectant les contraintes ACID (Atomicity, Consistency, Isolation, Durability). Contexte fortement distribué : Cette gestion a un coût considérable : nécessaire de distribuer les traitements de données entre différents serveurs alors difficile de maintenir les contraintes ACID à lʼéchelle du système distribué entier tout en maintenant des performances correctes => la plupart des SGBD «NoSQL» relâchent les contraintes ACID, ou même ne proposent pas de gestion de transactions. 45 Bernard ESPINASSE - Introduction aux systèmes NoSQL 13!"#$%&'($#)*+,)-../".$%")0$%$)1'2"# Bernard ESPINASSE - Introduction aux systèmes NoSQL 14 Modèle relationnel : les données sont divisées en ligne (tuples rows) avec des colonnes (columns) prédéfinies (attributs) il nʼy a pas de tuples emboîtés il nʼy a pas de liste de valeurs Modèle agrégat : une collection dʼobjets reliés qui doivent être traités ensemble. Bernard ESPINASSE - Introduction aux systèmes NoSQL 15 Bernard ESPINASSE - Introduction aux systèmes NoSQL 16 34

5 %118):%&)6*,1#6"#%44$#9,E5,?6B>#$,:%1&B#)*",%,/:#$$*5B8 65,)*56#4%&)6*,%*+,/&6#)*",)&,)*,%, #$8%&)6*%8,+%&%.%/$C,?6B,0%A$,&6,+$:6416/$,&0%&,)*56#4%&)6*,)*&6,#67/,.$56#$,/&6#)*",)&,%7%?9,!*, %""#$"%&$,4%;$/,56#,%,4B:0,/)418$#,4%11)*",' 70):0,)/,70?,4%*?,$%#8?,%+61&$#/,65,F6GHI +%&%.%/$/,#$16#&,&0%&,)&>/,%*,$%/)$#,1#6"#%44)*",46+$89J (Martin Fowler, Aggregate Oriented Database, 19 January 2012) Théorème de CAP (Brewer, 2000) : 3 propriétés fondamentales pour les systèmes distribués :!"#$%&!"!#$%!&$'##$()$%! %*#(+'*,%!#'()*+#,-.(/ 9." /:(5+/" %8'" 8(../3'5;" 32/".(-(+8+($2" %.35" +*<$'(=3/" >" 4/" =3/" %/3?/2+" 7/" 7$22</5" '/.8+($22/../5" =3(" /5+" 7<4'(+/" %8'"./" +*<$'A-/" 7/" #BC" D'$25(5+/24&E +$./'824/FG" #/.3(E4(" <2$24/" +'$(5" )'827/5" %'$%'(<+<5" %$3'"./5" 5&5+A-/5" #"4$--/"!"#$%$&'$"$3"#$*<'/24/"H"+$35"./5"2I375"73"5&5+A-/"?$(/2+"/:84+/-/2+"./5"-J-/5"7$22</5"83"-J-/"-$-/2+"! B" 4$--/" ()*+,*-+,+./" 53'?(?82+5"7/"4$2+(23/'">"M$24+($22/'"4$''/4+/-/2+"! C"4$--/"0*%.+.+"&1.",$%*&'$"$3"N<5(5+824/"83"%8'+(+($22/-/2+"H"83432/"%822/"-$(25" (-%$'+82+/" =3L32/" 4$3%3'/" +$+8./" 73" '<5/83" 2/" 7$(+" /-%J4*/'"./" 5&5+A-/" 7/" Bernard ESPINASSE - Introduction aux '<%$27'/"4$''/4+/-/2+"D$3"/24$'/"H"/2"485"7/"-$'4/../-/2+"/2"5$35E'<5/83:;"4*8432" systèmes NoSQL 17 7$(+"%$3?$('"M$24+($22/'"7/"-82(A'/"83+$2$-/F"!"#$%&& C oherence ou Consistance : tous les nœuds du système voient exactement les mêmes données au même moment A vailability ou Disponibilité : la perte de nœuds n'empêche pas les survivants de continuer à fonctionner correctement, les données restent accessibles P artition tolerance ou Résistance au partitionnement : le système étant partitionné, aucune panne moins importante qu'une coupure totale du réseau ne doit lʼempêcher de répondre correctement (en cas de partitionnement en sous réseaux, chacun doit pouvoir fonctionner de manière autonome) Dans un système distribué, il est impossible dʼobtenir ces 3 propriétés en KL même temps, il faut en choisir 2 parmi les 3 Bernard ESPINASSE - Introduction aux systèmes NoSQL 18 SGBDR NoSQL NoSQL Les SGBDR assurent les propriétés de Consistance et de Disponibilité (Availability) => système AC Les SGBD!"#$%&'()*+",-(./"0"1%/2",$3'4/",$.3+($25"0"6$3+/"'/%'$734+($2"(2+/'7(+/"5825"83+$'(58+($2" «NoSQL» sont des systèmes CP (Cohérent et Résistant au partitionnement) ou AP (Disponible et Résistant au partitionnement). Consistance (Coherence) : Un système S est dit consistant si on peut garantir qu'une fois quʼon y enregistre un état (disons "x = y"), il donnera le même état à chaque opération suivante, jusqu'à ce que cet état soit explicitement changé par quelque chose en dehors de S! Ex1: Une instance de la BD est automatiquement pleinement consistante puisqu'il n'y a qu'un seul noeud qui maintient l'état.! Ex2 : Si 2 serveurs de BD sont impliqués, et si le système est conçu de telle sorte que toutes les clés de "a" à "m" sont conservées sur le serveur 1, et les clés "n" à "z" sont conservées sur le serveur 2, alors le système peut encore facilement garantir la cohérence! Ex3 : Supposons 2 BD avec des répliques. Si une des BD fait une opération dʼinsertion de ligne, cette opération doit être aussi faite (commited) dans la seconde BD avant que l'opération soit considérée comme complète. Pour avoir une cohérence de 100% dans un tel environnement répliqué, les nœuds doivent communiquer Plus le nb de répliques est grand plus les performances d'un tel système sont mauvaises. Bernard ESPINASSE - Introduction aux systèmes NoSQL 19 Bernard ESPINASSE - Introduction aux systèmes NoSQL 20

6 Disponibilité (Availability): Les BD dans Ex1 ou Ex2 ne sont pas fortement disponibles dans Ex1 : si le nœud tombe en panne, on perd 100% des données dans Ex2 : si le nœud tombe en panne, on perd 50% des données dans Ex3 : une simple réplication de la BD sur un autre serveur assure une disponibilité de 100%. augmenter le nb de nœuds avec des copies des données (répliques) augmente directement la disponibilité du système, en le protégeant contre les défaillances matérielles les répliques aussi aider à équilibrer la charge dʼopérations concurrences, notamment en lecture. Résistance au partitionnement (Partition-tolerance): Supposons que soit assuré par réplication «consistance» et «disponibilité». Dans le cas Ex3, supposons 2 serveurs de BD dans 2 Data-Centers différents, et que lʼon perde la connexion réseau entre les 2 Data-Centers, faisant que les 2 BD sont incapables de synchroniser leurs états. Si vous parvenez à gérer les opérations de lecture/écriture sur ces 2 BD, il peut être prouvé que les 2 serveurs ne seront plus consistants. une application bancaire gardant à tout moment «l'état de votre compte» est lʼexemple parfait du problème des enregistrements inconsistants :! Si un client retire 1000 euros à Marseille, cela doit être immédiatement répercuté à Paris, afin que le système sache exactement combien il peut retirer à tout moment! Si le système ne parvient pas à le faire, cela pourrait mécontenter de nombreux clients Si les banques décident que la «consistance» est très importante, et désactivent les opérations d'écriture lors de la panne, alors la «disponibilité» du cluster sera perdu puisque tous les comptes bancaires dans les 2 villes seront désormais gelés jusqu'à ce que le réseau soit de nouveau opérationnel. Bernard ESPINASSE - Introduction aux systèmes NoSQL 21 Bernard ESPINASSE - Introduction aux systèmes NoSQL 22 Report «NoSQL, NewSQL and Beyond: The answer to SPRAINed relational databases», 451 Group, April 15th, 2011 : Report «NoSQL, NewSQL and Beyond: The answer to SPRAINed relational databases», 451 Group, April 15th, 2011 : Face aux faiblesses des SGBDR en termes de performance, d'évolutivité et de flexibilité des besoins de traitement à grande échelle des données, alternatives suivantes avec des architectures distribuées :! NoSQL BD : BD avec schéma dynamique ou sans schéma, BD magasins de clés-valeur, BD de documents et de données graphiques,! NewSQL DB : amélioration des performances grâce à de nouveaux moteurs de stockage, des technologies transparentes de fragmentation, de nouveaux logiciels et matériels : des BD radicalement nouvelles! Data grid/cache products : amélioration des performances des applications et de la BD par stockage des données en mémoire : données persistante en cache, réplication et des données distribuées, et calcul exploitant le grid, Bernard ESPINASSE - Introduction aux systèmes NoSQL 23 Bernard ESPINASSE - Introduction aux systèmes NoSQL 24

7 SPRAIN : acronyme qui désigne les 6 facteurs clés de l'adoption de technologies de gestion de données alternatives aux traditionnelles BDR ces BD alternatives doivent permettre de traiter de très grands volumes de données, supporter des applications hautement distribuées ou très complexes Ces 6 facteurs clés sont :! Scalability (évolutivité) hardware economics (économie de matériel)! Performance BDR limitations! Relaxed consistency CAP theorem (cohérence relachée)! Agility polyglot persistence (agilité, persistance polyglotte)! Intricacy (intrication) big data, total data! Necessity (nécessité) open source Introduction au NoSQL Fondements des syst. NoSQL : Sharding Fondements des syst. NoSQL : Consistent hashing Fondements des syst. NoSQL : MapReduce Fondements des syst. NoSQL : MVCC Fondements des syst. NoSQL : Vector-clock Typologie des BD NoSQL Bernard ESPINASSE - Introduction aux systèmes NoSQL 25 Bernard ESPINASSE - Introduction aux systèmes NoSQL 26 Les BD NoSQL : Adoptent une représentation de données non relationnelle ne remplacent pas les BD relationnelles 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 exponentielle utilisent une très forte distribution de ces données et des traitements associés sur de nombreux serveurs font un compromis sur le caractère «ACID» des SGBDR pour plus de scalabilité horizontale et dʼévolutivité. Lʼadoption croissante des bases NoSQL par des grands acteurs du Web (Google, facebook, ) => multiplication des offres de systèmes NoSQL pas de schéma pour les données ou schéma dynamique données de structures complexes ou imbriquées données distribuées : partitionnement horizontal des données sur plusieurs nœuds (serveurs) généralement par utilisation dʼalgorithmes «MapReduce» réplication des données sur plusieurs noeuds privilégient la Disponibilité à la Cohérence (théorème de CAP) : AP (Disponible + Résistant au partitionnement) plutôt que CP (Cohérent + Résistant au partitionnement) => nʼont en général pas de gestion de transactions mode d'utilisation : peu d'écritures, beaucoup de lectures Bernard ESPINASSE - Introduction aux systèmes NoSQL 27 Bernard ESPINASSE - Introduction aux systèmes NoSQL 28

8 «Sharding» : Mécanisme de partitionnement horizontal (par tuples) des données dans lequel les objets-données sont stockées sur des nœuds serveurs différents en fonction dʼune clé (ex : fonction de hachage) Ex : partition = hash(o) mod n avec o = objet-données à placer et n= nb de nœuds serveur disponibles les données peuvent être aussi partitionnées afin que :! les objets-données accédés ou mis à jour en même temps, résident sur le même nœud! la charge soit uniformément répartie entre les nœuds! pour cela des objet-données peuvent /*234*0(#=&K=*(,*!(.&*(=>&,*0(#=&K=D être répliquées certains systèmes utilisent aussi un =(*/0>"&G&*!0/%/7"%"=?*/#)*/G/"%/7"%"=?*"#*0(.+/,"!(#*=(*,&%/="(#/%*)/=/*!=(,&!D partitionnement vertical (par colonnes) dans lequel des parties d'un enregistrement sont stockées sur différents!" #$%%$&'($&()*+, serveurs.!"#$%&'(* Bernard ESPINASSE - Introduction aux systèmes NoSQL 29 /00&!!&!I<+)/=&)*=($&=>&,5*,&!")&*(#*=>&*!/.&*#()&D*B>&*%(/)*"!*/%.(!=*&G&#%?*)"!=,"7<=&)* 3. Basic Concepts, Techniques and Patterns 40 )*'+&+,-',."#+"&'(. Suite quand un nœud quitte lʼanneau, les objets qui lui sont liés sont alors associés à leur nœud adjacent dans le sens horaire : Ex : le nœud C quitte lʼanneau, 3 est alors associé avec 4 et 1 au nœud A quand un nœud entre dans lʼanneau, il est placé (haché) sur lʼanneau et des objets lui seront associés selon sa place dans lʼanneau : Ex : le nœud D entre dans lʼanneau, les objets 3 et 4 lui sont associés Dʼaprès Strauch!"#$%&'#()&*+&,-(,./#0&*(-*/*1(2345*)"!6'7/!&)5*#(#'89:;5*.<%="=>,&/)&)*!?!=&.*"!* &#$"#&D*:#*&!!&#0&5*89:;*=,/#!/0="(#!*/,&*E&=="!(#&)*-(,*/*.()&!=*+&,-(,./#0&*7((!=5*/#)* B>&*")&/*7&>"#)*0(#!"!=&#=*>/!>"#$*"!*=(*<!&*=>&*!/.&*>/!>*-<#0="(#*-(,*7(=>*=>&*(7E&0=* Figure 3.4.: Consistent Hashing Initial Situation (taken from [Whi07]) 85F59*/,&*#()&!*/#)*N5O5P5Q*/,&*(7E&0=!D*F(=>*(-*=>&.*/,&*./++&)*=(*/*>/!>*,/#$&*/#)* )*'+&+,-',."#+"&'(. «Consistent hashing» : Mécanisme de partitionnement B>&*")&/*7&>"#)*0(#!"!=&#=*>/!>"#$*"!*=(*<!&*=>&*!/.&*>/!>*-<#0="(#*-(,*7(=>*=> (horizontal) dans lequel les objet-données sont stockés sur des nœuds-serveurs différents en utilisant la même fonction de hachage à la fois pour le hachage des objets et le hachage des nœuds : nœuds et objets sont associés par une même fonction de hachage, et imaginés être placés sur un anneau (rack/cluster de serveurs) Ex : A, B, C sont des nœuds (serveurs) et 1, 2, 3, 4 sont des objets. un objet est associé au premier nœud serveur dans le sens horaire : Ex : les objets 4 et 1 sont associés au nœud A ; 2 à B ; 3 à C. Dʼaprès Strauch /00&!!&!I<+)/=&)*=($&=>&,5*,&!")&*(#*=>&*!/.&*#()&D*B>&*%(/)*"!*/%.(!=*&G&#%?* 85F59*/,&*#()&!*/#)*N5O5P5Q*/,&*(7E&0=!D*F(=>*(-*=>&.*/,&*./++&)*=(*/*>/!>*,/ Bernard ESPINASSE - Introduction aux systèmes NoSQL 30 Map-Reduce : Modèle de programmation parallèle (framework de calcul distribué) pour le traitement de grands ensembles de données développé par Google pour le traitement de gros volumes de données en environnement distribué :! permet de répartir la charge sur un grand nb de serveurs (cluster)! abstraction quasi-totale de lʼinfrastructure matérielle : gère entièrement, de façon transparente le cluster, la distribution de données, la répartition de la charge, et la tolérance aux pannes! ajouter des machines augmente la performance (plug & play, scalablefriendly) la librairie MapReduce existe dans plusieurs langages (C++, C#, Erlang, Java, Python, Ruby ) Figure 3.5.: Consistent Hashing Situation after Node Joining and Departure (taken from [Whi07]) be unbalanced which in turn results in an unbalanced distribution of cache objects on these nodes (as Bernard ESPINASSE - Introduction aux systèmes NoSQL 31 it can already be seen in the small scenario of figure 3.5 where node D has to take cache objects from a greater interval than node A and especially node B). An approach to solve this issue is to hash a number of representatives/replicas also called virtual nodes for each physical node onto the ring (cf. [Whi07], as an example see figure 3.6). The number of virtual nodes for a physical can be defined individually according to its hardware capacity (cpu, memory, disk capacity) and does not have to be the same for all physical Bernard ESPINASSE - Introduction aux systèmes NoSQL 32

9 Divers usages de Map-Reduce : Utilisé par les grands acteurs du Web notamment pour : construire les index (Google Search), détection de spam (Yahoo), Data Mining (Facebook) Mais aussi pour :! De lʼanalyse dʼimages astronomique, de la bioinformatique, de la!"##$%&'(&')"'&(*+$,'-&.)$/&"&/(%$&0$"1$2&')$&232'$!4&,",)$&(*+$,'2&5600&7$'&!"##$%&'(& simulation métrologique, de lʼapprentissage ')$68&"%+",$/'&/(%$&96/&,0(,:562$&%68$,'6(/;&"/%&5)$/&"&/(%$&$/'$82&')$&232'$!&6'&5600&7$'& automatique (Machine Learning), des statistiques, )"2)$%&(/'(&')$&86/7&"/%&5600&(1$8'":$&(*+$,'2-! le calcul de la taille de plusieurs milliers de documents!"#$%&'()&! trouver le nb dʼoccurrences dʼun pattern dans un très grand volume de données <"#=$%>,$&62&"&#8(78"!!6/7&!(%$0&?(8&#8(,$226/7&0"87$&%"'"&2$'24&"/%&')$&/"!$&(?&"/&! classifier de très grands volumes de données provenant par exemple de,(!#>'6/7&(/&,0>2'$82&(?&,(!#>'$82-&a'&>2$2&"&!"#&?>/,'6(/&"/%&"&8$%>,$&?>/,'6(/-&b)$& paniers dʼachats de clients (Data Mining)!"#&?>/,'6(/&#8(,$22$2&"&:$3C1"0>$&#"68&"/%&7$/$8"'$2&"&2$'&(?&6/'$8!$%6"'$&:$3C1"0>$&! #"682-&B)$&8$%>,$&?>/,'6(/&!$87$2&"00&6/'$8!$%6"'$&1"0>$2&"22(,6"'$%&56')&')$&2"!$& 6/'$8!$%6"'$&:$3-!.)$/&"##06$%&'(&%"'"*"2$24&<"#=$%>,$&!$"/2&'(&#8(,$22&"&2$'&(?&:$32& *3&2>*!6''6/7&')$&#8(,$22&0(76,&9!"#D&"/%&8$%>,$D?>/,'6(/&,(%$;&'(&')$&2'(8"7$&/(%$2& 5)6,)&0(,"003&"##03&')$&!"#&?>/,'6(/&'(&:$32&')"'&2)(>0%&*$&#8(,$22$%&"/%&')"'&')$3&(5/-& B)$&6/'$8!$%6"'$&8$2>0'2&,"/&*$&,(/262'$/'03&)"2)$%&+>2'&"2&8$7>0"8&%"'"&"/%&#8(,$22$%&*3& ')$&?(00(56/7&/(%$2&6/&,0(,:562$&%68$,'6(/4&5)6,)&"##03&')$&8$%>,$&?>/,'6(/&'(&')$& 6/'$8!$%6"'$&8$2>0'2&"/%&#8(%>,$&')$&?6/"0&8$2>0'2-&A'&2)(>0%&*$&/('$%&')"'&%>$&'(&')$&,(/262'$/'&)"2)6/7&(?&')$&6/'$8!$%6"'$&8$2>0'2&')$8$&62&/(&,((8%6/"'(8&/$$%$%&'(&%68$,'&')$& #8(,$226/7&/(%$2&'(&?6/%&')$&6/'$8!$%6"'$&8$2>0'2-&B)62&6%$"&62&600>2'8"'$%&6/&')$&?(00(56/7&?67>8$E Bernard ESPINASSE - Introduction aux systèmes NoSQL 33 Appliqué à la BD, MapReduce traite un ensemble de clés en appliquant les fonctions Map et Reduce aux nœuds de stockage qui appliquent localement la fonction Map aux clés qui doivent être traitées et qu'ils possèdent les résultats intermédiaires peuvent être hachés comme des données ordinaires et traitées par les nœuds suivants dans le sens horaire, qui appliquent la fonction Reduce aux résultats intermédiaires et produisent les résultats finaux du fait du hachage des résultats intermédiaires, aucun coordinateur est utilisé pour diriger les nœuds de traitement vers ces résultats Dʼaprès Strauch *&)+,%-).,)/0 A?&%"'"2$'2&"8$&%62'86*>'$%&"!(/7&/(%$24&')$3&,"/&*$&8$"%&"/%&"0'$8$%&(/&$",)&/(%$&"/%&/(& 2'86,'&,(/262'$/,3&62&$/2>8$%&*3&%62'86*>'$%&'8"/2",'6(/&#8('(,(024&F>$2'6(/2&"862$&(/&)(5& G,(/,>88$/'H&!(%6?6,"'6(/2&"/%&1$826(/2&"8$&#8(,$22$%&"/%&'(&5)6,)&1"0>$2&"&%"'"2$'&5600& Bernard ESPINASSE - Introduction aux systèmes NoSQL 35 Usage de MapReduce en gestion de données : Principales opérations à faire sur des grands ensembles de données : 1. Itérer sur un grand nombre dʼenregistrements 2. Extraire quelque chose ayant un intérêt de chacun de ces enregistrements 3. Regrouper et trier les résultats intermédiaires 4. Agréger tous ces résultats ensemble 5. Générer le résultat final Dans le modèle de programmation MapReduce, le développeur implémente 2 fonctions : la fonction Map et la fonction Reduce! opérations 1 et 2 : fonction Map traite une paire clé/valeur et génère un ensemble de paires de clés intermédiaires/valeurs! opérations 3, 4 et 5 : fonction Reduce fusionne toutes les valeurs intermédiaires associées avec la même clé intermédiaire. Bernard ESPINASSE - Introduction aux systèmes NoSQL 34 Fonctionnement de MapReduce : Traite des données en entrée pour en fournir des résultats en sortie Traitement constitué de plusieurs tâches dont chacune est traitée indépendamment, puis leurs résultats sont combinés On distingue 3 opérations majeures :! Split correspond à une opération de découpage! Compute correspond à une opération de calcul! Join correspond à lʼopération de regroupement du résultat Dans le modèle de programmation MapReduce, le développeur implémente 2 fonctions :! la fonction Map! la fonction Reduce. Bernard ESPINASSE - Introduction aux systèmes NoSQL 36

10 Fonction Map : prend en entrée un ensemble de «Clé, Valeurs» et retourne une liste intermédiaire de «Clé1, Valeur1» : Map(key,value) -> list(key1,value1) Fonction Reduce : prend en entrée une liste intermédiaire de «Clé1, Valeur1» et fournit en sortie une ensemble de «Clé1, Valeur2» : Reduce(key1,list(value1)) -> value2 Lʼalgorithme MapReduce sʼexécute en 5 phases : 1. La phase Initialisation 2. La phase Map 3. La phase regroupement (Shuffle) 4. La phase de Tri 5. La phase Reduce Fonctionnement de MapReduce : Lorsque lʼapplication MapReduce est lancée, elle crée un composant «Master» responsable de la distribution des données, de la coordination de lʼexécution de différentes unités de travail ou «Workers». Le Master attribue aux Workers les tâches map et reduce Un Worker possède 3 états:! idle : il est disponible pour un nouveau traitement! in-progress : un traitement est en cours dʼexécution! completed : il a fini un traitement, il en informe alors le Master de la taille, de la localisation de ses fichiers intermédiaires Le Master gère la synchronisation, la réorganisation, le tri et le regroupement des données : lorsquʼun Worker de type map a fini son traitement, le Master regroupe, trie et renvoie le résultat à un Worker de type reduce Bernard ESPINASSE - Introduction aux systèmes NoSQL 37 Bernard ESPINASSE - Introduction aux systèmes NoSQL 38 Soit : Exemple de BD distribuée : split 0 split 1 split 2 split 3 split 4 Input files (3) read worker worker worker Map phase (1) fork (2) assign map (4) local write User Program (1) fork Master Intermediate files (on local disks) (1) fork (2) assign reduce (5) remote read worker worker Reduce phase (6) write output file 0 output file 1 Output files BD de 1To de données 1800 serveurs les données sont découpées en morceaux dʼenviron 64Mo un seul serveur effectue la réduction (afin dʼavoir les résultats dans un seul fichier) Performances de MapReduce sur cette BD : démarrage relativement lent dû au temps de propagation du programme (±1mn). les Maps sont tous finis au bout dʼenviron 80s lʼopération se termine en 150s. on atteint un pic de lecture de 30Go/s Bernard ESPINASSE - Introduction aux systèmes NoSQL Figure 1: Executionoverview 39 Bernard ESPINASSE - Introduction aux systèmes NoSQL 40 Inverted Index: The map function parses each document, and emits a sequence of word, document ID large clusters of commodity PCs connectedtogether with switched Ethernet [4]. In our environment:

11 On souhaite calculer le nombre de mots dans un document : la fonction Map, «mapfunc» est alors : mapfunc(string key, String value): // key: id du document; // value: contenu du document for each word w in value EmitIntermediate (w, 1) mapfunc a 2 arguments : la clé (key) identifiant le document dont on souhaite compter les mots le contenu du document (value) lʼensemble des valeurs est parcouru par une boucle «for each» : pour chaque mot identifié, on appelle la méthode EmitIntermediate elle place dans une zone intermédiaire le mot et la valeur 1 (correspondant à une occurrence). La fonction Reduce «reducefunc» est : reducefunc(string key, Iterator values) // key: un mot; values: une liste de valeurs result = 0 for each count v in values result += v EmitResult(result) reducefunc a 2 arguments : la clé (key) correspond à un mot identifié par la fonction mapfunc une liste de valeurs contenant le nb dʼoccurrences de ce mot la liste des valeurs correspond à lʼensemble des paires (mot, count) mises en zones intermédiaires par la fonction mapfunc pour comptabiliser tous les mots du document, on initialise la variable result à 0, puis on itére sur lʼensemble des valeurs de la liste, puis chaque valeur est rajoutée à la variable result à la fin de lʼitération, la variable result contient le total du nb dʼoccurrence et le résultat est renvoyé par la fonction EmitResult Bernard ESPINASSE - Introduction aux systèmes NoSQL 41 Bernard ESPINASSE - Introduction aux systèmes NoSQL 42 Soit le fichier du document en entrée contenant 3 lignes (fractionnement du fichier en 3) chaque ligne contient 3 lettres (AAC, CBD, ACD) traitement MapReduce effectué pour compter les mots du document : Les étapes réalisées sont : Lʼétape File : on lit le fichier en entrée et on initialise les différents «Workers MapReduce» Lʼétape Splitting : on distribue les données à traiter sur les différents noeuds du cluster de traitement Lʼétape Map : on effectue le compte de chacune des lettres et ceci en local sur chaque noeud du cluster de traitement Lʼétape Suffling : on regroupe toutes les lettres ainsi que leur compte à partir de tous les noeuds de traitement Lʼétape Reduce : on effectue le cumule de toutes les valeurs de chaque lettre Lʼétape Result : on agrège tous les résultats des différentes étapes Reduce et on retourne le résultat final. Bernard ESPINASSE - Introduction aux systèmes NoSQL 43 Bernard ESPINASSE - Introduction aux systèmes NoSQL 44

12 Contrôle de Concurrence Multi-Version (MVCC) : Méthode de contrôle de concurrence couramment utilisée par les SGBD pour gérer des accès simultanés à la base de données avec mises à jour Dans une BD NoSQL, la gestion des mises à jour est faite :! non pas en supprimant une fraction contenant les données avant modification et en la remplaçant par une fraction contenant les données modifiées! mais en marquant les anciennes données comme obsolètes et en ajoutant une nouvelle version contenant les nouvelles données! il existe ainsi plusieurs versions enregistrées, une seule est la plus récente nécessite généralement un balayage périodique pour supprimer les objets de données obsolètes. Horloges vectorielles (Vector-clocks) : Les ensembles de données répartis sur nœuds peuvent être lus et modifiés sur chaque nœud et aucune cohérence stricte est assurée par des protocoles de transactions distribuées Problème : comment faire des modifications concurrentes Une solution : les horloges vectorielles :! un vecteur d'horloge est défini comme un n-uplet V [0], V [1],..., V[n] des valeurs d'horloge à partir de chaque noeud.! à tout instant le noeud i maintient un vecteur d'horloge représentant son état et celui des autres nœuds répliques : (Vi [0] = valeur de l'horloge du premier noeud, Vi [1] = valeur de l'horloge du deuxième noeud,... Vi [i] = sa propre valeur dʼhorloge,... Vi [n] = valeur de l'horloge du dernier nœud)! les valeurs d'horloge peuvent être de réelles «timestamps» dérivées d'une horloge locale de nœud, du numéro de version/révision Bernard ESPINASSE - Introduction aux systèmes NoSQL 45 Bernard ESPINASSE - Introduction aux systèmes NoSQL 46!"#$%&'()*+*,- Stocker les informations de la façon la mieux adaptée à leur représentation => différents types de BD NoSQL : type «Clé-valeur / Key-value» : basique, chaque objet est identifié par une clé unique constituant la seule manière de le requêter! Voldemort, Redis, Riak, type «Colonne / Column» : permet de disposer d'un très grand nb de valeurs sur une même ligne, de stocker des relations «one-to-many», dʼeffectuer des requêtes par clé (adaptés au stockage de listes : messages, posts, commentaires,...)! HBase, Cassandra, Hypertable, type «Document» : pour la gestion de collections de documents, composés chacun de champs et de valeurs associées, valeurs pouvant être requêtées (adaptées au stockage de profils utilisateur)! MongoDBn CouchDB, Couchbase, type «Graphe» : pour gérer des relations multiples entre les objets (adaptés au données issues de réseaux sociaux, )! Neo4j, OrientDB, Bernard ESPINASSE - Introduction aux systèmes NoSQL 47!"#$%&'(") *+,-".,-*/0 1,234(+5,&6(*7-8& *09,:,9&;2&1,2 F,7D=7)(0?,.,'(/0) *+,-" <=+5)0-&(09 1,2(/"0+) *+,-" 6(*7-&D=7)&(& E,++&(-&-?(+(7&B(+5,- GGG GGG GG GG J,- J,- J,-!= G GG GG GGG M,7N+,2&.MO L,9*- L*(N #HF&#2;(-,&K$O& Q==/+, M*/R(;+, PM(-, <(--(097( C=0/=.M <=5?A.M <=5?A;(-, 3-&45) *+,-" 2,00"2+6,07 Q7(6A&RA,=72!,=ST WR7*6+,&(09&$5(9& Bernard ESPINASSE - Introduction aux systèmes NoSQL 48 YZ

13 !"#$%&!"!#$%!&$'##$()$%! %*#(+'*,%!#'()*+#,-.(/ ()*+%,-).,/+0/1%2)% BD 2033)*)14+%!5*52067)+ NOSQL modèle «Clé-Valeur» Forces & faiblesses des BD NoSQL 9$35".:8;$25" ;3<"./5",=>?" '/.8+($22/.5" 7(5%$5/2+" 7:8+$3+5" /B%.(C382+"./3'" /+"./3'".8')/" 3+(.(58+($2<" -8(5" 8355(" 7/".(-(+/5"(-%$'+82+/5"C3("$2+"4$273(+"D"7/" 2$3;/../5"8%%'$4*/5E" 5$.3+($2" 83" 48'84+F'/" 32(;/'5/.E" G8%%/.$25" D" 4/" +(+'/" C3/".8" -$3;824/" 9$,HI" 2/" %'J2/" 2$35" 4.855$25" ;9"?:$% D"?E#8:<$>% F%!":"C<#G$% D=E% H% I"=$9:J% K">$>% Bernard ESPINASSE - Introduction aux systèmes NoSQL 49 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 les données sont simplement représentées par un couple clé/valeur la valeur peut être une simple chaîne de caractères, ou un objet sérialisé cette 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. Implémentations les plus connues :! Amazon Dynamo (Riak en est l'implémentation Open Source)! Redis (projet sponsorisé par VMWare)! Voldemort (développé par Linkedln en interne puis passage en open source). Bernard ESPINASSE - Introduction aux systèmes NoSQL 50 4MA$>%C$%N">$%18+O,%F%!":"C<#G$%D=E%H%I"=$9:% Chaque objet est identifié par une clé unique seule façon de le requêter I8" 5+'34+3'/" 7/".:$AO/+" /5+".(A'/" /+"./" %.35" D".8" 4*8')/" 73" 7/" la structure de lʼobjet est libre, souvent laissé à la charge du de lʼapplication (XML, JSON,...), la base ne gérant généralement que des chaînes dʼoctets Leur exploitation est basée sur 4 opérations (CRUD):! C reate : créer un nouvel objet avec sa clé! create(key, value)! R ead : lit un objet à partir de sa clé! read(key)! U pdate : met à jour la valeur dʼun objet à partir de sa clé! update(key, value)! D elete: supprime un objet à partir de sa clé! delete(key) elles disposent généralement dʼune simple interface de requêtage HTTP REST accessible depuis nʼimporte quel langage de développement ont des performances très élevées en lecture et en écriture et une scalabilité horizontale considérable le besoin en scalabilité verticale est faible du fait de la simplicité des opérations effectuées Bernard ESPINASSE - Introduction aux systèmes NoSQL 51 Bernard ESPINASSE - Introduction aux systèmes NoSQL 52!"#$%&'()*+",-(./"0"1%/2",$3'4/",$.3+($25"0"6$3+/"'/%'$734+($2"(2+/'7(+/"5825"83+$'(58+($2"

14 Utilisations principales des BD NoSQL type «Clés-Valeurs» :! dépôt de données avec besoins de requêtage très simples! système de stockage de cache ou dʼinformation de sessions distribuées (quand lʼintégrité relationnelle des données est non significative)! les profils, préférences dʼutilisateur! les données de panier dʼachat! les données de capteur! les logs de données! Forces : modèle de données simple bonne mise à lʼéchelle horizontale pour les lectures et écritures :! évolutivité (scalable)! disponibilité! pas de maintenances requises lors d'ajout/suppression de colonnes Faiblesses : modèle de données TROP simple :! pauvre pour les données complexes! interrogation seulement sur clé! déporte une grande partie de la complexité de l'application sur la couche application elle-même Bernard ESPINASSE - Introduction aux systèmes NoSQL 53 Bernard ESPINASSE - Introduction aux systèmes NoSQL 54 BD NOSQL modèle «Colonne»Xxxx Forces & faiblesses des BD NoSQL «Colonne» Les données sont stockées par colonne, non par ligne on peut facilement ajouter des colonnes aux tables, par contre l'insertion d'une ligne est plus coûteuse quand les données d'une colonne se ressemblent, on peut facilement compresser la colonne modèle proche dʼune table dans un SGBDR mais ici le nombre de colonnes :! est dynamique! peut varier dʼun enregistrement à un autre ce qui évite de retrouver des colonnes ayant des valeurs NULL. Implémentations les plus connues :! 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, projet né de chez Facebook)! SimpleDB de Amazon. Bernard ESPINASSE - Introduction aux systèmes NoSQL 55 Bernard ESPINASSE - Introduction aux systèmes NoSQL 56

15 %*#(+'*,%!#'()*+#,-.(/!"#$%&' Les principaux concepts associés sont les suivants : 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 super colonne. Famille de colonnes :! permettent de regrouper plusieurs colonnes (ou super 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) et sont identifiées par un nom unique Super colonnes :! situées dans les familles de colonnes sont souvent utilisées comme les lignes dʼune table de jointure dans le modèle relationnel. Bernard ESPINASSE - Introduction aux systèmes NoSQL 57 Elles sont les plus complexes à appréhender des BD NoSQL, même si au final on a un schéma assez proche des bases documentaires elles sont très utilisées pour les traitements dʼanalyse de données et dans les traitements massifs (notamment via des opérations de type MapReduce). elles offrent plus de flexibilité que les BD relationnelles:! Il est possible dʼajouter une colonne ou! une super colonne! à nʼimporte quelle ligne! dʼune famille de colonnes, colonnes ou super colonne à tout instant.!"#$%&'()#*+%,-.#/ 012(3&-!"#$ #%&"'()*+*,,"#$ #-.%/"#$ 01,#$ +"#$ "#$ 0"$ )*+*,,"#$ #*,.$ #*%4",.$ %.-+-#/"#$ )*33"$ +"#$ +-5,"#$ 06%,"$.17+"$ 0"$ 8*-,.%'"$ 01,#$ +"$ 3*09+"$ '"+1.-*,,"+:$ ;*3&1'1.-4"3",.$ 1%$ 3*09+"$ '"+1.-*,,"+<$ +"#$ 71#"#$ *'-",./"$ )*+*,,"#$ *22'",.$ &+%#$ 0"$ 2+"=-7-+-./:$ >+$ "#.$ "22".$ &*##-7+"$ 0618*%."'$ %,"$ )*+*,,"$ *%$ %,"$ #%&"'$ +-5,"$ 06%,"$ "$ 0"$ )*+*,,"#<$)*+*,,"#$*%$#%&"'()*+*,,"$?$.*%.$-,#.1,.:$ 4)-#,%5#6%,#$'.+%(-,# 7!89 Bernard ESPINASSE - Introduction aux systèmes NoSQL 58 $'.+%(-,#+2:&-# 32,+;+;%)-<#;)+%#!# ()*$+%,$%-"+$%./012%3%!"4",5#6$%#4"*7$% =%&'()#62(;&;-.>#3,%6;&-# 2)<#%,<-,. ;"$ tuple &1'10-53"$ pour le "#.$ client +"$ *-,#$ )*,,%$ 0"$ )"%=$ 0"$ +1$ 3*%41,)"$ A*BC!:$ ;"$ 3*09+"$ #61&&%-"$ &'-,)-&1+"3",.$#%'$0"%=$)*,)"&.#$D$06%,"$&1'.$+6%.-+-#1.-*,$06%,$3*."%'$0"$#.*)E15"$&*%'$+"#$ table «Clients partitionnée en 2 familles =%&'().#A-BCB#)2(-#2)<# de colonnes : /.1,.$,*33/"$,H%0I:$J61%.'"$&1'.<$?$)"$3*09+"<$4-",.$#618*%."'$%,$3/)1,-#3"$&"'3"..1,.$ «Profile et «Orders» 0"$ chaque 0/)'-'"$ famille +"#$ 1')#$ de colonnes F'"+1.-*,#$ a.'3-,=%&'(). A?2D-#2# ",.'"$ +"#$ *78".#I<$ )"%=()-$ /.1,.$ *'-",./#$ ".$ 0-#&*#1,.$ 0"$ &'*&'-/./#$F,*3<$01."<$KI:$ des colonnes (e.g. name et payment), des super colonnes )'(:-,#%6#2..%=;2+-<# avec un nom et un nombre arbitraire =%&'()." de colonnes associées chaque famille de colonnes :-#+,-2+-<#2.#2#.-32,2+-# peut être traitée comme une table séparée +2:&-#;)#+-,(.#%6# en terme de partitionnement.?2,<;)c>(sharding) :! «Profile» E,%6;&-#6%,#$'.+%(-,# pour le client 1234 peut être sur le nœud 1 4,<-,.#6%,#$'.+%(-,#! «Orders pour le client 1234 peut être sur le noeud 2!G Bernard ESPINASSE - Introduction aux systèmes NoSQL 59 Bernard ESPINASSE - Introduction aux systèmes NoSQL 60

16 Forces : Modèle de données supportant des données semi-structurées (clairsemées) naturellement indexé (colonnes) bonne mise à l'échelle à l'horizontale MapReduce souvent utilisé en scaling horizontal, on peut voir les résultats de requêtes en temps réel Faiblesses : A éviter pour des données interconnectés : si les relations entre les données sont aussi importantes que les données elles-mêmes (comme la distance ou calculs de la trajectoire) à éviter pour les lectures de données complexes exige de la maintenance - lors de l'ajout / suppression de colonnes et leur regroupements les requêtes doivent être pré-écrit, pas de requêtes ad-hoc définis "à la volée": NE PAS utiliser pour les requêtes non temps réel et inconnues. Les BD NoSQL type «Colonne» sont principalement utilisées pour :! Netflix l'utilise notamment pour le logging et l'analyse de sa clientèle! Ebay l'utilise pour l'optimisation de la recherche! Adobe l'utilise pour le traitement des données structurées et de Business Intelligence (BI)! Des sociétés de TV lʼutilisent pour cerner leur audience et gérer le vote des spectateurs (nb élevé d'écritures rapides et analyse de base en temps réel (Cassandra)! peuvent être de bons magasins d'analyse des données semi-structurées! utilisé pour la journalisation des événements et pour des compteurs! Bernard ESPINASSE - Introduction aux systèmes NoSQL 61 Bernard ESPINASSE - Introduction aux systèmes NoSQL 62 BD NOSQL modèle «Document» Forces & faiblesses des BD NoSQL «Document» Elles stockent une collection de "documents" elles sont 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,... elles ont généralement une interface dʼaccès HTTP REST permettant dʼeffectuer des requêtes (plus complexe que lʼinterface CRUD des BD clés/valeurs) Implémentations les plus connues :! CouchDB (fondation Apache)! RavenDB (pour plateformes «.NET/Windows» - LINQ)! MongoDB, Terrastore, Bernard ESPINASSE - Introduction aux systèmes NoSQL 63 Bernard ESPINASSE - Introduction aux systèmes NoSQL 64

17 Un document est composé de champs et des valeurs associées ces valeurs :! peuvent être requêtées! 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 les documents peuvent être très hétérogènes au sein de la BD permettent dʼeffectuer des requêtes sur le contenu des documents/objets : pas possible avec les BD clés/valeurs simples Elles sont principalement utilisées dans le développement de CMS (Content Management System - outils de gestion de contenus).!"# Bernard ESPINASSE - Introduction aux systèmes NoSQL 65 $%"&'()'# *+"+(,-'.'"/# 0"'# 1"/'(2,$'# 34,$$5&# 6778# 9:;7#<'(.'//,"/#34'22'$/ Bernard ESPINASSE - Introduction aux systèmes NoSQL 66 $-+&E),-'0(&F# G'&# 2%(.,/&# 3'# 3%""+'&# H;!I# '/# JKG# &%"/# -'# <-0&# &%0)'"/# 0/1-1&+&#, 34,&&0('(#-'#/(,"&2'(/#3'&#3%""+'&#&+(1,-1&+'&#'"/('#-4,<<-1$,/1%"#'/#-,#?,&'F# Forces : modèle de données simple mais puissant (expression de structures imbriquées) bonne mise à l'échelle (surtout si sharding pris en charge) pas de maintenance de la BD requise pour ajouter/supprimer des «colonnes» forte expressivité de requêtage (requêtes assez complexes sur des structures imbriquées) Faiblesses : inadaptée pour les données interconnectées modèle de requête limitée à des clés (et indexes) peut alors être lent pour les grandes requêtes (avec MapReduce) D0# 2,1/# 3'# -'0(# $%"$'</1%"# <-0&# &1.<-'# =0'# -'&#?,&'&# 3'# 3%""+'&# ('-,/1%""'--'&L# $'&#?, $%"&'()'"/# 3'&# <'(2%(.,"$'&# +-')+'&F# :--'&# 31&<%&'"/# <,(#,1--'0(&# 3'# 2%"$/1%"",-1/+&# / 1"/+('&&,"/'&#'"#/'(.'#3'#2-'A1?1-1/+#30#.%35-'#3%$0.'"/,1('L#$'#=0'#-'&#?,&'&#('-,/1%""' "'# <'0)'"/# %22(1(F# B'//'# 3'("15('# 2%"$/1%"",-1/+# -'0(# $%"25('# 0"'# <%<0-,(1/+# 1.<%(/," Les BD NoSQL type «Document» principalement utilisées "%/,..'"/#3,"&#-'#.1-1'0#30#3+)'-%<<'.'"/#3'#BK;#MB%"/'"/#K,",*'.'"/#;N&/'.L#%0 pour : 3'#*'&/1%"#3'#$%"/'"0&O#<%0(#-'&=0'-&#$'#.%35-'#'&/#/(5&#,3,</+F#! Enregistrement dʼévénements! Systèmes de gestion de contenu! Web analytique ou analytique temps-réel! Catalogue de produits! Systèmes d'exploitation!!"#$%&'()*+",-(./"0"1%/2",$3'4/",$.3+($25"0"6$3+/"'/%'$734+($2"(2+/'7(+/"5825"83+$'(58+($2" Bernard ESPINASSE - Introduction aux systèmes NoSQL 67 Bernard ESPINASSE - Introduction aux systèmes NoSQL 68

18 Elles permettent la modélisation, le stockage et la manipulation de données complexes liées par des relations non-triviales ou variables BD NOSQL modèle «Graphe» Forces & faiblesses des BD NoSQL «Graphe» modèle de représentation des données basé sur la théorie des graphes!"#$ #%&"'()*+*,,"#$ #-.%/"#$ 01,#$ +"#$ "#$ 0"$ )*+*,,"#$ #*,.$ #*%4",.$ %.-+-#/"#$ )*33"$ +"#$ +-5,"#$ 06%,"$ sʼappuie.17+"$ sur 0"$ les 8*-,.%'"$ notions 01,#$ de noeuds, +"$ 3*09+"$ de '"+1.-*,,"+:$ relations et ;*3&1'1.-4"3",.$ de propriétés 1%$ 3*09+"$ '"+1.-*,,"+<$ qui +"#$ leur 71#"#$ sont rattachées. *'-",./"$ )*+*,,"#$ *22'",.$ &+%#$ 0"$ 2+"=-7-+-./:$ >+$ "#.$ "22".$ &*##-7+"$ 0618*%."'$ Implémentations %,"$ )*+*,,"$ *%$ les %,"$ plus #%&"'$ connues )*+*,,"$ +-5,"$ 06%,"$ "$ 0"$ )*+*,,"#<$)*+*,,"#$*%$#%&"'()*+*,,"$?$.*%.$-,#.1,.:$! Neo4J! OrientDB (fondation Apache)! ()*$+%,$%-"+$%./012%3%!"4",5#6$%#4"*7$% Bernard ESPINASSE - Introduction aux systèmes NoSQL 69 Elles utilisent : ;"$ &1'10-53"$ "#.$ +"$ 3*-,#$ )*,,%$ 0"$ )"%=$ 0"$ +1$ 3*%41,)"$ A*BC!:$ ;"$ 3*09+"$ #61&&%-"$ Bernard ESPINASSE - Introduction aux systèmes NoSQL 70 &'-,)-&1+"3",.$#%'$0"%=$)*,)"&.#$D$06%,"$&1'.$+6%.-+-#1.-*,$06%,$3*."%'$0"$#.*)E15"$&*%'$+"#$ /.1,.$,*33/"$,H%0I:$J61%.'"$&1'.<$?$)"$3*09+"<$4-",.$#618*%."'$%,$3/)1,-#3"$&"'3"..1,.$ 0"$ 0/)'-'"$ +"#$ 1')#$ F'"+1.-*,#$ ",.'"$ +"#$ *78".#I<$ )"%=()-$ /.1,.$ *'-",./#$ ".$ 0-#&*#1,.$ 0"$ &'*&'-/./#$F,*3<$01."<$KI:$.! un moteur de stockage pour les objets (similaire à une base documentaire, chaque entité de cette base étant nommée nœud)! un mécanisme de description dʼarcs (relations entre les objets), arcs orientés et avec propriétés (nom, date,...) elles sont bien plus efficaces que les BDR pour traiter les problématiques liées aux réseaux (cartographie, relations entre personnes,...) sont adaptées à la manipulation d'objets complexes organisés en réseaux : cartographie, réseaux sociaux,.. Bernard ESPINASSE - Introduction aux systèmes NoSQL 71 Bernard ESPINASSE - Introduction aux systèmes NoSQL 72!"#$%&'()*+",-(./"0"1%/2",$3'4/",$.3+($25"0"6$3+/"'/%'$734+($2"(2+/'7(+/"5825"83+$'(58+($2"

19 Forces : modèle de données puissant rapide pour les données liées, bien plus rapide que SGBDR modèles dʼinterrogation bien établis et performants : Tinkerpop pile (fournit un ensemble commun d'interfaces permettant aux différentes technologies informatiques graphiques de travailler ensemble, que le développeur utilise en cas de besoin), SPARQL et Cypher Faiblesses : Fragmentation (sharding) :! Même si elles peuvent évoluer assez bien! Pour certains domaines, on peut aussi fractionner. Les BD NoSQL type «Document» sont principalement utilisées pour :! Moteurs de recommandation! Business Intelligence (BI)! Semantic Web! Social computing! Données géospatiales! Généalogie! Web of things! Catalogue des produits! Sciences de la Vie et calcul scientifique (bioinformatique, )! Données liées, données hiérarchiques! Services de routage, d'expédition et de géolocalisation! Services financiers : chaîne de financement, dépendances, gestion des risques, détection des fraudes, Bernard ESPINASSE - Introduction aux systèmes NoSQL 73 Bernard ESPINASSE - Introduction aux systèmes NoSQL 74 Magasins de triplets RDF (Triple Stores) : the foundation of many Semantic Web systems encodés in format/langage RDF chaque ligne a une structure «nœud-lien-noeud» (sujet-prédicatobjet) possibilité de joindre des graphes ensemble automatiquement en faisant correspondre les identifiants des nœuds possibilité de fusion automatique de 2 graphes Ex: le graphe 1 a le noeud A relié à B et le graphe 2 le nœud B relié à C, l'union de ces graphes montre une relation de A à C. les données RDF interrogées via le protocole/langage de requête SPARQL permettant l'utilisation d'ontologies pour l'inférence (Groupe W3C RDF Data Access de travail) Ex : Virtuoso, Sesame, Jena!"#$%&'(#)*+%,-#. /0*0%,## Internet 12*,%2,*# : net 2,*#+/#3+4'0*,%- of computers Word 5+%6#576,#5,8# WideWeb : web 9,8#+/#6+304,2*- of documents (GGG) Giant Global Graph : graph of metadata :$$$"#$7&2*#$;+8&;#$%&'(# <%&'(#+/#4,*&6&*& I called this graph the Semantic Web, but maybe it should have been Giant Global!"#$%&&'(#)*+,#-.%/*#)*'#0'1%2)+$#3'45#46)#1%74'#+)#,*86&(#*%9'#4''2#:+%2)# Graph. - Tim Berners-Lee 2007 :&84%&#:.%/*;<#= ABBC =! Bernard ESPINASSE - Introduction aux systèmes NoSQL 75 Bernard ESPINASSE - Introduction aux systèmes NoSQL 76

Introduction aux bases de données NoSQL

Introduction aux bases de données NoSQL Introduction aux bases de données NoSQL Khaled Tannir ets@khaledtannir.net Montréal - 23 Juillet 2015 Qui suis-je? Khaled TANNIR Big Data Architect Lead 20 ans d expérience ets@khaledtannir.net @khaled_tannir

Plus en détail

NoSQL. Introduction 1/23. I NoSQL : Not Only SQL, ce n est pas du relationnel, et le contexte. I table d associations - Map - de couples (clef,valeur)

NoSQL. Introduction 1/23. I NoSQL : Not Only SQL, ce n est pas du relationnel, et le contexte. I table d associations - Map - de couples (clef,valeur) 1/23 2/23 Anne-Cécile Caron Master MIAGE - BDA 1er trimestre 2013-2014 I : Not Only SQL, ce n est pas du relationnel, et le contexte d utilisation n est donc pas celui des SGBDR. I Origine : recherche

Plus en détail

Module MLBDA Master Informatique Spécialité DAC. Cours 10 NoSQL

Module MLBDA Master Informatique Spécialité DAC. Cours 10 NoSQL Module MLBDA Master Informatique Spécialité DAC Cours 10 NoSQL Systèmes NoSQL (not only SQL) Systèmes qui abandonnent certaines propriétés des SGBDR (one size does not fit all): Le langage d interrogation

Plus en détail

NoSQL. Introduction 1/30. I NoSQL : Not Only SQL, ce n est pas du relationnel, et le contexte. I table d associations - Map - de couples (clef,valeur)

NoSQL. Introduction 1/30. I NoSQL : Not Only SQL, ce n est pas du relationnel, et le contexte. I table d associations - Map - de couples (clef,valeur) 1/30 2/30 Anne-Cécile Caron Master MIAGE - SGBD 1er trimestre 2014-2015 I : Not Only SQL, ce n est pas du relationnel, et le contexte d utilisation n est donc pas celui des SGBDR. I Origine : recherche

Plus en détail

Département informatique de l IUT (de l université) de Bordeaux Cours de Bases de Données : NoSQL 19 août 2015 Olivier Guibert. NoSQL.

Département informatique de l IUT (de l université) de Bordeaux Cours de Bases de Données : NoSQL 19 août 2015 Olivier Guibert. NoSQL. Département informatique de l IUT (de l université) de Bordeaux Cours de Bases de Données : NoSQL 19 août 2015 Olivier Guibert NoSQL Not only non relational Plan Généralités SGBD Relationnel Théorème CAP

Plus en détail

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15 MapReduce Malo Jaffré, Pablo Rauzy ENS 16 avril 2010 Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15 Qu est ce que c est? Conceptuellement Données MapReduce est un framework de calcul distribué

Plus en détail

NoSql. Principes. Google (Map Reduce, Big Table) et Amazone (Dynamo) pour faire face à la monté en charge liée au BigData

NoSql. Principes. Google (Map Reduce, Big Table) et Amazone (Dynamo) pour faire face à la monté en charge liée au BigData NoSql Principes Google (Map Reduce, Big Table) et Amazone (Dynamo) pour faire face à la monté en charge liée au BigData Les SGBD NoSql partagés ne peuvent satisfaire que 2 critères au plus NoSql Les transactions

Plus en détail

BIG DATA. Veille technologique. Malek Hamouda Nina Lachia Léo Valette. Commanditaire : Thomas Milon. Encadré: Philippe Vismara

BIG DATA. Veille technologique. Malek Hamouda Nina Lachia Léo Valette. Commanditaire : Thomas Milon. Encadré: Philippe Vismara BIG DATA Veille technologique Malek Hamouda Nina Lachia Léo Valette Commanditaire : Thomas Milon Encadré: Philippe Vismara 1 2 Introduction Historique des bases de données : méthodes de stockage et d analyse

Plus en détail

Programmation parallèle et distribuée

Programmation parallèle et distribuée Programmation parallèle et distribuée (GIF-4104/7104) 5a - (hiver 2015) Marc Parizeau, Département de génie électrique et de génie informatique Plan Données massives («big data») Architecture Hadoop distribution

Plus en détail

AVRIL 2014. Au delà de Hadoop. Panorama des solutions NoSQL

AVRIL 2014. Au delà de Hadoop. Panorama des solutions NoSQL AVRIL 2014 Panorama des solutions NoSQL QUI SOMMES NOUS? Avril 2014 2 SMILE, EN QUELQUES CHIFFRES 1er INTÉGRATEUR EUROPÉEN DE SOLUTIONS OPEN SOURCE 3 4 NOS EXPERTISES ET NOS CONVICTIONS DANS NOS LIVRES

Plus en détail

Synthèse d étude et projets d'intergiciels. Base NOSQL

Synthèse d étude et projets d'intergiciels. Base NOSQL Synthèse d étude et projets d'intergiciels Base NOSQL octera [AT] octera [DOT] info Résumé Devant le besoin grandissant en performance et en disponibilité des services/sites possédant un fort trafic, un

Plus en détail

Groupe de Discussion Big Data Aperçu des technologies et applications. Stéphane MOUTON stephane.mouton@cetic.be

Groupe de Discussion Big Data Aperçu des technologies et applications. Stéphane MOUTON stephane.mouton@cetic.be Groupe de Discussion Big Data Aperçu des technologies et applications Stéphane MOUTON stephane.mouton@cetic.be Recherche appliquée et transfert technologique q Agréé «Centre Collectif de Recherche» par

Plus en détail

Bases de données documentaires et distribuées Cours NFE04

Bases de données documentaires et distribuées Cours NFE04 Bases de données documentaires et distribuées Cours NFE04 Cloud et scalabilité Auteurs : Raphaël Fournier-S niehotta, Philippe Rigaux, Nicolas Travers prénom.nom@cnam.fr Département d informatique Conservatoire

Plus en détail

http://blog.khaledtannir.net

http://blog.khaledtannir.net Algorithme de parallélisations des traitements Khaled TANNIR Doctorant CIFRE LARIS/ESTI http://blog.khaledtannir.net these@khaledtannir.net 2e SéRI 2010-2011 Jeudi 17 mars 2011 Présentation Doctorant CIFRE

Plus en détail

Programmation parallèle et distribuée

Programmation parallèle et distribuée Programmation parallèle et distribuée (GIF-4104/7104) 5a - (hiver 2014) Marc Parizeau, Département de génie électrique et de génie informatique Plan Mégadonnées («big data») Architecture Hadoop distribution

Plus en détail

NoSQL Faut-il franchir le pas?

NoSQL Faut-il franchir le pas? NoSQL Faut-il franchir le pas? Guillaume HARRY Journées rbdd Octobre 2015 Sommaire 1. Evolution des bases de données 2. Le mouvement NoSQL 3. Les grandes familles du NoSQL 4. Aller ou non vers le NoSQL?

Plus en détail

Web et bases de données : un mariage nécessaire pour faire face aux défis des données massives

Web et bases de données : un mariage nécessaire pour faire face aux défis des données massives Web et bases de données : un mariage nécessaire pour faire face aux défis des données massives Module 7 : Familles de bases de données NoSQL Les bases de données relationnelles mises au point dans les

Plus en détail

Cartographie des solutions BigData

Cartographie des solutions BigData Cartographie des solutions BigData Panorama du marché et prospective 1 1 Solutions BigData Défi(s) pour les fournisseurs Quel marché Architectures Acteurs commerciaux Solutions alternatives 2 2 Quels Défis?

Plus en détail

Programmation parallèle et distribuée (Master 1 Info 2015-2016)

Programmation parallèle et distribuée (Master 1 Info 2015-2016) Programmation parallèle et distribuée (Master 1 Info 2015-2016) Hadoop MapReduce et HDFS Note bibliographique : ce cours est largement inspiré par le cours de Benjamin Renaut (Tokidev SAS) Introduction

Plus en détail

NoSQL : en Quête de Performances Extrêmes

NoSQL : en Quête de Performances Extrêmes NoSQL : en Quête de Performances Extrêmes Alors que l audience du web croît sans cesse, les applications Internet à succès ont été confrontées aux mêmes problèmes de base de données : si les serveurs web

Plus en détail

Chapitre 1. Introduction aux Bases de Données. Cours de Bases de Données. Polytech Paris-Sud. Chapitre 1 : Quelques questions

Chapitre 1. Introduction aux Bases de Données. Cours de Bases de Données. Polytech Paris-Sud. Chapitre 1 : Quelques questions Cours de Bases de Données Chapitre 1 Polytech Paris-Sud Sarah Cohen-Boulakia LRI, Bât 490, Université Paris-Sud 11, Orsay cohen @ lri. fr 01 69 15 32 16 Introduction aux Bases de Données 1 2 Chapitre 1

Plus en détail

MIF18 - Les SGBD Non-Relationnels

MIF18 - Les SGBD Non-Relationnels MIF18 - Les SGBD Non-Relationnels Fabien Duchateau fabien.duchateau [at] univ-lyon1.fr Université Claude Bernard Lyon 1 2013-2014 Transparents disponibles sur http://liris.cnrs.fr/~ecoquery/dokuwiki/doku.php?id=

Plus en détail

Acquisition des données - Big Data. Dario VEGA Senior Sales Consultant

Acquisition des données - Big Data. Dario VEGA Senior Sales Consultant Acquisition des données - Big Data Dario VEGA Senior Sales Consultant The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated

Plus en détail

Rapport de projet : Interrogation de données hétérogènes.

Rapport de projet : Interrogation de données hétérogènes. Université Montpellier II Sciences et Techniques GMIN332 Gestion de Données Complexes, Master 2 Informatique 2013-2014 Rapport de projet : Interrogation de données hétérogènes. Otmane Nkaira Étudiant en

Plus en détail

Base de données. Objectifs du cours 2014-05-20 COURS 01 INTRODUCTION AUX BASES DE DONNÉES

Base de données. Objectifs du cours 2014-05-20 COURS 01 INTRODUCTION AUX BASES DE DONNÉES 1 Base de données COURS 01 INTRODUCTION AUX BASES DE DONNÉES Objectifs du cours 2 Introduction aux bases de données relationnelles (BDR). Trois volets seront couverts : la modélisation; le langage d exploitation;

Plus en détail

4. Gestion des données urbaines dans les nuages informatiques

4. Gestion des données urbaines dans les nuages informatiques 4. Gestion des données urbaines dans les nuages informatiques Brève histoire des nuages informatiques Modèles de service et de déploiement Technologie clé : la virtualisation IaaS : les points de vue utilisateur

Plus en détail

Bases de données Cours 2 : Architecture pour les bases de données

Bases de données Cours 2 : Architecture pour les bases de données Cours 2 : Architecture pour les bases de données ESIL Université de la méditerranée Odile.Papini@esil.univ-mrs.fr http://odile.papini.perso.esil.univmed.fr Plan du cours Architecture SPARC-ANSI 1 Architecture

Plus en détail

Introduction à MapReduce/Hadoop et Spark

Introduction à MapReduce/Hadoop et Spark 1 / 36 Introduction à MapReduce/Hadoop et Spark Certificat Big Data Ludovic Denoyer et Sylvain Lamprier UPMC Plan 2 / 36 Contexte 3 / 36 Contexte 4 / 36 Data driven science: le 4e paradigme (Jim Gray -

Plus en détail

Fouillez facilement dans votre système Big Data. Olivier TAVARD

Fouillez facilement dans votre système Big Data. Olivier TAVARD Fouillez facilement dans votre système Big Data Olivier TAVARD A propos de moi : Cofondateur de la société France Labs Développeur (principalement Java) Formateur en technologies de moteurs de recherche

Plus en détail

NoSQL : hype ou innovation? Grégory Ogonowski / Recherches Octobre 2011

NoSQL : hype ou innovation? Grégory Ogonowski / Recherches Octobre 2011 NoSQL : hype ou innovation? Grégory Ogonowski / Recherches Octobre 2011 Sommaire Introduction Théorème CAP NoSQL (principes, mécanismes, démos,...) Ce que nous avons constaté Recommandations Conclusion

Plus en détail

Web et bases de données : un mariage nécessaire pour faire face aux défis des données massives

Web et bases de données : un mariage nécessaire pour faire face aux défis des données massives Web et bases de données : un mariage nécessaire pour faire face aux défis des données massives Module 6 : Changement d échelle et cohérence Les bases de données relationnelles sont mûres : elles ont bientôt

Plus en détail

Les bases de données relationnelles

Les bases de données relationnelles Bases de données NO SQL et SIG : d un existant restreint à un avenir prometteur CHRISTIAN CAROLIN, AXES CONSEIL CAROLIN@AXES.FR - HTTP://WWW.AXES.FR Les bases de données relationnelles constituent désormais

Plus en détail

Bases de données documentaires et distribuées Cours NFE04

Bases de données documentaires et distribuées Cours NFE04 Bases de données documentaires et distribuées Cours NFE04 Introduction du cours Auteurs : Raphaël Fournier-S niehotta, Philippe Rigaux, Nicolas Travers prénom.nom@cnam.fr Département d informatique Conservatoire

Plus en détail

Module BDR Master d Informatique (SAR) Cours 5- bases de données parallèles Anne Doucet Anne.Doucet@lip6.fr

Module BDR Master d Informatique (SAR) Cours 5- bases de données parallèles Anne Doucet Anne.Doucet@lip6.fr Module BDR Master d Informatique (SAR) Cours 5- bases de données parallèles Anne Doucet Anne.Doucet@lip6.fr 1 Plan Introduction Architectures Placement des données Parallélisme dans les requêtes Optimisation

Plus en détail

Les participants repartiront de cette formation en ayant une vision claire de la stratégie et de l éventuelle mise en œuvre d un Big Data.

Les participants repartiront de cette formation en ayant une vision claire de la stratégie et de l éventuelle mise en œuvre d un Big Data. Big Data De la stratégie à la mise en oeuvre Description : La formation a pour objet de brosser sans concession le tableau du Big Data. Les participants repartiront de cette formation en ayant une vision

Plus en détail

Cours #4 Introduction aux bases de données

Cours #4 Introduction aux bases de données IFT-6800, Automne 2015 Cours #4 Introduction aux bases de données Louis Salvail André-Aisenstadt, #3369 salvail@iro.umontreal.ca Pourquoi les bases de données Des applications nécessitent l organisation

Plus en détail

Big Graph Data Forum Teratec 2013

Big Graph Data Forum Teratec 2013 Big Graph Data Forum Teratec 2013 MFG Labs 35 rue de Châteaudun 75009 Paris, France www.mfglabs.com twitter: @mfg_labs Julien Laugel MFG Labs julien.laugel@mfglabs.com @roolio SOMMAIRE MFG Labs Contexte

Plus en détail

Optimisations des SGBDR. Étude de cas : MySQL

Optimisations des SGBDR. Étude de cas : MySQL Optimisations des SGBDR Étude de cas : MySQL Introduction Pourquoi optimiser son application? Introduction Pourquoi optimiser son application? 1. Gestion de gros volumes de données 2. Application critique

Plus en détail

Objectifs. Maîtriser. Pratiquer

Objectifs. Maîtriser. Pratiquer 1 Bases de Données Objectifs Maîtriser les concepts d un SGBD relationnel Les modèles de représentations de données Les modèles de représentations de données La conception d une base de données Pratiquer

Plus en détail

Bases de données réparties

Bases de données réparties Bases de données réparties J. Akoka - I. Wattiau 1 Contexte Technologique : des solutions de communication efficace entre les machines des SGBD assurent la transparence des données réparties standardisation

Plus en détail

Le client/serveur repose sur une communication d égal à égal entre les applications.

Le client/serveur repose sur une communication d égal à égal entre les applications. Table des matières LES PRINCIPES DE BASE... 1 Présentation distribuée-revamping...2 Présentation distante...3 Traitements distribués...3 données distantes-rd...4 données distribuées-rda distribué...4 L'ARCHITECTURE

Plus en détail

Big Data. Cyril Amsellem Consultant avant-vente. 16 juin 2011. Talend 2010 1

Big Data. Cyril Amsellem Consultant avant-vente. 16 juin 2011. Talend 2010 1 Big Data Cyril Amsellem Consultant avant-vente 16 juin 2011 Talend 2010 1 Big Data Architecture globale Hadoop Les projets Hadoop (partie 1) Hadoop-Core : projet principal. HDFS : système de fichiers distribués

Plus en détail

SQL-ON-HADOOP. Veille Technologique et Stratégique 2015 Guo Kai Élève de RICM 5 Kai.Guo@e.ujf-Grenoble.fr

SQL-ON-HADOOP. Veille Technologique et Stratégique 2015 Guo Kai Élève de RICM 5 Kai.Guo@e.ujf-Grenoble.fr SQL-ON-HADOOP Veille Technologique et Stratégique 2015 Guo Kai Élève de RICM 5 Kai.Guo@e.ujf-Grenoble.fr Données structurées (RDBMS) Exiger de strictement être organisé Annexer à RDBMS sans couture Consultable

Plus en détail

API04 Contribution. Apache Hadoop: Présentation et application dans le domaine des Data Warehouses. Introduction. Architecture

API04 Contribution. Apache Hadoop: Présentation et application dans le domaine des Data Warehouses. Introduction. Architecture API04 Contribution Apache Hadoop: Présentation et application dans le domaine des Data Warehouses Introduction Cette publication a pour but de présenter le framework Java libre Apache Hadoop, permettant

Plus en détail

I. Bases de données. Exemples classiques d'applications BD. Besoins de description

I. Bases de données. Exemples classiques d'applications BD. Besoins de description I. Bases de données Exemples classiques d'applications BD Les besoins Qu est ce qu un SGBD, une BD Architecture d un SGBD Cycle de vie Plan du cours Gestion des personnels, étudiants, cours, inscriptions,...

Plus en détail

Ecole des Hautes Etudes Commerciales HEC Alger. par Amina GACEM. Module Informatique 1ière Année Master Sciences Commerciales

Ecole des Hautes Etudes Commerciales HEC Alger. par Amina GACEM. Module Informatique 1ière Année Master Sciences Commerciales Ecole des Hautes Etudes Commerciales HEC Alger Évolution des SGBDs par Amina GACEM Module Informatique 1ière Année Master Sciences Commerciales Evolution des SGBDs Pour toute remarque, question, commentaire

Plus en détail

Introduction aux bases de données

Introduction aux bases de données Introduction aux bases de données BD4 SB, FC, & N G d R Licence MIASHS, Master ISIFAR, Paris-Diderot Janvier 2015 BD4 (Licence MIASHS, Master ISIFAR, Paris-Diderot) Introduction aux bases de données 1/10

Plus en détail

Hibernate vs. le Cloud Computing

Hibernate vs. le Cloud Computing Hibernate vs. le Cloud Computing Qui suis-je? Julien Dubois Co-auteur de «Spring par la pratique» Ancien de SpringSource Directeur du consulting chez Ippon Technologies Suivez-moi sur Twitter : @juliendubois

Plus en détail

Plan. Pourquoi Hadoop? Présentation et Architecture. Démo. Usages

Plan. Pourquoi Hadoop? Présentation et Architecture. Démo. Usages 1 Mehdi LOUIZI Plan Pourquoi Hadoop? Présentation et Architecture Démo Usages 2 Pourquoi Hadoop? Limites du Big Data Les entreprises n analysent que 12% des données qu elles possèdent (Enquête Forrester

Plus en détail

Plan. Cours 4 : Méthodes d accès aux données. Architecture système. Objectifs des SGBD (rappel)

Plan. Cours 4 : Méthodes d accès aux données. Architecture système. Objectifs des SGBD (rappel) UPMC - UFR 99 Licence d informatique 205/206 Module 3I009 Cours 4 : Méthodes d accès aux données Plan Fonctions et structure des SGBD Structures physiques Stockage des données Organisation de fichiers

Plus en détail

CONGRES BIG DATA PARIS

CONGRES BIG DATA PARIS CONGRES BIG DATA PARIS 21 Mars 2012 Retour d expérience CORPORAMA.COM Eric Barnet Nicolas Thauvin L information entreprise à 360 Corporama est un agrégateur web de données sociétés permettant une vision

Plus en détail

Architecture des SGBD parallèles NSY 104

Architecture des SGBD parallèles NSY 104 Architecture des SGBD parallèles NSY 104 Introduction Présentation des options d architecture des serveurs et des systèmes de gestion de bases de données. Ces derniers ont des relations privilégiées avec

Plus en détail

Conception de BDR et requêtes. Migration vers une BDR. Conception d'une BDR par Décomposition. Objectifs de la Décomposition

Conception de BDR et requêtes. Migration vers une BDR. Conception d'une BDR par Décomposition. Objectifs de la Décomposition Conception de BDR et requêtes Migration vers une BDR Approche décomposition Fragmentation Allocation des fragments Fragmentation de requêtes Optimisation de requêtes Décomposition en BD locales BD BD1

Plus en détail

BD réparties. Bases de Données Réparties. SGBD réparti. Paramètres à considérer

BD réparties. Bases de Données Réparties. SGBD réparti. Paramètres à considérer Bases de Données Réparties Définition Architectures Outils d interface SGBD Réplication SGBD répartis hétérogènes BD réparties Principe : BD locales, accès locaux rapides accès aux autres SGBD du réseau

Plus en détail

MongoDB. Objectif Découvrir l'aggrégation des requêtes, l'indexation, la réplication et l'autosharding sur MongoDB

MongoDB. Objectif Découvrir l'aggrégation des requêtes, l'indexation, la réplication et l'autosharding sur MongoDB ESIPE IR3 - IG3 Cloud Computing #3 MongoDB Objectif Découvrir l'aggrégation des requêtes, l'indexation, la réplication et l'autosharding sur MongoDB Révisions Téléchargez depuis le site le fichier ex.tgz.

Plus en détail

ELASTICSEARCH MAINTENANT EN VERSION 1.4

ELASTICSEARCH MAINTENANT EN VERSION 1.4 ELASTICSEARCH MAINTENANT EN VERSION 1.4 firm1 29 octobre 2015 Table des matières 1 Introduction 5 2 Les principaux atouts 7 2.1 Moteur de recherche vs Moteur d indexation.................... 7 2.2 Du

Plus en détail

Systèmes de Fichiers

Systèmes de Fichiers Systèmes de Fichiers Hachage et Arbres B Serge Abiteboul INRIA February 28, 2008 Serge Abiteboul (INRIA) Systèmes de Fichiers February 28, 2008 1 / 26 Systèmes de fichiers et SGBD Introduction Hiérarchie

Plus en détail

INTERSYSTEMS CACHÉ COMME ALTERNATIVE AUX BASES DE DONNÉES RÉSIDENTES EN MÉMOIRE

INTERSYSTEMS CACHÉ COMME ALTERNATIVE AUX BASES DE DONNÉES RÉSIDENTES EN MÉMOIRE I N T E RS Y S T E M S INTERSYSTEMS CACHÉ COMME ALTERNATIVE AUX BASES DE DONNÉES RÉSIDENTES EN MÉMOIRE David Kaaret InterSystems Corporation INTERSySTEMS CAChé CoMME ALTERNATIvE AUx BASES de données RéSIdENTES

Plus en détail

Introduction aux S.G.B.D.

Introduction aux S.G.B.D. NFE113 Administration et configuration des bases de données - 2010 Introduction aux S.G.B.D. Eric Boniface Sommaire L origine La gestion de fichiers Les S.G.B.D. : définition, principes et architecture

Plus en détail

Ricco Rakotomalala http://eric.univ-lyon2.fr/~ricco/cours/cours_programmation_r.html. R.R. Université Lyon 2

Ricco Rakotomalala http://eric.univ-lyon2.fr/~ricco/cours/cours_programmation_r.html. R.R. Université Lyon 2 Ricco Rakotomalala http://eric.univ-lyon2.fr/~ricco/cours/cours_programmation_r.html 1 Plan de présentation 1. L écosystème Hadoop 2. Principe de programmation MapReduce 3. Programmation des fonctions

Plus en détail

Titre : La BI vue par l intégrateur Orange

Titre : La BI vue par l intégrateur Orange Titre : La BI vue par l intégrateur Orange Résumé : L entité Orange IT&L@bs, partenaire privilégié des entreprises et des collectivités dans la conception et l implémentation de SI Décisionnels innovants,

Plus en détail

Datomic. La base qui détonne (aka database as a value)

Datomic. La base qui détonne (aka database as a value) Datomic La base qui détonne (aka database as a value) Identité Base de données NoSQL Distribuée ("cloud"!) ACID Annoncée début 2012 Version 0.8.XXXX Rich Hickey et Relevance (Clojure!) Licence privative

Plus en détail

Bases de données documentaires et distribuées Cours NFE04

Bases de données documentaires et distribuées Cours NFE04 Bases de données documentaires et distribuées Cours NFE04 Le langage Pig latin Auteurs : Raphaël Fournier-S niehotta, Philippe Rigaux, Nicolas Travers prénom.nom@cnam.fr Département d informatique Conservatoire

Plus en détail

Bases de données cours 1

Bases de données cours 1 Bases de données cours 1 Introduction Catalin Dima Objectifs du cours Modèle relationnel et logique des bases de données. Langage SQL. Conception de bases de données. SQL et PHP. Cours essentiel pour votre

Plus en détail

Introduction aux systèmes répartis

Introduction aux systèmes répartis Introduction aux systèmes répartis Grappes de stations Applications réparties à grande échelle Systèmes multicalculateurs (1) Recherche de puissance par assemblage de calculateurs standard Liaison par

Plus en détail

Systèmes d information et bases de données (niveau 1)

Systèmes d information et bases de données (niveau 1) Systèmes d information et bases de données (niveau 1) Cours N 1 Violaine Prince Plan du cours 1. Bibliographie 2. Introduction aux bases de données 3. Les modèles 1. Hiérarchique 2. Réseau 3. Relationnel

Plus en détail

Sommaire. 3. Les grands principes de GFS L architecture L accès de fichier en lecture L accès de fichier en écriture Bilan

Sommaire. 3. Les grands principes de GFS L architecture L accès de fichier en lecture L accès de fichier en écriture Bilan 1 Sommaire 1. Google en chiffres 2. Les raisons d être de GFS 3. Les grands principes de GFS L architecture L accès de fichier en lecture L accès de fichier en écriture Bilan 4. Les Evolutions et Alternatives

Plus en détail

SGBD orientés objet. Généralités Modèles de données et SGBD orientés objet 03/03/2015. Définitions. Concepts Généraux

SGBD orientés objet. Généralités Modèles de données et SGBD orientés objet 03/03/2015. Définitions. Concepts Généraux SGBD orientés objet Définitions Généralités Modèles de données et SGBD orientés objet MDOO : Un modèle de données qui capture la sémantique des objets supportée en programmation objet. Concepts Généraux

Plus en détail

10/04/2011. Serveur de données. Serveur de données. Client. Programme d'application Logiciel intermédiaire Pilote de télécommunication.

10/04/2011. Serveur de données. Serveur de données. Client. Programme d'application Logiciel intermédiaire Pilote de télécommunication. 1 BD locale BD locale Programme d'application Logiciel intermédiaire Client SGBD réparti Logiciel intermédiaire données SGBD réparti Logiciel intermédiaire données 2 Bénéfices potentiels Performance Fiabilité

Plus en détail

Architecture logicielle des ordinateurs

Architecture logicielle des ordinateurs Architecture logicielle des ordinateurs Yannick Prié UFR Informatique Université Claude Bernard Lyon 1 des ordinateurs Objectifs du cours Notions générales sur le fonctionnement matériel (un peu) et logiciel

Plus en détail

Annuaire : Active Directory

Annuaire : Active Directory Annuaire : Active Directory Un annuaire est une structure hiérarchique qui stocke des informations sur les objets du réseau. Un service d'annuaire, tel qu'active Directory, fournit des méthodes de stockage

Plus en détail

JASPERSOFT ET LE PAYSAGE ANALYTIQUE. Jaspersoft et le paysage analytique 1

JASPERSOFT ET LE PAYSAGE ANALYTIQUE. Jaspersoft et le paysage analytique 1 JASPERSOFT ET LE PAYSAGE ANALYTIQUE Jaspersoft et le paysage analytique 1 Ce texte est un résumé du Livre Blanc complet. N hésitez pas à vous inscrire sur Jaspersoft (http://www.jaspersoft.com/fr/analyticslandscape-jaspersoft)

Plus en détail

Introduction aux bases de données Cours 1 : Généralités sur les bases de données

Introduction aux bases de données Cours 1 : Généralités sur les bases de données Cours 1 : Généralités sur les bases de données ESIL Université de la méditerranée Odile.Papini@esil.univmed.fr http://odile.papini.perso.esil.univmed.fr/sources/bdmat.html Plan du cours 1 1 Qu est ce qu

Plus en détail

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013 NFA 008 Introduction à NoSQL et MongoDB 25/05/2013 1 NoSQL, c'est à dire? Les bases de données NoSQL restent des bases de données mais on met l'accent sur L'aspect NON-relationnel L'architecture distribuée

Plus en détail

Introduction aux Bases de Données

Introduction aux Bases de Données Introduction aux Bases de Données I. Bases de données I. Bases de données Les besoins Qu est ce qu un SGBD, une BD Architecture d un SGBD Cycle de vie Plan du cours Exemples classiques d'applications BD

Plus en détail

Le NoSQL - Cassandra

Le NoSQL - Cassandra Le NoSQL - Cassandra Thèse Professionnelle Xavier MALETRAS 27/05/2012 Ce document présente la technologie NoSQL au travers de l utilisation du projet Cassandra. Il présente des situations ainsi que des

Plus en détail

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application Architecture Multi-Tier Traditionnellement une application informatique est un programme exécutable sur une machine qui représente la logique de traitement des données manipulées par l application. Ces

Plus en détail

Nos offres de stages pour 2013

Nos offres de stages pour 2013 Nos offres de stages pour 2013 Les sujets de stage que nous vous proposons sont des projets à très forte valeur ajoutée, mêlant recherche amont, algorithmique et implémentation. Ils touchent à des domaines

Plus en détail

«Clustering» et «Load balancing» avec Zope et ZEO

«Clustering» et «Load balancing» avec Zope et ZEO «Clustering» et «Load balancing» avec Zope et ZEO IN53 Printemps 2003 1 Python : généralités 1989 : Guido Van Rossum, le «Python Benevolent Dictator for Life» Orienté objet, interprété, écrit en C Mêle

Plus en détail

TP MongoDB. -d : définit le nom de la base où l'on souhaite importer les données

TP MongoDB. -d : définit le nom de la base où l'on souhaite importer les données TP MongoDB MongoDB est l une des base de données composant le mouvement NoSQL (Not Only SQL). L intérêt de ce genre de bases de données se ressent dans la manipulation de très grosses bases de données

Plus en détail

Mercredi 15 Janvier 2014

Mercredi 15 Janvier 2014 De la conception au site web Mercredi 15 Janvier 2014 Loïc THOMAS Géo-Hyd Responsable Informatique & Ingénierie des Systèmes d'information loic.thomas@anteagroup.com 02 38 64 26 41 Architecture Il est

Plus en détail

ETUDE ET IMPLÉMENTATION D UNE CACHE L2 POUR MOBICENTS JSLEE

ETUDE ET IMPLÉMENTATION D UNE CACHE L2 POUR MOBICENTS JSLEE Mémoires 2010-2011 www.euranova.eu MÉMOIRES ETUDE ET IMPLÉMENTATION D UNE CACHE L2 POUR MOBICENTS JSLEE Contexte : Aujourd hui la plupart des serveurs d application JEE utilise des niveaux de cache L1

Plus en détail

L INFORMATION GEOGRAPHIQUE

L INFORMATION GEOGRAPHIQUE Champs sur Marne ENSG/CERSIG Le 19-nove.-02 L INFORMATION GEOGRAPHIQUE Archivage Le Système d information géographique rassemble de l information afin de permettre son utilisation dans des applications

Plus en détail

Optimisation de requêtes. I3009 Licence d informatique 2015/2016. Traitement des requêtes

Optimisation de requêtes. I3009 Licence d informatique 2015/2016. Traitement des requêtes Optimisation de requêtes I3009 Licence d informatique 2015/2016 Cours 5 - Optimisation de requêtes Stéphane.Gançarski Stephane.Gancarski@lip6.fr Traitement et exécution de requêtes Implémentation des opérateurs

Plus en détail

Gestion de données à large échelle. Anne Doucet LIP6 Université Paris 6

Gestion de données à large échelle. Anne Doucet LIP6 Université Paris 6 Gestion de données à large échelle Anne Doucet LIP6 Université Paris 6 1 Plan Contexte Les réseaux P2P Non structurés Structurés Hybrides Localisation efficace et Interrogation complète et exacte des données.

Plus en détail

BONJOURGRID : VERSION ORIENTÉE DONNÉE & MAPREDUCE SÉCURISÉ

BONJOURGRID : VERSION ORIENTÉE DONNÉE & MAPREDUCE SÉCURISÉ Laboratoire LaTICE Univ. de Tunis INRIA LYON Avalon Team Laboratoire d Informatique de Paris Nord (LIPN) BONJOURGRID : VERSION ORIENTÉE DONNÉE & MAPREDUCE SÉCURISÉ Heithem Abbes Heithem Abbes Rencontres

Plus en détail

Bases de données Cours 1 : Généralités sur les bases de données

Bases de données Cours 1 : Généralités sur les bases de données Cours 1 : Généralités sur les bases de données POLYTECH Université d Aix-Marseille odile.papini@univ-amu.fr http://odile.papini.perso.esil.univmed.fr/sources/bd.html Plan du cours 1 1 Qu est ce qu une

Plus en détail

Cours Administration BD

Cours Administration BD Faculté des Sciences de Gabès Cours Administration BD Chapitre 2 : Architecture Oracle Faîçal Felhi felhi_fayssal@yahoo.fr 1 Processus serveur 1 Mémoire PGA Architecture SGBD Oracle Processus serveur 2

Plus en détail

Mise en œuvre des serveurs d application

Mise en œuvre des serveurs d application Nancy-Université Mise en œuvre des serveurs d application UE 203d Master 1 IST-IE Printemps 2008 Master 1 IST-IE : Mise en œuvre des serveurs d application 1/54 Ces transparents, ainsi que les énoncés

Plus en détail

Panorama des solutions analytiques existantes

Panorama des solutions analytiques existantes Arnaud LAROCHE Julien DAMON Panorama des solutions analytiques existantes SFdS Méthodes et Logiciels - 16 janvier 2014 - Données Massives Ne sont ici considérés que les solutions autour de l environnement

Plus en détail

Les technologies du Big Data

Les technologies du Big Data Les technologies du Big Data PRÉSENTÉ AU 40 E CONGRÈS DE L ASSOCIATION DES ÉCONOMISTES QUÉBÉCOIS PAR TOM LANDRY, CONSEILLER SENIOR LE 20 MAI 2015 WWW.CRIM.CA TECHNOLOGIES: DES DONNÉES JUSQU'À L UTILISATEUR

Plus en détail

TP Bases de données réparties

TP Bases de données réparties page 1 TP Bases de données réparties requêtes réparties Version corrigée Auteur : Hubert Naacke, révision 5 mars 2003 Mots-clés: bases de données réparties, fragmentation, schéma de placement, lien, jointure

Plus en détail

Architecture serveur de pages (2) Bilan architecture serveur de pages. Architecture multi-serveur. Pertes de mise à jour

Architecture serveur de pages (2) Bilan architecture serveur de pages. Architecture multi-serveur. Pertes de mise à jour Introduction Chapitre 5. Implémentation des SGBDO 1 architectures client/serveur 2 concurrence, pannes 3 Quelques SGBDRO 4 Quelques SGBDOO années 80 : serveur : BD client : applications et langages appel

Plus en détail

Introduction aux systèmes d exploitation

Introduction aux systèmes d exploitation Introduction aux systèmes d exploitation Le système d exploitation est un ensemble de logiciels qui pilotent la partie matérielle d un ordinateur. Les principales ressources gérées par un système d exploitation

Plus en détail

Big Data et Graphes : Quelques pistes de recherche

Big Data et Graphes : Quelques pistes de recherche Big Data et Graphes : Quelques pistes de recherche Hamamache Kheddouci Laboratoire d'informatique en Image et Systèmes d'information LIRIS UMR 5205 CNRS/INSA de Lyon/Université Claude Bernard Lyon 1/Université

Plus en détail

Bases de données avancées Introduction

Bases de données avancées Introduction Bases de données avancées Introduction Dan VODISLAV Université de Cergy-Pontoise Master Informatique M1 Cours BDA Plan Objectifs et contenu du cours Rappels BD relationnelles Bibliographie Cours BDA (UCP/M1)

Plus en détail

Bases de Données Avancées

Bases de Données Avancées 1/26 Bases de Données Avancées DataWareHouse Thierry Hamon Bureau H202 - Institut Galilée Tél. : 33 1.48.38.35.53 Bureau 150 LIM&BIO EA 3969 Université Paris 13 - UFR Léonard de Vinci 74, rue Marcel Cachin,

Plus en détail

Architecture d Oracled. Richard CHBEIR Email : richard.chbeir@u-bourgogne.fr

Architecture d Oracled. Richard CHBEIR Email : richard.chbeir@u-bourgogne.fr Architecture d Oracled Richard CHBEIR Email : richard.chbeir@u-bourgogne.fr Plan Architecture Structure Physique Composants Processus Traitement de requêtes Structure Logique Architecture Un serveur Oracle

Plus en détail