Hadoop / Big Data. Benjamin Renaut MBDS

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

Download "Hadoop / Big Data. Benjamin Renaut MBDS 2014-2015"

Transcription

1 Hadoop / Big Data Benjamin Renaut MBDS

2 6 map/reduce et Hadoop: exemples plus avancés

3 Exemple: parcours de graphe 6-1 On cherche à déterminer la profondeur maximale de tous les nœuds d'un graphe à partir d'un nœud de départ (via breadth-first search, parcours en largeur). Le graphe:

4 Exemple: parcours de graphe 6-2 Données d'entrée: (1;"2,5 GRIS 0") (2;"3,4 BLANC -1") (3;"6 BLANC -1") (4;" BLANC -1") (5;"6 BLANC -1") (6;" BLANC -1") avec valeur sur le modèle «NOEUDS_FILS COULEUR PROFONDEUR». Et couleur ayant pour valeur «BLANC» pour un nœud non parcouru, «GRIS» pour un nœud en cours de parcours, et «NOIR» pour un nœud déjà parcouru. Dans nos données d'entrée, l'unique nœud GRIS indique le nœud de départ.

5 Exemple: parcours de graphe 6-3 map: si le nœud du couple (clef;valeur) d'entrée est GRIS, alors: Pour chacun de ses fils, retourner (ID_FILS;" GRIS PROFONDEUR+1), où PROFONDEUR est la profondeur du nœud courant. Retourner également le couple (clef;valeur) courant, avec couleur=noir. Sinon: retourner le couple (clef;valeur) d'entrée. Pseudo code: SI NODE.COULEUR=="GRIS": POUR CHAQUE FILS DANS NODE.CHILDREN: FILS.COULEUR="GRIS" FILS.PROFONDEUR=NODE.PROFONDEUR+1 RENVOYER (FILS.ID;FILS) NODE.COULEUR="NOIR" RENVOYER (NODE.ID;NODE)

6 Exemple: parcours de graphe 6-4 reduce: parcourir chacune des valeurs associées à la clef unique (après shuffle). Renvoyer un couple (clef;noeud) avec un nœud dont: La profondeur est la plus haute rencontrée parmi les valeurs associées à cette clef unique (l'identifiant du nœud). La couleur est la plus «forte» parmi ces mêmes valeurs. La liste des nœuds enfants est la plus longue parmi ces valeurs. et pour clef la clef unique en question.

7 Exemple: parcours de graphe 6-5 Pseudo code: H_CHILDREN=""; H_PROF=-1; H_COULEUR="BLANC"; POUR CHAQUE VALEUR: SI VALEUR.CHILDREN.LENGTH()>H_CHILDREN.LENGTH(): H_CHILDREN=VALEUR.CHILDREN SI VALEUR.PROFONDEUR>H_PROF: H_PROF=VALEUR.PROFONDEUR SI VALEUR.COULEUR>H_COULEUR: H_COULEUR=VALEUR.COULEUR NODE=NOUVEAU NOEUD NODE.COULEUR=H_COULEUR NODE.CHILDREN=H_CHILDREN NODE.PROFONDEUR=H_PROF RENVOYER(CLEF;NODE)

8 Exemple: parcours de graphe 6-6 On exécute le programme map/reduce plusieurs fois, jusqu'à ce que tous les nœuds de la liste aient pour couleur la valeur «NOIR» <=> jusqu'à ce que tous les nœuds aient été parcourus. Ce type de logique s'implémente très facilement au sein d'un framework map/reduce (Hadoop).

9 Exemple: parcours de graphe 6-7 Premier lancement: Données d'entrée: (1;"2,5 GRIS 0") (2;"3,4 BLANC -1") (3;"6 BLANC -1") (4;" BLANC -1") (5;"6 BLANC -1") (6;" BLANC -1") Graphe:

10 Exemple: parcours de graphe 6-8 Pour ce premier lancement: Sortie de map: (1;"2,5 NOIR 0") (2;" GRIS 1") (5;" GRIS 1") (2;"3,4 BLANC -1") (3;"6 BLANC -1") (4;" BLANC -1") (5;"6 BLANC -1") (6;" BLANC -1") Sortie de reduce: Aprés shuffle: 1: ("2,5 NOIR 0") 2: (" GRIS 1"),("3,4 BLANC -1") 3: ("6 BLANC -1") 4: (" BLANC -1") 5: (" GRIS 1"),("6 BLANC -1") 6: (" BLANC -1") (1;"2,5 NOIR 0") (2;"3,4 GRIS 1") (3;"6 BLANC -1") (4;" BLANC -1") (5;"6 GRIS 1") (6;" BLANC -1")

11 Exemple: parcours de graphe 6-9 Lancement 2: Données: Graphe: (1;"2,5 NOIR 0") (2;"3,4 GRIS 1") (3;"6 BLANC -1") (4;" BLANC -1") (5;"6 GRIS 1") (6;" BLANC -1")

12 Exemple: parcours de graphe 6-10 Lancement 3: Données: Graphe: (1;"2,5 NOIR 0") (2;"3,4 NOIR 1") (3;"6 GRIS 2") (4;" GRIS 2") (5;"6 NOIR 1") (6;" GRIS 2")

13 Exemple: parcours de graphe 6-11 Après le lancement 3: Données de sortie: (1;"2,5 NOIR 0") (2;"3,4 NOIR 1") (3;"6 NOIR 2") (4;" NOIR 2") (5;"6 NOIR 1") (6;" NOIR 3") Graphe:

14 Exemple: parcours de graphe 6-12 Tous les nœuds ont tous désormais pour couleur la valeur «NOIR» ; le programme en charge de lancer la tâche map/reduce à répétition sur les données s arrête. On a ainsi effectué un parcours en largeur sur le graphe, parallélisable (parallel breadth-first search). A chaque étape de profondeur dans le parcours correspond l'exécution d'une tâche map/reduce avec une fonction map executée pour chaque nœud à chaque étape.

15 Conclusion 6-13 Applications courantes de map/reduce et Hadoop: Analyse de logs et données en général, validation de données, recoupements, filtrage, etc. => traitements sur des volumes de données massifs. Exécution de tâches intensives en CPU de manière distribuée (simulations scientifiques, encodage vidéo, etc.). et bien souvent les deux: tâches intensives en CPU sur des volumes de données massifs (entraînement de modèles en machine learning, etc.) Plus complexe, voire contre-productif à appliquer sur tout problème où la fragmentation des données d'entrée pose problème (en fait sur tout problème où la stratégie du diviser pour régner n'est pas viable).

16 7 Sqoop

17 Présentation 7-1 Comme on l'a vu, Hadoop accède aux données qu'il va traiter par le biais de HDFS, et stocke ses résultats au même endroit. Bien souvent, cependant, on va vouloir faire travailler Hadoop sur des données provenant d'une base de données traditionnelle (statistiques web, données provenant du backend d'une solution logicielle, etc.). Sqoop est un outil permettant de répondre à ce problème. Il vise à permettre de facilement transférer des données depuis des bases de données structurées (MySQL, PostgreSQL, Oracle, etc.) vers HDFS, et vice-versa. Projet Open Source de la fondation Apache, développé par des bénévoles depuis Son utilisation n'a cessé d'augmenter depuis et il est devenu un des projets phares de la fondation Apache en 2012.

