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 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

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

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 Méthodologie Map/Reduce - programmation Hadoop. 1 Installer VirtualBox (https://www.virtualbox.org/). Importer la machine

Plus en détail

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

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

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

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

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

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

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

LES ACCES ODBC AVEC LE SYSTEME SAS

LES ACCES ODBC AVEC LE SYSTEME SAS LES ACCES ODBC AVEC LE SYSTEME SAS I. Présentation II. SAS/ACCESS to ODBC III. Driver ODBC SAS IV. Driver ODBC SAS Universel V. Version 8 VI. Références I. Présentation Introduction ODBC, qui signifie

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

Les bases de données (suite) Support de cours Pascal Ballet

Les bases de données (suite) Support de cours Pascal Ballet Les bases de données (suite) Support de cours Pascal Ballet La saisie et l'impression des données Les formulaires de saisie Les formulaires de saisie jouent deux rôles importants : - la mise en forme des

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

Procédure de migration vers PostgreSQL

Procédure de migration vers PostgreSQL Procédure de migration vers PostgreSQL Etude et réalisation d une solution de migration d une base de données ORACLE vers un système libre PostgreSQL ou MySQL. Réf. : Procédure de migration PostgreSQL

Plus en détail

4D v11 SQL Release 5 (11.5) ADDENDUM

4D v11 SQL Release 5 (11.5) ADDENDUM ADDENDUM Bienvenue dans la release 5 de 4D v11 SQL. Ce document présente les nouveautés et modifications apportées à cette nouvelle version du programme. Prise en charge de nouvelles plates-formes La release

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

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

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

BTS S.I.O. 2012-2013 PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

BTS S.I.O. 2012-2013 PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais BTS S.I.O. 2012-2013 PHP OBJET Module SLAM4 Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais Table des matières 1 But... 3 2 Les bases :... 3 3 Utilisation d'une classe : Instanciation...3

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. 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

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

LES NOUVEAUTES DE COST AND PROFITABILITY MANAGEMENT 8.1

LES NOUVEAUTES DE COST AND PROFITABILITY MANAGEMENT 8.1 LES NOUVEAUTES DE COST AND PROFITABILITY MANAGEMENT 8.1 SAS Cost and Profitability Management, également appelé CPM (ou C&P), est le nouveau nom de la solution SAS Activity-Based Management. Cette version

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 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

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

Accès au serveur SQL. Où ranger les accès au serveur SQL?

Accès au serveur SQL. Où ranger les accès au serveur SQL? 150 requête SQL, cela aura un impact sur un nombre limité de lignes et non plus sur l ensemble des données. MySQL propose une clause originale en SQL : LIMIT. Cette clause est disponible avec les différentes

Plus en détail

Dossier I Découverte de Base d Open Office

Dossier I Découverte de Base d Open Office ETUDE D UN SYSTEME DE GESTION DE BASE DE DONNEES RELATIONNELLES Définition : Un SGBD est un logiciel de gestion des données fournissant des méthodes d accès aux informations. Un SGBDR permet de décrire

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

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

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

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

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

Les formations. Développeur Logiciel. ENI Ecole Informatique

Les formations. Développeur Logiciel. ENI Ecole Informatique page 1/5 Titre professionnel : Reconnu par l Etat de niveau III (Bac), inscrit au RNCP (arrêté du 12/10/07, J.O. n 246 du 23/10/07) (32 semaines) Unité 1 : Structurer une application 6 semaines Module

Plus en détail

LINQ to SQL. Version 1.1

LINQ to SQL. Version 1.1 LINQ to SQL Version 1.1 2 Chapitre 03 - LINQ to SQL Sommaire 1 Introduction... 3 1.1 Rappels à propos de LINQ... 3 1.2 LINQ to SQL... 3 2 LINQ to SQL... 3 2.1 Importer des tables... 3 2.1.1 Le concepteur

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

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

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

LES FONCTIONS DE SURVEILLANCE DES FICHIERS

LES FONCTIONS DE SURVEILLANCE DES FICHIERS SYSLOG and APPLICATION LOGS Knowledge Module for PATROL - Data Sheet Version 1.5 Développé par http://www.axivia.com/ PRESENTATION DU PRODUIT SYSLOG and APPLICATION LOGS Knowledge Module for PATROL est

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

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

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

Méthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel.

Méthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel. Méthode de Test Pour WIKIROUTE Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel. [Tapez le nom de l'auteur] 10/06/2009 Sommaire I. Introduction...

Plus en détail

Projet d Etude et de Développement

Projet d Etude et de Développement Projet d Etude et de Développement PokerServer Guide d installation Auteurs: Lucas Kerdoncuff Balla Seck Rafik Ferroukh Xan Lucu Youga MBaye Clients: David Bromberg Laurent Réveillère March 28, 2012 Contents

Plus en détail

CNAM 2010-2011. Déploiement d une application avec EC2 ( Cloud Amazon ) Auteur : Thierry Kauffmann Paris, Décembre 2010

CNAM 2010-2011. Déploiement d une application avec EC2 ( Cloud Amazon ) Auteur : Thierry Kauffmann Paris, Décembre 2010 CNAM 2010-2011 Déploiement d une application avec EC2 ( Cloud Amazon ) Auteur : Thierry Kauffmann Paris, Décembre 2010 Déploiement d une application dans le cloud. 1. Cloud Computing en 2010 2. Offre EC2

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

Manuel Utilisateur ENIGMA 15/04/2008. 299, rue Saint Sulpice Centre Tertiaire de l Arsenal 59500 DOUAI

Manuel Utilisateur ENIGMA 15/04/2008. 299, rue Saint Sulpice Centre Tertiaire de l Arsenal 59500 DOUAI Manuel Utilisateur 15/04/2008 ENIGMA Cahier de réalisation ENIGMA Page 2 Sommaire I. Introduction :... 3 II. Les répertoires de l application... 3 III. Les plugins... 4 a. CmdDos... 4 b. CSV2XML... 4 c.

Plus en détail

Guide de démarrage rapide avec DataStudio Online Edition

Guide de démarrage rapide avec DataStudio Online Edition Guide de démarrage rapide avec DataStudio Online Edition Introduction Ce document vient en complément des films de démonstration disponibles sur le site web de data. L ETL ETL est un sigle qui signifie

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

Test de HSQLDB et Comparatif avec Sqlite

Test de HSQLDB et Comparatif avec Sqlite Test de HSQLDB et Comparatif avec Sqlite Table des matières 1 - Conditions préalables... 2 2 - Installation de HSQLDB... 2 3 - Premier Test de HSQLDB... 2 4 - Deuxième Test pour bien comprendre :-)...

Plus en détail

Symfony 2. 1.Définition de symfony 2. 2.Installation. 3.Structure. 4.Symfony et les commandes

Symfony 2. 1.Définition de symfony 2. 2.Installation. 3.Structure. 4.Symfony et les commandes Symfony 2 Sommaire : 1.Définition de symfony 2 2.Installation 3.Structure 4.Symfony et les commandes 5.Le fonctionnement : le routeur (les url), les bundles, twig(templates) 6.L architecture de symfony2

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

Personnaliser et adapter SPIP Développeur SPIP

Personnaliser et adapter SPIP Développeur SPIP Personnaliser et adapter SPIP Développeur SPIP En Théorie Le fonctionnement de SPIP Qu est ce que SPIP? SPIP (Système de Publication pour l Internet Partagé) est un logiciel libre destiné à la production

Plus en détail

Algorithmique et programmation. Cours d'algorithmique illustré par des exemples pour le picbasic

Algorithmique et programmation. Cours d'algorithmique illustré par des exemples pour le picbasic Algorithmique et programmation Cours d'algorithmique illustré par des exemples pour le picbasic Même s'il est possible d'écrire un programme petit à petit par touches successives, le résultat est souvent

Plus en détail

édition revue et corrigée avec Java SE 7 7 1 Les bases 11 Compiler un programme Java 13 Exécuter un programme Java 14 Définir le chemin de classe 15

édition revue et corrigée avec Java SE 7 7 1 Les bases 11 Compiler un programme Java 13 Exécuter un programme Java 14 Définir le chemin de classe 15 Table des matières Au sujet de l auteur 1 Introduction 3 édition revue et corrigée avec Java SE 7 7 1 Les bases 11 Compiler un programme Java 13 Exécuter un programme Java 14 Définir le chemin de classe

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

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

PHP 4 PARTIE : BASE DE DONNEES

PHP 4 PARTIE : BASE DE DONNEES PHP 4 PARTIE : BASE DE DONNEES 1. Introduction 2. Présentation de MySQL 3. Principe 4. Connexion 5. Interrogation 6. Extraction des données 7. Fonctions de services 8. Traitement des erreurs 9. Travaux

Plus en détail

Moteur de réplication de fichiers BackupAssist

Moteur de réplication de fichiers BackupAssist Moteur de réplication de fichiers BackupAssist Cortex I.T. Labs 2001-2010 Sommaire Introduction... 2 Single Instance Store... 2 Avantages par rapport aux méthodes de copie traditionnelles... 2 Modes de

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

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

Modèle relationnel Création et modification des relations en SQL

Modèle relationnel Création et modification des relations en SQL Modèle relationnel Création et modification des relations en SQL ENT - Clé sql2009 BD - Mírian Halfeld-Ferrari p. 1 Insertion dans une relation Pour insérer un tuple dans une relation: insert into Sailors

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

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

CONFIGURER VOTRE HEBERGEMENT LINUX

CONFIGURER VOTRE HEBERGEMENT LINUX CONFIGURER VOTRE HEBERGEMENT LINUX Ref : FP. P858 V 6.0 Ce document vous indique comment utiliser votre hébergement Linux à travers votre espace abonné. A - Accéder à la gestion de votre Hébergement...

Plus en détail

Principes d'utilisation des systèmes de gestion de bases de données

Principes d'utilisation des systèmes de gestion de bases de données Principes d'utilisation des systèmes de gestion de bases de données JDBC L3 Informatique Emmanuel Waller, LRI, Orsay Université Paris Sud le mode programme JDBC JDBC : qu'est ce que c'est? Avantages? devant

Plus en détail

Les plans de maintenance et SQL Server 2000

Les plans de maintenance et SQL Server 2000 Les plans de maintenance et SQL Server 2000 Installer un plan de maintenance sous SQL Server Dans le cadre de la gestion d'instances SQL Server 2000 hébergeant SharePoint, il est intéressant de bien comprendre

Plus en détail

DOSSIER TECHNIQUE INSTALLATION PASEO

DOSSIER TECHNIQUE INSTALLATION PASEO DOSSIER TECHNIQUE INSTALLATION PASEO TABLE DES MATIERES 1 Description des produits installés... 3 2 Descriptif des processus d installation produits... 4 2.1 Sql server 2000... 4 2.2 Sql server 2000 service

Plus en détail

Dossier Technique. Détail des modifications apportées à GRR. Détail des modifications apportées à GRR Le 17/07/2008. Page 1/10

Dossier Technique. Détail des modifications apportées à GRR. Détail des modifications apportées à GRR Le 17/07/2008. Page 1/10 Dossier Technique Page 1/10 Sommaire : 1. REPONSE TECHNIQUE A LA DEMANDE 3 1.1. Prise en compte de la dernière version de phpcas 3 1.2. Gestion de la connexion à GRR 3 1.2.1. Récupération des attributs

Plus en détail

PROexo 2.01a : Guide de démarrage rapide. PROexo. V2.01a. Guide de Démarrage rapide. Auteur Sylvain LE GOFF : www.leprogiciel.

PROexo 2.01a : Guide de démarrage rapide. PROexo. V2.01a. Guide de Démarrage rapide. Auteur Sylvain LE GOFF : www.leprogiciel. PROexo V2.01a Guide de Démarrage rapide 1 Sommaire 1 Présentation a) Objectif du guide de démarrage rapide b) Présentation de PROexo 2 Partie administrateur a) Gestion des utilisateurs b) Gestion des exercices

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

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

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

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

