Scénario : Extraire une colonne String délimitée d'une table d'une base de données - 6.1

Composants Talend Open Studio Guide de référence

EnrichVersion
6.1
EnrichProdName
Talend Open Studio for Big Data
Talend Open Studio for Data Integration
Talend Open Studio for Data Quality
Talend Open Studio for ESB
Talend Open Studio for MDM
task
Création et développement
Gouvernance de données
Qualité et préparation de données
EnrichPlatform
Studio Talend

Ce scénario décrit un Job écrivant des données, y compris une colonne String délimitée dans une table d'une base de données MySQL et affiche les données dans la console, puis extrait la colonne String délimitée en plusieurs colonnes et affiche dans la console les données après extraction.

Construire le Job

  1. Créez un nouveau Job et ajoutez les composants suivants en saisissant leur nom dans l'espace de modélisation graphique ou en les déposant depuis la Palette : un tFixedFlowInput, un tMysqlOutput, un tMysqlInput, un tExtractDelimitedFields et deux composants tLogRow.

  2. Reliez le tFixedFlowInput au tMysqlOutput à l'aide d'un lien Row > Main.

  3. Répétez l'opération afin de relier le tMysqlOutput au premier tLogRow, reliez le tMysqlInput au tExtractDelimitedFields et le tExtractDelimitedFields au second tLogRow.

  4. Reliez le tFixedFlowInput au tMysqlInput à l'aide d'un lien Trigger > On Subjob Ok.

Configurer les composants

Alimenter une table d'une base de données MySQL

  1. Double-cliquez sur le tFixedFlowInput pour ouvrir sa vue Basic settings.

  2. Cliquez sur le bouton [...] à côté du champ Edit schema et, dans la fenêtre qui s'ouvre, définissez le schéma, en ajoutant trois colonnes : Id de type Integer, ainsi que Name et DelimitedField de type String.

    Cliquez sur OK pour fermer l'éditeur de schéma et acceptez la propagation proposée par la boîte de dialogue.

  3. Dans la zone Mode, sélectionnez Use Inline Content(delimited file). Dans le champ Content affiché, saisissez les données à écrire dans la base de données. Les données d'entrée comprennent une colonne String délimitée. Dans cet exemple, les données d'entrée se présentent comme suit :

    1;AAA;32,Component Team,Developer
    2;BBB;28,Component Team,Tester
    3;CCC;30,Doc Team,Writer
    4;DDD;35,Doc Team,Leader
    5;EEE;33,QA Team,Tester
  4. Double-cliquez sur le tMysqlOutput pour ouvrir sa vue Basic settings.

  5. Renseignez les champs Host, Port, Database, Username et Password avec les informations de connexion à la base de données.

  6. Renseignez le champ Table avec le nom de la table à écrire. Dans cet exemple, saisissez employee.

  7. Sélectionnez Drop table if exists and create dans la liste Action on table.

  8. Double-cliquez sur le premier tLogRow pour ouvrir sa vue Basic settings.

    Dans la zone Mode, sélectionnez Table (print values in cells of a table) pour une lisibilité optimale des résultats.

Extraire la colonne String délimitée de la table de la base de données en plusieurs colonnes

  1. Double-cliquez sur le tMysqlInput pour ouvrir sa vue Basic settings.

  2. Renseignez les champs Host, Port, Database, Username et Password avec les informations de connexion à la base de données MySQL.

  3. Cliquez sur le bouton [...] à côté du champ Edit schema et, dans la fenêtre qui s'ouvre, définissez le schéma du composant tMysqlInput de la même manière que celui du tMysqlOutput.

  4. Dans le champ Table Name, saisissez le nom de la table dans laquelle ont été écrites les données. Dans cet exemple, saisissez employee.

  5. Cliquez sur le bouton Guess Query afin de renseigner le champ Query avec l'instruction de requête SQL à exécuter sur la table spécifiée. Dans cet exemple, la requête se présente comme suit:

    SELECT 
      `employee`.`Id`, 
      `employee`.`Name`, 
      `employee`.`DelimitedField`
    FROM `employee`
  6. Double-cliquez sur le tExtractDelimitedFields pour ouvrir sa vue Basic settings.

  7. Dans la liste Field to split, sélectionnez la colonne String délimitée à extraire. Dans cet exemple, sélectionnez DelimitedField.

    Dans le champ Field separator, saisissez le séparateur utilisé pour séparer les champs, dans la colonne String délimité. Dans cet exemple, saisissez ,.

  8. Cliquez sur le bouton [...] à côté du champ Edit schema et, dans la fenêtre qui s'ouvre, définissez le schéma en ajoutant cinq colonnes : Id de type Integer, ainsi que Name, Age, Team et Title de type String.

    Dans cet exemple, la colonne String délimitée DelimitedField est divisée en trois colonnes Age, Team et Title. Les colonnes Id et Name sont également conservées.

    Cliquez sur OK pour fermer l'éditeur de schéma et acceptez la propagation proposée par la boîte de dialogue.

  9. Double-cliquez sur le second tLogRow pour ouvrir sa vue Basic settings.

    Dans la zone Mode, sélectionnez Table (print values in cells of a table) pour une lisibilité optimale des résultats.

Sauvegarder et exécuter le Job

  1. Appuyez sur les touches Ctrl + S afin de sauvegarder le Job.

  2. Exécutez le Job en appuyant sur F6 ou en cliquant sur le bouton Run de l'onglet Run.

    Comme dans la capture d'écran, les données primitives d'entrée et les données après extraction sont affichées dans la console. La colonne String délimitée DelimitedField est divisée en trois colonnes puis extraite : Age, Team et Title.