18 Remarque 7-2 On parle ici de base de données structurée pour désigner les bases de données «classiques», avec des tables, des indexs, etc... Par opposition, HDFS fonctionne à partir de simples fichiers texte, sans aucun index. C'est une méthode sensiblement moins performante de stocker des données mais contrairement aux bases de données structurées, elle permet de stocker des quantités véritablement massives de données (plusieurs centaines de petaoctets si nécessaire). Il existe également des modèles hybrides de ces deux approches: des bases de données qui abandonnent l'idée de contraintes rigides telles que les tables, les relations, etc... mais proposent des fonctionnalités commes les indexs et stockent les données autour du concept de document, des blocs de données au format JSON, XML ou encore YAML et qui n'ont pas la contrainte de devoir tous respecter le même format et d'avoir tous les mêmes champs. Un exemple de ce type de base est MongoDB, un autre exemple est le projet Apache Cassandra.

19 Principe de fonctionnement 7-3 Sqoop est un outil en ligne de commande, au même titre que le client hadoop. Il est ainsi utilisable facilement au sein de scripts automatisés. Il peut non seulement importer le contenu d'une table située dans une base de données au sein de HDFS, mais également générer une classe Java toute prête, utilisable au sein d'un programme Hadoop, qui permet facilement d'accéder aux données qu'il a généré. Ainsi, si on souhaite par exemple manipuler les données provenant d'une table MySQL, on va demander à Sqoop de générer un fichier java permettant l'accés aux données qu'il exportera, et on utilisera ce fichier java au sein de notre programme Hadoop le.jar qu'on exécutera. Ensuite, il suffira à tout moment d'exécuter Sqoop pour importer la dernière version de nos données depuis la base, et de lancer notre programme Hadoop pour facilement manipuler ces données.

20 Principe de fonctionnement 7-4 Enfin, Sqoop est également capable d'importer des données depuis HDFS au sein d'une base de données. Cette fonctionnalité sera utilisée pour importer nos résultats au sein d'une table, et pouvoir ensuite par exemple les afficher depuis un backend. Par ailleurs, on peut également utiliser Sqoop pour procéder à de l'archivage de données. Si par exemple on a une table MySQL contenant un grand nombre de statistiques webs, on pourra par le biais d'une seule commande sauvegarder toutes les anciennes statistiques dans HDFS en profitant ainsi de sa capacité à conserver une très grande quantité de données, et de ses capacités de réplication. Ainsi, notre table MySQL restera lègere et les requêtes s'exécuteront rapidement, mais on gardera tout de même une trace de toutes les données passées.

21 Principe de fonctionnement 7-5 Sqoop utilise les connecteurs JDBC Java il gère donc un très grand nombre de SGBD différents (MySQL, Oracle, PostgreSQL, etc.). Il peut importer une table entière, ou encore le résultat d'une requête SQL (pour sélectionner seulement certains enregistrements). Il est extrêmement configurable: les champs à inclure dans l'importation, leur ordre, l'endroit où stocker les données, leur format, etc... sont des options configurables. Pour l'exécution d'un import ou d'un export de données, il créé une tâche map qu'il exécute via le cluster Hadoop local. Ainsi, la tâche d'importation ou d'exportation est exécutée en parallèle, en tirant partie de toute la puissance du cluster.

22 Formats de données 7-6 Sqoop gère trois formats distincts pour stocker les données sur HDFS: Sous forme de delimited text files: des fichiers texte humainement lisibles qui listent les champs de la base, séparés par des virgules (configurable). C'est l'option qu'on utilisera lorsque l'on souhaite garder un accès facile (humainement parlant) aux données qu'on exporte, et que les données situées en base ne sont pas binaires. Sous forme de sequence files: des fichiers binaires propres à Sqoop. C'est l'option qu'on utilisera si on souhaite manipuler les données depuis un programme Map/Reduce dans Hadoop, car les performances sont nettement supérieures aux fichiers textes. On se servira également de ce format pour les tables contenant des données binaires. Ce format ne sera cependant facilement lisible qu'avec la classe dédiée Java créée par Sqoop le lire depuis d'autres langages de programmation est complexe (format non trivial).

23 Formats de données 7-7 Sous forme de Avro data files: un autre format binaires, décrivant des données sérialisées. Contrairement aux sequence files, le format Avro est facilement lisible par le biais de librairies disponibles dans de nombreux autres langages de programmation (par le biais des librairies du projet Apache Avro). Ses performances sont légèrement inférieures aux sequence files, mais toujours largement supérieures au format texte. Dans les trois cas, la compression est supportée, avec plusieurs algorithmes possibles cette option diminuera sensiblement les performances de lecture mais permettra d'économiser l'espace occupé par les données sur HDFS. D'une manière générale, on retient qu'on utilisera le format texte pour garder les données sous un format facilement lisible (ou pour du debug), le format sequence files si on compte exploiter les données depuis un programme Hadoop «natif» (Java), et le format Avro si on compte les exploiter depuis un programme Hadoop rédigé dans un autre langage.

24 Exemple Format texte 7-8 Table en base de données contenant des élèves du MBDS (trois colonnes: id, nom et prénom). Aprés export Sqoop au format texte, un fichier sera créé sur HDFS contenant: 1,ARNAUD,Clément 2,BANGOURA,Mohamed Amy 3,BEATINI,Nathalie 4,BIGA,Anthony 5,CHAABANE,Mohamed 6,CHATTON,Jérémy 7,DA SILVA,David 8,DEMEURE,Guillaume [ ]

25 Fichier de sortie 7-9 Puisqu'un export Sqoop est une tâche Hadoop MAP, le résultat de l'export sera stocké dans une série de fichiers sous la forme: part-m part-m part-m etc... Par ailleurs, un fichier _SUCCESS est également créé pour confirmer que l'export a été réalisé correctement. Dans le cas où on choisit le format Avro, alors les noms de fichier seront identique mais porteront l'extension «.avro» (part-m avro, etc.). On peut préciser la taille limite, en octets, de chacun des fichiers fragments qui résultent de l'import.

26 Import 7-10 Pour importer des données depuis une base de données, la commande la plus basique est la suivante: sqoop import -connect [JDBC STRING] -username [USER] \ --password [PASSWORD] -table [TABLE] qui importera le contenu de la table [TABLE] depuis la base de données spécifiée dans un répertoire portant le nom de la table dans HDFS. Par exemple: sqoop import -connect jdbc:mysql://localhost/poemes \ -username hadoop -password h4d00p \ -table rose_reseda

27 Import - contraintes 7-11 On peut également importer des données selon une contrainte SQL WHERE: sqoop import -connect [JDBC STRING] -username [USER] \ --password [PASSWORD] -table [TABLE] \ --where [CONTRAINTE] par exemple avec "id>50" comme valeur de [CONTRAINTE]. On peut également choisir les champs à importer, avec l'option columns: sqoop import -connect [JDBC STRING] -username [USER] \ --password [PASSWORD] -table [TABLE] \ -columns COL1,COL2,COL3 ce qui permet également de définir l'ordre dans lequel les champs apparaitront dans les fichiers au format texte.

28 Import requêtes SQL 7-12 On peut également utiliser une requête SQL directement. Ce cas supporte notamment les jointures. On utilise pour ce faire l'option -query. En revanche, comme Sqoop va effectuer le traitement de manière parallèle, il faut lui laisser un espace au sein de la requête dans lequel il pourra ajouter une clause différenciante selon les nodes qui effectueront chacun un morceau de la requête «globale». On utilise pour ce faire le marqueur $CONDITIONS. Il est également nécessaire de lui indiquer quel champ résultant de la requête il peut utiliser pour distribuer le travail aux différents nœuds. Ce champs doit être tel qu'il permette à Sqoop de distribuer correctement le travail aux différents nœuds du cluster. Ce champ indiqué par l'option -split-by est souvent la clef primaire de la table/une des clefs primaires du set de résultat concerné.