Sauvegardes sous Windows 2003 server. 2. Comment effectuer une sauvegarde?

Sauvegardes sous Windows 2003 server. 2. Comment effectuer une sauvegarde? Sauvegardes sous Windows 2003 server http://www.supinfo-projects.com/fr/2005/save%5f2003/2/ 2. Comment effectuer une sauvegarde? 2.1. En utilisant l'assistant sauvegarde (avancé) Cette partie du document

Plus en détail

Morgan Beau Nicolas Courazier

Morgan Beau Nicolas Courazier EPSI - 2010 Rapport projet IA Conception et mise en œuvre d un générateur de systèmes experts Morgan Beau Sommaire Cahier des charges 3 Présentation générale 4 Analyse et modélisation 6 Le moteur d inférence

Plus en détail

LearningApps. LearningApps est un site qui permet aux enseignants mais aussi aux élèves de

LearningApps. LearningApps est un site qui permet aux enseignants mais aussi aux élèves de LearningApps Présentation générale...1 Les applications existantes...2 Création d'«apps»...3 Des exercices collaboratifs...5 Gestion de «mes classes»...5 Les «Apps» de mes étudiants...7 Gestion des résultats...9

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

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

TME 1 JAVASCRIPT (2 SEANCES)

TME 1 JAVASCRIPT (2 SEANCES) TME 1 JAVASCRIPT (2 SEANCES) 1. EXERCICES DE BASE Créez des fonctions javascript pour : - faire un jeu «plus petit plus grand» qui tire un nombre au hasard que l utilisateur doit trouver en entrant des

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

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

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 Linux....................................................................