29 Import requêtes SQL 7-13 La syntaxe: sqoop import -connect [JDBC STRING] -username [USER] \ --password [PASSWORD] -table [TABLE] \ -query [REQUETE INCLUANT $CONDITIONS] \ --split-by [COLONNE] Par exemple: sqoop import -connect jdbc: [ ] \ -query "SELECT a.id,a.nom FROM users a, wallet_content b \ where a.id==b.owner_id AND b.type==2 AND \$CONDITIONS" \ -split-by a.id...pour récupérer les infos des utilisateurs dont le wallet contient au moins un item de type «2».

30 Import incrémentaux 7-14 On peut également demander à Sqoop d'importer depuis une table uniquement les données qui ont été modifiées depuis le dernier import. Pour ce faire, on utilise les trois options suivantes: --incremental: indique le mode de vérification, qui peut avoir une des deux valeurs suivantes: append: Sqoop importera uniquement les nouveaux enregistrements dans la table, et seulement ceux pour lesquels le champs spécifié a au moins la valeur minimale spécifiée. Typiquement utilisée avec une clef primaire AUTO_INCREMENT (un id). lastmodified: Scoop importera tous les enregistrements dont le champs spécifié a eu une valeur mise à jour depuis le dernier import, supérieure à la précédente. Doit être utilisé avec un champs TIMESTAMP.

31 Import incrémentaux check-column: indique quel est le champ à vérifier lors de l'import incrémental. Dans le cas de append, il s'agit du champ numérique à contrôler. Dans le cas de lastmodified, il s'agit du champ TIMESTAMP à contrôler. --last-value: la dernière valeur à considérer pour le champs numérique (append) ou pour le timestamp (lastmodified). A la fin de l'exécution d'une tâche append, Sqoop affichera la prochaine valeur à utiliser pour le paramètre -last-value sur la sortie standard. On remarque que pour un import incrémental, on doit nécessairement utiliser un champ numérique ou un champ traduisant une date (TIMESTAMP, DATE, etc.). Remarque: la syntaxe des imports incrémentaux peut être couplée à des tâches sauvegardées Sqoop, qu'on peut rappeler à tout moment, pour simplifier grandement la vie de l'utilisateur. Elles seront abordées un peu plus loin dans le cours.

32 Import incrémentaux exemples 7-16 Exemple: sqoop import -connect jdbc: [ ] \ --table statistiques -incremental append \ -check-column id -last-value pour importer les statistiques qui ont un id supérieur ou égal à 353. On remarque qu'on aurait également pu utiliser -where "id>=353". Un second exemple: sqoop import -connect jdbc: [ ] \ --table users -incremental lastmodified \ -check-column last_login -last-value pour importer les utilisateurs qui se sont identifiés sur le backend récemment (>= au timestamp ), en mettant à jour ceux qu'on avait déjà importé.

33 Autres options utiles 7-17 Quelques autres options utiles de Sqoop: --outdir [DIR] : normalement, Sqoop génère le fichier Java qui permet d'accéder aux données facilement depuis un programme hadoop directement dans le répertoire courant. Cette option permet de lui indiquer un autre répertoire où il doit le sauvegarder. Dans tous les cas, le nom de fichier correspond au nom de la table (par exemple members.java pour une table members, etc.). --package-name [PKG] : permet de définir un package Java pour le code autogénéré par Sqoop. En temps normal, Sqoop génère simplement une classe portant le nom de la table (IE, classe members dans members.java). Cette option permet de spécifier un nom de package complet (par exemple, org.mbds.hadoop.members).

34 Autres options utiles target-dir [DIR] : indique à Sqoop l'emplacement où stocker les données importées dans HDFS (par exemple, /data). --warehouse-dir [DIR] : alternative à -target-dir; indique à Sqoop un répertoire global où il créera un répertoire par table importée, en stockant les fichiers d'importation de chaque table dans le répertoire qui lui correspond. Cette option est notamment utile lorsque l'on souhaite importer plusieurs tables à la fois. Remarque: on ne peut pas utiliser -target-dir et - warehouse-dir en même temps. --fields-terminated-by [DELIM] : permet d'indiquer une alternative au caractère de délimitation des champs par défaut (virgule ','). --lines-terminated-by [DELIM] : même chose pour les lignes/records (au lieu d'un retour à la ligne).

35 Autres options utiles as-avrodatafile : indique à Sqoop qu'on souhaite stocker les résultats au format Avro. --as-sequencefile : indique à Scoop qu'on souhaite stocker les résultats au format sequence file. --as-textfile : indique à Scoop qu'on souhaite stocker les résultats au format texte (utilisé par défaut). --direct : utilise le mode d'importation direct une version plus rapide de l'import pour certains SGBD (par exemple, pour MySQL, utilise l'outil interne mysqldump au lieu de contacter la base «manuellement»). --compress : active la compression de fichiers (par défaut en gzip).

36 Autres options utiles compression-codec [CODEC] : spécifie l'algorithme de compression à utiliser. Valeurs possibles: gzip, bzip2. Par défaut, gzip. -m [MAPPERS] : indique le nombre d'opérations Map lancées en parallèle pour un import/un export. Permet d'ajuster le parallélisme de l'opération. Remarque: il existe de nombreuses autres options disponibles pour Sqoop certaines plus utiles que d'autres. Pour plus d'informations, se référer à la documentation officielle de Sqoop:

37 Importer plusieurs tables 7-21 Pour importer toutes les tables (ou plusieurs tables à la fois) grâce à Sqoop, on utilise la commande import-all-tables. Syntaxe: sqoop import-all-tables -connect jdbc: [ ] \ --exclude-tables TABLE1,TABLE2 L'option -exclude-tables permet d'exclure certaines tables de la base de données. C'est typiquement avec cette commande qu'on utilisera l'option -warehousedir vue précédemment elle permettra à Sqoop de créer un répertoire par table importée, en stockant les fichiers de données à l'intérieur de chacun des répertoires concernés.

38 Export 7-22 Afin d'effectuer l'opération inverse, c'est à dire exporter des données depuis HDFS vers la table d'une base de données, on va utiliser la commande Sqoop export. Le format des données doit impérativement être un format supporté par Sqoop (et on doit lui indiquer lequel avec les options vues précédemment). La plupart des options de import sont également disponibles pour la commande export: --connect, --username, --password, etc... L'option -table est elle aussi disponible, mais elle indique cette fois la table dans laquelle on souhaite exporter les données. Enfin, on précise le répertoire contenant les fichiers à exporter (des fichiers part-r-00000, part-r-00001, etc.) avec l'option -export-dir.

39 Export 7-23 Par ailleurs, on dispose de deux modes possibles pour l'exportation, à préciser à l'aide de l'option - update-mode: updateonly : avec cette valeur, Sqoop n'exportera pas les enregistrements pour lesquels un enregistrement n'existe pas déjà avec la même clef primaire/les mêmes champs clef (paramétrables). C'est l'option par défaut. allowinsert : avec cette valeur, Sqoop aura le même comportement mais si un enregistrement n'existe pas déjà dans la table, il en insérera un nouveau. C'est avec l'option -update-key qu'on va pouvoir préciser le champ que Sqoop doit regarder pour déterminer si oui ou non un enregistrement existe déjà. On peut par ailleurs spécifier plusieurs champs «clef» à vérifier, séparés par des virgules.

40 ...chargera les résultats situé dans /members sur HDFS dans la table members. Si un enregistrement n'est pas trouvé pour le couple de champs nom/prenom, Sqoop insérera de nouveaux enregistrements dans la table. Exemples 7-24 Deux exemples: sqoop export -connect jdbc: [ ] \ --export-dir /results -table results \ -update-mode updateonly -update-key id chargera les fichiers résultats situés dans le répertoire HDFS /results dans la table results de la base de données. Si un enregistrement existant n'est pas trouvé pour le champ id, alors l'enregistrement à exporter ne sera pas inséré. sqoop export -connect jdbc: [ ] \ --export-dir /members -table members \ -update-mode insert -update-key nom,prenom

41 Code auto-généré 7-25 Comme on l'a indiqué précédemment, Sqoop génère un code à partir des enregistrements qu'il importe depuis la base de données dans HDFS. Il s'agit d'une classe unique, par table, qui désigne un enregistrement de la table. En réalité, cette classe implémente l'interface Hadoop Writable, exactement comme tous les types Hadoop vus précédemment: IntWritable, Text, etc... Autrement dit, simplement en important cette classe auto-générée dans son code, on peut directement se servir des données reçues en entrée (et qui sont présentes sur HDFS et proviennent de HDFS) comme d'une clef ou d'une valeur dans nos opération Map ou Reduce. Exemple de définition de classe auto-générée: public class members extends SqoopRecord implements DBWritable, Writable {

42 8 Connecteurs HDFS en temps réel

43 Présentation 8-1 On a présenté Sqoop, un outil polyvalent qui permet d'importer ou d'exporter des données entre HDFS et les bases de données «classiques» (Oracle, MySQL, PostgreSQL, etc...). Sqoop est extrêmement utile pour faire des échanges entre les bases de données et HDFS. Il s'agit cependant d'un outil utilisé pour des échanges de données ponctuels: on s'en servira par exemple pour effectuer des traitements Hadoop sur les données de la base toutes les nuits, ou encore toutes les N minutes, etc... en ré-important éventuellement les données dans la base après traitement. Il y a cependant des cas d'utilisation où on souhaite pouvoir échanger des données entre une base de données et la couche HDFS en temps réel. Par exemple, on pourrait avoir des retours statistiques sur un large réseau social depuis un backend centralisé, dont les données nécessitent des traitements massifs par le biais de Hadoop.

44 Les connecteurs 8-2 On pourrait imaginer utiliser un outil comme Sqoop de manière continue, en lançant en permanence la même tâche Sqoop. Cependant, pendant que la tâche s'exécute, de nouvelles données peuvent apparaître; par ailleurs, la charge appliquée au SGBD serait conséquente et provoquerait de potentiels problèmes d accès aux bases (LOCK des tables). Pour répondre à ce problème, la plupart des bases de données largement utilisées ont développé des points d'intégration entre les SDBG et HDFS. On désigne souvent ces points d'intégration en parlant de connecteurs Hadoop. On voit également les termes applier ou encore bridges. Ces connecteurs ont tous en commun la capacité d'écrire sur HDFS les données de la base en permanence, au fur et à mesure. Parfois, ils sont aussi capables de répliquer des modifications faites sur HDFS dans la base de données.

45 MySQL applier for Hadoop 8-3 Dans le cas de MySQL, le connecteur est le MySQL applier for Hadoop d'oracle. Il fonctionne en tirant partie des binary logs de MySQL les logs binaires que MySQL peut générer (si activé) en permanence et qui indiquent toutes les modifications faites sur la base de données. Ce sont ces mêmes binary logs qui sont utilisés pour les mécanismes de réplication MySQL classiques (entre nœuds MySQL). Le connecteur génère un répertoire par base de données sur HDFS. A l'intérieur de ce répertoire, il créé un répertoire différent par table présente dans la base de données. Enfin, à l'intérieur de ces répertoires, il génère des séries de fichiers contenant les données de la table concernée. Le format des fichiers est configurable: format texte ou format binaire sequence files (les mêmes que ceux vus avec Sqoop).

46 MySQL applier for Hadoop 8-4 (source: documentation MySQL)

47 (source: documentation MySQL) MySQL applier for Hadoop 8-5

48 Oracle SQL connector for HDFS 8-6 Dans le cas de Oracle, le connecteur est le Oracle SQL connector for HDFS. Il est sensiblement plus puissant que le connecteur de MySQL; notamment, il est capable de lire des données depuis HDFS qui ont été générées par des programmes Hadoop. Il fonctionne en utilisant le mécanisme des tables externes Oracle: des «tables» virtuelles Oracles qui désignent en réalité des données situées en dehors du SGBD. Pour connecter des dossiers ou fichiers HDFS à Oracle, il suffit de créer ces tables externes en définissant un schéma de données bien précis (comme pour une table classique). Ce schéma correspond à un format de données situé sur HDFS. Il est même possible d'effectuer des jointures entre des tables Oracle «classiques» et des tables virtuelles qui correspondent à des données sur HDFS.

49 Oracle SQL connector for HDFS 8-7 Le connecteur Oracle est capable de stocker les données sous HDFS dans deux formats principaux: un format texte, similaire au format texte utilisé dans Sqoop et le connecteur MySQL et humainement lisible, ou un format binaire. Le format binaire en question n'est pas celui des sequences files vu précédemment, mais un format propre à Oracle et désigné sous le terme de data dumps. Oracle fourni par ailleurs des APIs Java nécessaires pour accéder simplement et rapidement aux données stockées dans ce format de la même manière que pour des Sequence Files. Ces APIs définissent notamment des classes Input/OutputFormat Hadoop, de la même manière que par exemple la classe Hadoop SequenceFileInputFormat vue en TP. On peut donc se servir de ces classes comme d'un format d'entrée pour une tâche Hadoop, ou d'un format de sortie, toujours sur HDFS.

50 Autres connecteurs et modèles 8-8 Il existe de nombreux autres connecteurs permettant l'accés à des données situées dans une base de données depuis Hadoop certains propriétaires et commerciaux, d'autres Open Source et librement disponibles. D'autres connecteurs évitent complètement HDFS Hadoop va alors récupérer ses données dans le SGBD directement lors de l'exécution d'une tâche. Il suffit au programmeur d'utiliser une autre API pour préciser à Hadoop la source de ses données. Exemple: VoltDB. Il s'agit d'un SGBD Open Source innovant qui utilise un stocke ses données en mémoire vive (un peu comme le moteur MEMORY de MySQL), de manière distribuée et répliquée, et constitue ainsi une alternative à HDFS. Il propose des APIs Java pour l'accés aux données depuis Hadoop, et offre ainsi l'avantage de pouvoir directement s'intégrer à Hadoop et venir «remplacer» HDFS.

Hadoop / Big Data. Benjamin Renaut MBDS 2015-2016

Hadoop / Big Data. Benjamin Renaut <renaut.benjamin@tokidev.fr> MBDS 2015-2016 Hadoop / Big Data Benjamin Renaut MBDS 2015-2016 11 MongoDB et map/reduce MongoDB: fonction mapreduce 11-1 Au delà des points d'intégration Hadoop qui vont être abordés par

Plus en détail

Hadoop / Big Data. Benjamin Renaut MBDS 2014-2015

Hadoop / Big Data. Benjamin Renaut <renaut.benjamin@tokidev.fr> MBDS 2014-2015 Hadoop / Big Data Benjamin Renaut MBDS 2014-2015 TP 3 TP noté Méthodologie Map/Reduce - programmation Hadoop - Sqoop Préparation du TP 1 Importer la machine virtuelle.ova du

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

Hadoop / Big Data. Benjamin Renaut MBDS 2014-2015

Hadoop / Big Data. Benjamin Renaut <renaut.benjamin@tokidev.fr> MBDS 2014-2015 Hadoop / Big Data Benjamin Renaut MBDS 2014-2015 TP 1 - Correction Méthodologie Map/Reduce - programmation Hadoop. Rappel 1 La première partie du TP consistait à mettre en