Plus en détail

lava et les Bases de Données

lava et les Bases de Données lava et les Bases de Données Introduction r1 ^ arler de bases de données ou de SGBD, sous entend généralement le langage de requêtes SQL. Ce langage joue un rôle important dans la création, la manipulation

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

SAGESSE Delphi Interbase Version V6.0

SAGESSE Delphi Interbase Version V6.0 SAGESSE Delphi Interbase Version V6.0 Note d accompagnement SOMMAIRE 1. INTRODUCTION...1 1.1 Rappel de la version d InterBase nécessaire pour SAGESSE V6.0... 1 2. MISE EN ŒUVRE...1 2.1 Mise à jour d une

Plus en détail

TD2-1 : Application client-serveur V2.3.0

TD2-1 : Application client-serveur V2.3.0 TD2-1 : Application client-serveur V2.3.0 Cette œuvre est mise à disposition selon les termes de la licence Creative Commons Attribution Pas d'utilisation Commerciale Partage à l'identique 3.0 non transposé.

Plus en détail

KWISATZ MODULE PRESTASHOP

KWISATZ MODULE PRESTASHOP Table des matières -1) KWISATZ - :...2-1.1) Introduction :...2-1.2) Description :...3-1.2.1) Schéma :...3-1.3) Mise en place :...4-1.3.1) PRESTASHOP :...4-1.3.1.1) Les Web Services :...4-1.3.2) KWISATZ

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