Plus en détail

Hadoop / Big Data. Benjamin Renaut MBDS 2014-2015

Hadoop / Big Data. Benjamin Renaut <renaut.benjamin@tokidev.fr> MBDS 2014-2015 Hadoop / Big Data Benjamin Renaut MBDS 2014-2015 TP 1 Méthodologie Map/Reduce - programmation Hadoop. 1 Installer VirtualBox (https://www.virtualbox.org/). Importer la machine

Plus en détail

Système de contrôle d accès

Système de contrôle d accès Système de contrôle d accès Installation du système Les éléments à mettre en place. Pour mettre en place l environnement de travail de la badgeuse, il faut suivre plusieurs étapes : Sur l ordinateur devant

Plus en détail

Importation et exportation de données dans HDFS

Importation et exportation de données dans HDFS 1 Importation et exportation de données dans HDFS Introduction Dans une installation type, Hadoop se trouve au cœur d un flux de données complexe. Ces données proviennent souvent de systèmes disparates

Plus en détail

Sage 100 CRM Guide de l Import Plus avec Talend Version 8. Mise à jour : 2015 version 8

Sage 100 CRM Guide de l Import Plus avec Talend Version 8. Mise à jour : 2015 version 8 Sage 100 CRM Guide de l Import Plus avec Talend Version 8 Mise à jour : 2015 version 8 Composition du progiciel Votre progiciel est composé d un boîtier de rangement comprenant : le cédérom sur lequel

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

SIO-21922 Bases de données

SIO-21922 Bases de données 1- Objectifs généraux Concentration mineure: Réalisation de systèmes d'information SIO-21922 Bases de données Prof. : Dzenan Ridjanovic acquérir les principes et concepts fondamentaux dans le domaine des

Plus en détail

MySQL 5 (versions 5.1 à 5.6) Guide de référence du développeur (Nouvelle édition)

MySQL 5 (versions 5.1 à 5.6) Guide de référence du développeur (Nouvelle édition) Avant-propos 1. Les objectifs de ce livre 13 2. Les principaux sujets qu'aborde ce livre 13 3. À qui s adresse ce livre? 14 4. Les pré-requis 14 Introduction à MySQL 1. Introduction aux bases de données

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

Avant-propos. Organisation du livre

Avant-propos. Organisation du livre Avant-propos Avec Hadoop par la pratique, les développeurs vont apprendre à maîtriser Hadoop et vont acquérir de nombreuses compétences sur la résolution de problèmes à l aide de ce framework. Ils vont

Plus en détail

FORMATION HADOOP Développeur pour Hadoop (Apache)

FORMATION HADOOP Développeur pour Hadoop (Apache) FORMATION HADOOP Développeur pour Hadoop (Apache) Ce document reste la propriété du Groupe Cyrès. Toute copie, diffusion, exploitation même partielle doit faire l objet d une demande écrite auprès de Cyrès.

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

XML et Bases de données. XMLType Oracle XML DB

XML et Bases de données. XMLType Oracle XML DB Oracle XML DB Oracle XML DB Depuis la version 9i et de façon enrichie dans la version 10g, Oracle propose des outils pour gérer des documents XML Depuis la 10g il n'y a plus d'extraction car auparavant

Plus en détail

Bases de données (INF225), TELECOM ParisTech. TP PHP & MySQL

Bases de données (INF225), TELECOM ParisTech. TP PHP & MySQL Bases de données (INF225), TELECOM ParisTech TP PHP & MySQL Pierre Senellart (pierre.senellart@telecom-paristech.fr) Bogdan Cautis (bogdan.cautis@telecom-paristech.fr) Ioana Ileana (ioana.ileana@telecom-paristech.fr)

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

avec nos solutions spécialisées pour la microfinance et ses institutions coopératives Big Data

avec nos solutions spécialisées pour la microfinance et ses institutions coopératives Big Data avec nos solutions spécialisées pour la microfinance et ses institutions coopératives Big Data Historique de Big data Jusqu à l avènement d Internet et surtout du Web 2.0 il n y avait pas tant de données

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

Document d'aide phpmyadmin et MySQL

Document d'aide phpmyadmin et MySQL Document d'aide phpmyadmin et MySQL GPA775 Base de données École de Technologie Supérieure 23 juin 2009 Ce document sert de guide de base pour travailler avec l'interface phpmyadmin (interface par un navigateur

Plus en détail

Java EE Approfondi - Cours 2. Cours de 2 e année ingénieur Spécialisation «Génie Informatique»

Java EE Approfondi - Cours 2. Cours de 2 e année ingénieur Spécialisation «Génie Informatique» Java EE Approfondi - Cours 2 Cours de 2 e année ingénieur Spécialisation «Génie Informatique» Présentation Lier l'orienté objet et la base de données relationnelle peut être lourd et consommateur en temps.

Plus en détail

Les Utilisateurs dans SharePoint

Les Utilisateurs dans SharePoint Les Utilisateurs dans SharePoint La gestion des utilisateurs dans SharePoint SharePoint dont le cœur est l'outil collaboratif, Windows SharePoint Services. Chaque utilisateur (ou collaborateur) peut créer

Plus en détail

PHP & BD. PHP & Bases de données. Logiciels & matériels utilisés. Bases de données et Web

PHP & BD. PHP & Bases de données. Logiciels & matériels utilisés. Bases de données et Web PHP & Bases de données La quantité de données utilisée par certains sites web nécessite l'utilisation d'une base de données Il faut donc disposer d'un SGBD (mysql, postgresql, oracle, ) installé sur un

Plus en détail

Vulnérabilités logicielles Injection SQL

Vulnérabilités logicielles Injection SQL MGR850 Hiver 2014 Vulnérabilités logicielles Injection SQL Hakima Ould-Slimane Chargée de cours École de technologie supérieure (ÉTS) Département de génie électrique 1 Plan SQL Injection SQL Injections

Plus en détail

Introduction à JDBC. Accès aux bases de données en Java

Introduction à JDBC. Accès aux bases de données en Java Introduction à JDBC Accès aux bases de données en Java Eric Cariou Université de Pau et des Pays de l'adour Département Informatique Eric.Cariou@univ-pau.fr 1 Introduction JDBC : Java Data Base Connectivity

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

1. Installation du Module

1. Installation du Module 1 sur 10 Mise en place du Module Magento V 1.5.7 1. Installation du Module Vous pouvez installer le module de deux façons différentes, en passant par Magento Connect, ou directement via les fichiers de

Plus en détail

Créer le modèle multidimensionnel

Créer le modèle multidimensionnel 231 Chapitre 6 Créer le modèle multidimensionnel 1. Présentation de SSAS multidimensionnel Créer le modèle multidimensionnel SSAS (SQL Server Analysis Services) multidimensionnel est un serveur de bases

Plus en détail

AME V1.6 P2 Release Notes. 5 Février 2014

AME V1.6 P2 Release Notes. 5 Février 2014 AME V1.6 P2 Release Notes 5 Février 2014 1. Introduction Ce document décrit les évolutions et correctifs principaux apportés par la version V1.6 P2 de l'ame depuis la version V1.5 La 1.6 contient quelques

Plus en détail

Fonctionnement du serveur Z39.50

Fonctionnement du serveur Z39.50 Fonctionnement du serveur Z39.50 Table des matières 1 Configuration du serveur...2 1.1 Comportement du serveur...2 1.2 Configuration de la traduction z39.50 -> base de données...2 1.3 Configuration du

Plus en détail

Documentation technique MBDS2.0 Site web administratif

Documentation technique MBDS2.0 Site web administratif Documentation technique MBDS2.0 Site web administratif Le document suivant est destiné aux développeurs souhaitant installer la plateforme sur leurs propres machines. D o c u m e n t a t i o n t e c h

Plus en détail

KARMA Le système de Revenue Management d'air France KLM avec Hadoop

KARMA Le système de Revenue Management d'air France KLM avec Hadoop KARMA Le système de Revenue Management d'air France KLM avec Hadoop Conférence BIG DATA - Master MBDS Université de Nice Sophia Antipolis 16 Décembre 2014 Martial AYAS maayas@airfrance.fr 2 Agenda 1. Présentation

Plus en détail

Certificat Big Data - Master MAthématiques

Certificat Big Data - Master MAthématiques 1 / 1 Certificat Big Data - Master MAthématiques Master 2 Auteur : Sylvain Lamprier UPMC Fouille de données et Medias Sociaux 2 / 1 Rich and big data: Millions d utilisateurs Millions de contenus Multimedia

Plus en détail

Cahier de charges (Source : "Java EE - Guide de développement d'applications web en Java" par Jérôme Lafosse) Module. Site Web dynamique JSP / Servlet

Cahier de charges (Source : Java EE - Guide de développement d'applications web en Java par Jérôme Lafosse) Module. Site Web dynamique JSP / Servlet Cahier de charges (Source : "Java EE - Guide de développement d'applications web en Java" par Jérôme Lafosse) Module Site Web dynamique JSP / Servlet Sujet : betaboutique Soutenance le 04 / 01 /2013 &

Plus en détail

HADOOP ET SON ÉCOSYSTÈME

HADOOP ET SON ÉCOSYSTÈME HADOOP ET SON ÉCOSYSTÈME Mars 2013 2012 Affini-Tech - Diffusion restreinte 1 AFFINI-TECH Méthodes projets Outils de reporting & Data-visualisation Business & Analyses BigData Modélisation Hadoop Technos

Plus en détail

Initiation aux bases de données (SGBD) Walter RUDAMETKIN

Initiation aux bases de données (SGBD) Walter RUDAMETKIN Initiation aux bases de données (SGBD) Walter RUDAMETKIN Bureau F011 Walter.Rudametkin@polytech-lille.fr Moi Je suis étranger J'ai un accent Je me trompe beaucoup en français (et en info, et en math, et...)

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

SQL MAP. Etude d un logiciel SQL Injection

SQL MAP. Etude d un logiciel SQL Injection Introduction Ce TP a pour but d analyser un outil d injection SQL, comprendre les vulnérabilités d une BD et de mettre en œuvre une attaque par injection SQL. Prise en main du logiciel SQLMap est un outil

Plus en détail

Introduction à Hadoop + Map/Reduce. Certificat Big Data. TME Hadoop

Introduction à Hadoop + Map/Reduce. Certificat Big Data. TME Hadoop Certificat Big Data TME Hadoop Ce TME a pour objectif de se familiariser avec le framework distribué Apacha Hadoop. Dans un premier temps, nous considèrerons les diérentes commandes permettant le chargement

Plus en détail

Microsoft OSQL OSQL ou l'outil de base pour gérer SQL Server

Microsoft OSQL OSQL ou l'outil de base pour gérer SQL Server Microsoft OSQL OSQL ou l'outil de base pour gérer SQL Server Suite à mon précédent article concernant MSDE, je me suis rendu compte à partir des commentaires que de nombreux utilisateurs avaient des problèmes

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

Java DataBaseConnectivity

Java DataBaseConnectivity Java DataBaseConnectivity JDBC JDBC est une API Java (ensemble de classes et d interfaces défini par SUN et les acteurs du domaine des SGBD) permettant d accéder aux bases de données à l aide du langage

Plus en détail

Intégration des données

Intégration des données Intégration des données Projet Scan Mail Master 1 SIGLIS Intégration des Données ScanMail S.TALLARD La but de ce projet est d implémenter une application permettant de prévenir par l envoie de mails, une

Plus en détail

Plan de cette partie. Implantation des SGBD relationnels. Définition et fonctionnalités. Index. Coûts pour retrouver des données

Plan de cette partie. Implantation des SGBD relationnels. Définition et fonctionnalités. Index. Coûts pour retrouver des données Implantation des SGBD relationnels Université de Nice Sophia-Antipolis Version 3.4 25//06 Richard Grin Plan de cette partie Nous allons étudier (très rapidement!) quelques éléments de solutions utilisés

Plus en détail

Hadoop / Big Data. Benjamin Renaut MBDS 2014-2015

Hadoop / Big Data. Benjamin Renaut <renaut.benjamin@tokidev.fr> MBDS 2014-2015 Hadoop / Big Data Benjamin Renaut MBDS 2014-2015 9 Apache Pig Présentation 9-1 Pig est un autre outil associé à Hadoop au même titre que Sqoop. Son but est de permettre de

Plus en détail

DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin

DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin Objectifs : Apprendre à l apprenant à lancer un serveur local «Apache» Apprendre à l'apprenant à lancer un serveur MySQL

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

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

Architecture de la plateforme SBC

Architecture de la plateforme SBC Simple Business Connector Architecture de la plateforme SBC Titre Projet Description Architecture de la plateforme SBC Plateforme SBC Ce document reprend toutes les étapes de l'installation du serveur

Plus en détail

Mysql. Les requêtes préparées Prepared statements

Mysql. Les requêtes préparées Prepared statements Mysql Les requêtes préparées Prepared statements Introduction Les prepared statements côté serveur sont une des nouvelles fonctionnalités les plus intéressantes de MySQL 4.1 (récemment sorti en production

Plus en détail

JDBC. Daniel Tschirhart : Programmation Java V1.35 1.1

JDBC. Daniel Tschirhart : Programmation Java V1.35 1.1 JDBC Daniel Tschirhart : Programmation Java V1.35 1.1 JDBC JDBC est l'acronyme de Java DataBase Connectivity et désigne une API définie par Sun pour permettre un accès aux bases de données avec Java Accès

Plus en détail

Réplication E-maj Foreign Data Wrapper PostGIS PostgreSQL-f

Réplication E-maj Foreign Data Wrapper PostGIS PostgreSQL-f PGDay Réplication E-maj Foreign Data Wrapper PostGIS PostgreSQL-f Réplication Réplications, disponibilités, durabilités Evolution dans la base de données : Postgres 8.2 : warm standby Postgres 9.0 : hot

Plus en détail

MODE OPERATOIRE OPENOFFICE BASE

MODE OPERATOIRE OPENOFFICE BASE MODE OPERATOIRE OPENOFFICE BASE Openoffice Base est un SGBDR : Système de Gestion de Base de Données Relationnelle. L un des principaux atouts de ce logiciel est de pouvoir gérer de façon efficace et rapide

Plus en détail

1. Introduction... 2. 2. Sauvegardes Hyper-V avec BackupAssist... 2. Avantages... 2. Fonctionnalités... 2. Technologie granulaire...

1. Introduction... 2. 2. Sauvegardes Hyper-V avec BackupAssist... 2. Avantages... 2. Fonctionnalités... 2. Technologie granulaire... Guide de démarrage rapide : console de restauration granulaire Hyper-V Sommaire 1. Introduction... 2 2. Sauvegardes Hyper-V avec BackupAssist... 2 Avantages... 2 Fonctionnalités... 2 Technologie granulaire...

Plus en détail

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES Dossier G11 - Interroger une base de données La base de données Facturation contient tout un ensemble d'informations concernant la facturation de la SAFPB (société anonyme de fabrication de produits de

Plus en détail

CONNECTEUR PRESTASHOP VTIGER CRM

CONNECTEUR PRESTASHOP VTIGER CRM CONNECTEUR PRESTASHOP VTIGER CRM Page 1 / 14 Vtiger CRM - Prestashop Connector Pour PRESTASHOP version 1.4.x et 1.5.x Pour vtiger CRM version 5.1, 5.2.0, 5.2.1, 5.3 et 5.4 Introduction En tant que gérant

Plus en détail

Cours Web n o 7 MySQL et PHP

Cours Web n o 7 MySQL et PHP Introduction aux bases de données Cours Web n o 7 MySQL et PHP Sandrine-Dominique Gouraud (gouraud@lri.fr) Pierre Senellart (pierre@senellart.com) Semaine du 7 novembre 2005 S.-D. Gouraud, P. Senellart

Plus en détail

II. EXCEL/QUERY ET SQL

II. EXCEL/QUERY ET SQL I. AU TRAVAIL, SQL! 1. Qu est-ce que SQL?... 19 2. SQL est un indépendant... 19 3. Comment est structuré le SQL?... 20 4. Base, table et champ... 21 5. Quelle est la syntaxe générale des instructions SQL?...

Plus en détail

PROCEDURE D'INSTALLATION OPENREPORTS

PROCEDURE D'INSTALLATION OPENREPORTS PROCEDURE D'INSTALLATION OPENREPORTS Table des matières Prérequis...2 1 Installation linux...2 2 Installation JAVA...3 2.1 Installation de la jdk...3 2.2 Configuration de l'environnement...3 3 Installation

Plus en détail

Compte-rendu de projet de Système de gestion de base de données

Compte-rendu de projet de Système de gestion de base de données Compte-rendu de projet de Système de gestion de base de données Création et utilisation d'un index de jointure LAMBERT VELLER Sylvain M1 STIC Université de Bourgogne 2010-2011 Reponsable : Mr Thierry Grison

Plus en détail

Plan de formation : Certification OCA Oracle 11g. Les administrateurs de base de données (DBA) Oracle gèrent les systèmes informatiques

Plan de formation : Certification OCA Oracle 11g. Les administrateurs de base de données (DBA) Oracle gèrent les systèmes informatiques Plan de formation : Certification OCA Oracle 11g Description Les administrateurs de base de données (DBA) Oracle gèrent les systèmes informatiques industriels les plus avancés. Cette formation permettra

Plus en détail

FileMaker 11. Guide ODBC et JDBC

FileMaker 11. Guide ODBC et JDBC FileMaker 11 Guide ODBC et JDBC 2004-2010 FileMaker, Inc. Tous droits réservés. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054, Etats-Unis FileMaker est une marque de FileMaker,

Plus en détail

Auguria_PCM Product & Combination Manager

Auguria_PCM Product & Combination Manager Auguria_PCM Product & Combination Manager Guide utilisateurs v1.5 Auguria 9, rue Alfred Kastler 44300 NANTES FRANCE +33251135012 contact@auguria.net Plan 1 Description générale du module...3 2 Mise en

Plus en détail

8. Java et les bases de données. Olivier Curé - UMLV [page 206 ]

8. Java et les bases de données. Olivier Curé - UMLV [page 206 ] 8. Java et les bases de données Olivier Curé - UMLV [page 206 ] Java et les BD Plusieurs manières d'écrire du code Java accédant à une BD: Statement Level Interface (SLI) Solutions : SQLJ (SQL92) Call

Plus en détail

Introduction à GeoKettle un outil ETL spatial open source

Introduction à GeoKettle un outil ETL spatial open source Introduction à GeoKettle un outil ETL spatial open source par Etienne Dubé et Thierry Badard {etienne.dube,thierry.badard}@scg.ulaval.ca Groupe de recherche GeoSOA (http://geosoa.scg.ulaval.ca) Université

Plus en détail

Chapitre 3 La manipulation des données (LMD)

Chapitre 3 La manipulation des données (LMD) 75 Chapitre 3 La manipulation des données (LMD) 1. Introduction La manipulation des données (LMD) Le langage de manipulation de données permet aux utilisateurs et aux développeurs d'accéder aux données

Plus en détail

Bases de données relationnelles

Bases de données relationnelles Module B210 Bases de données relationnelles Travaux pratiques TP avec Oracle XE TP avec MySQL Gérard-Michel Cochard Travaux Pratiques avec Oracle XE Contenu : 1 - Installation et prise en main 2 - Un exemple

Plus en détail

Installer et Utiliser MSDE 2000 Utilisation de MS SQL Server 2000 Desktop Engine

Installer et Utiliser MSDE 2000 Utilisation de MS SQL Server 2000 Desktop Engine Installer et Utiliser MSDE 2000 Utilisation de MS SQL Server 2000 Desktop Engine Le produit de développement de Microsoft pour les bases de données le plus proche de SQL Server 2000 est : Microsoft SQL

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

KUMARASAMY Sandirane Lemont Jérémy Fruitet Robin FOULARD Aymeric BTS 2 SLAM Compte-rendu PPE03 et PPE04

KUMARASAMY Sandirane Lemont Jérémy Fruitet Robin FOULARD Aymeric BTS 2 SLAM Compte-rendu PPE03 et PPE04 KUMARASAMY Sandirane Lemont Jérémy Fruitet Robin FOULARD Aymeric BTS 2 SLAM Compte-rendu PPE03 et PPE04 Environnement : Ce projet a été réalisé en deuxième année de BTS, il s'agit d'un travail de groupe

Plus en détail

PHP /MySQL Interface d'accès aux BDDs PDO. Youssef CHAHIR

PHP /MySQL Interface d'accès aux BDDs PDO. Youssef CHAHIR PHP /MySQL Interface d'accès aux BDDs PDO Youssef CHAHIR 1 PLAN Architecture Créer une interface PHP/MySQL : Établir une connexion Exécuter une requête Gérer les erreurs Exploiter les résultats de la requête

Plus en détail

ARCHITECTURES DES SYSTÈME DE BASE DE DONNÉES. Cours Administration des Bases de données M Salhi

ARCHITECTURES DES SYSTÈME DE BASE DE DONNÉES. Cours Administration des Bases de données M Salhi ARCHITECTURES DES SYSTÈME DE BASE DE DONNÉES Cours Administration des Bases de données M Salhi Architectures des Système de base de données Systèmes centralisés et client-serveur Server System Architectures

Plus en détail

Besoin de concevoir des systèmes massivement répartis. Comment tester le système? Solution. Évaluation de systèmes répartis à large échelle

Besoin de concevoir des systèmes massivement répartis. Comment tester le système? Solution. Évaluation de systèmes répartis à large échelle Besoin de concevoir des systèmes massivement répartis. Évaluation de systèmes répartis à large échelle Sergey Legtchenko Motivation : LIP6-INRIA Tolérance aux pannes Stockage de données critiques Coût

Plus en détail

Chapitre 9 Les métadonnées

Chapitre 9 Les métadonnées 217 Chapitre 9 Les métadonnées 1. De l'importance des métadonnées Les métadonnées Au-delà du contenu des données elles-mêmes d'un système, il est souvent très utile de connaître un minimum d'informations

Plus en détail

Sage 100 CRM - Guide de l Import Plus Version 8. Mise à jour : 2015 version 8

Sage 100 CRM - Guide de l Import Plus Version 8. Mise à jour : 2015 version 8 Sage 100 CRM - Guide de l Import Plus Version 8 Mise à jour : 2015 version 8 Composition du progiciel Votre progiciel est composé d un boîtier de rangement comprenant : le cédérom sur lequel est enregistré

Plus en détail

dans laquelle des structures vont être créées pour une ou plusieurs applications.

dans laquelle des structures vont être créées pour une ou plusieurs applications. Création d'une nouvelle base de données A. Vue d'ensemble 1. Étapes de création d'une nouvelle base de données pour une application Le processus complet de création d'une nouvelle base de données pour

Plus en détail

GRAILS L'ARCHITECTURE GRAILS

GRAILS L'ARCHITECTURE GRAILS GRAILS L'ARCHITECTURE GRAILS Grails est un serveur d'application web basé sur le langage Groovy, et le framework Spring. Il est édité par la société : SpringSource. Une application Grails se décompose

Plus en détail

TME 1 - Hadoop, une plate-forme open-source de MapReduce. Installation et prise en main

TME 1 - Hadoop, une plate-forme open-source de MapReduce. Installation et prise en main CODEL : conception et développement d applications d entreprise à large échelle TME 1 - Hadoop, une plate-forme open-source de MapReduce. Installation et prise en main Jonathan Lejeune Contexte Le modèle

Plus en détail

Mise en garde. Etape 1 : Installation du produit

Mise en garde. Etape 1 : Installation du produit Siècle V4 (Etat Civil) Notice d installation Mise en garde Avant d installer la présente mise à jour, assurez-vous que vous possédez une sauvegarde récente de vos données et que vous êtes en mesure de

Plus en détail

Prototypage et évaluation de performances d un service de traçabilité avec une architecture distribuée basée sur Hadoop

Prototypage et évaluation de performances d un service de traçabilité avec une architecture distribuée basée sur Hadoop Julien Gerlier Siman Chen Rapport de projet de fin d étude ASR 2010/2011 Prototypage et évaluation de performances d un service de traçabilité avec une architecture distribuée basée sur Hadoop Encadrants

Plus en détail

ARTICLE : élément de «base» contenant texte et ressources diverses. Peut avoir plusieurs statuts (visible ou non publiquement, entre autres),

ARTICLE : élément de «base» contenant texte et ressources diverses. Peut avoir plusieurs statuts (visible ou non publiquement, entre autres), Terminologie ARTICLE : élément de «base» contenant texte et ressources diverses. Peut avoir plusieurs statuts (visible ou non publiquement, entre autres), RUBRIQUE : contenant d'articles et/ou de rubriques

Plus en détail

Introduction à l'indexation fulltext

Introduction à l'indexation fulltext Introduction à l'indexation fulltext Robert VISEUR Assistant (FPMs) Guideur technologique (CETIC) robert.viseur@fpms.ac.be Solutions Linux 2008 31 janvier 2008 Objectifs de l'exposé Proposer une introduction

Plus en détail

Prototypage et évaluation de performances d un service de traçabilité avec une architecture distribuée basée sur Hadoop

Prototypage et évaluation de performances d un service de traçabilité avec une architecture distribuée basée sur Hadoop Prototypage et évaluation de performances d un service de traçabilité avec une architecture distribuée basée sur Hadoop Soutenance de projet ASR 27/01/2011 Julien Gerlier Siman Chen Encadrés par Bruno

Plus en détail

Rapport d'architecture

Rapport d'architecture Romain Alexandre Cécile Camillieri Rapport d'architecture 1 / 12 Table des matières I) Description du projet p. 3 1) Canaux de communication p. 3 2) Diagrammes de cas d'utilisation p. 3 II) Gestion des

Plus en détail

Gestion du parc informatique matériel et logiciel de l Ensicaen. Rapport de projet. Spécialité Informatique 2 e année. SAKHI Taoufik SIFAOUI Mohammed

Gestion du parc informatique matériel et logiciel de l Ensicaen. Rapport de projet. Spécialité Informatique 2 e année. SAKHI Taoufik SIFAOUI Mohammed 6, bd maréchal Juin F-14050 Caen cedex 4 Spécialité Informatique 2 e année Rapport de projet Gestion du parc informatique matériel et logiciel de l Ensicaen SAKHI Taoufik SIFAOUI Mohammed Suivi ENSICAEN

Plus en détail

Les déclencheurs (Triggers) avec Oracle

Les déclencheurs (Triggers) avec Oracle 1) Introduction 2) Événements déclenchant 3) Mécanisme général 4) Privilèges systèmes 5) Syntaxe 6) Nom du déclencheur 7) Option BEFORE ou AFTER 8) Déclencheur LMD 9) Déclencheur LDD 10) Déclencheur d'instance

Plus en détail

Cahier des charges. Jonathan HAEHNEL. Université de Strasbourg IUT Robert Schuman

Cahier des charges. Jonathan HAEHNEL. Université de Strasbourg IUT Robert Schuman Université de Strasbourg IUT Robert Schuman Maître de stage : Nicolas Lachiche Tuteur universitaire : Marie-Paule Muller Cahier des charges Jonathan HAEHNEL Strasbourg, le 6 mai 2011 Table des matières

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

MySQL. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

MySQL. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada MySQL (Administrateur) (Dernière édition) Programme de formation Microsoft Partner France, Belgique, Suisse, Roumanie - Canada WWW.SASGROUPE.COM Formez vos salariés pour optimiser la productivité de votre

Plus en détail

Vulnérabilités logicielles Injection SQL. Chamseddine Talhi École de technologie supérieure (ÉTS) Dép. Génie logiciel et des TI

Vulnérabilités logicielles Injection SQL. Chamseddine Talhi École de technologie supérieure (ÉTS) Dép. Génie logiciel et des TI Vulnérabilités logicielles Injection SQL Chamseddine Talhi École de technologie supérieure (ÉTS) Dép. Génie logiciel et des TI 1 Plan SQL Injection SQL Injections SQL standards Injections SQL de requêtes

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