Cours: Administration d'une Base de Données

Cours: Administration d'une Base de Données Bases de Données Avancées Module A IUT Lumière, License CE-STAT 2006-2007 Pierre Parrend Cours: Administration d'une Base de Données Table of Contents Principes...1 Structure d'un Base de Données...1 Architecture...1

Plus en détail

Fiche Produit. Serveur de sauvegarde dédié Kiwi Pro

Fiche Produit. Serveur de sauvegarde dédié Kiwi Pro Révision d avril 2012 Fiche Produit Serveur de sauvegarde dédié Kiwi Pro La solution Kiwi Pro a été spécialement conçue pour répondre aux besoins les plus exigeants en terme de fiabilité et de performance,

Plus en détail

1 Mise en forme des SELECT

1 Mise en forme des SELECT Table des matières Utilitaire SQL*PLUS 1 Mise en forme des SELECT 1 2 Commandes utilitaires de SQL*PLUS 2 2.1 Éditeur de la machine hôte.................... 2 2.2 Commande RUN, commande /.................

Plus en détail

Création d un catalogue en ligne

Création d un catalogue en ligne 5 Création d un catalogue en ligne Au sommaire de ce chapitre Fonctionnement théorique Définition de jeux d enregistrements Insertion de contenu dynamique Aperçu des données Finalisation de la page de

Plus en détail

GED MARKETING. Page 1 sur 18

GED MARKETING. Page 1 sur 18 GED MARKETING I. Présentation du produit... 2 II. Page principale de l application... 3 L arbre... 3 Le menu... 4 La fenêtre de navigation... 4 III. La recherche de documents... 4 Rechercher tous les documents...

Plus en détail

Manuel d'utilisation de l'espace d'e-learning de LaboCoop Novembre 2014

Manuel d'utilisation de l'espace d'e-learning de LaboCoop Novembre 2014 Manuel d'utilisation de l'espace d'e-learning de LaboCoop Novembre 2014 Table des matières Accès à l'espace d'e-learning...2 Login et mot de passe de la plateforme...2 Description générale de l'interface

Plus en détail