Programmation Avancée pour le Web

Programmation Avancée pour le Web L3 Informatique Option : ISIL Programmation Avancée pour le Web RAMDANI Med U Bouira 1 Contenu du module Introduction aux applications Web Rappels sur les sites Web Conception d une application Web Notion

Plus en détail

E-mail : contact@nqicorp.com - Web : http://www.nqicorp.com

E-mail : contact@nqicorp.com - Web : http://www.nqicorp.com - 5, rue Soutrane - 06560 Valbonne Sophia-Antipolis E-mail : contact@nqicorp.com - Web : http://www.nqicorp.com NQI Orchestra 3.3 - Guide d'installation Windows.................................................................

Plus en détail

Automatisation de l administration système

Automatisation de l administration système Automatisation de l administration système Plan Problèmatique : trop de systèmes, trop de solutions Typage des solutions Puppet : gestion de configuration de systèmes Capistrano : déploiement d applications

Plus en détail

Hadoop / Big Data. Benjamin Renaut MBDS 2013-2014

Hadoop / Big Data. Benjamin Renaut <renaut.benjamin@tokidev.fr> MBDS 2013-2014 Hadoop / Big Data Benjamin Renaut MBDS 2013-2014 1 Introduction Programme Planning Objectifs TP/Évaluations Introduction 1-1 Benjamin Renaut Tokidev SAS - Bureau d'étude -

Plus en détail

PRODUCTION DE JEUX DE DONNÉES ANONYMISÉES

PRODUCTION DE JEUX DE DONNÉES ANONYMISÉES PRODUCTION DE JEUX DE DONNÉES ANONYMISÉES Les contenus de ce document sont la propriété exclusive de la société REVER. Ils ne sont transmis qu à titre d information et ne peuvent en aucun cas être considérés

Plus en détail

TP : installation de services

TP : installation de services TP : installation de services Ce TP a été rédigé rapidement. Il ne donne certainement pas toutes les explications nécessaires à la compréhension des manipulations. Assurez vous de bien comprendre ce que

Plus en détail