Scénario 4 : Récupérer des données d'une base de données MySQL en utilisant la source de données côté Talend Runtime pour configurer la connexion à la base de données - 6.3

Composants Talend Guide de référence

EnrichVersion
6.3
EnrichProdName
Talend Big Data
Talend Big Data Platform
Talend Data Fabric
Talend Data Integration
Talend Data Management Platform
Talend Data Services Platform
Talend ESB
Talend MDM Platform
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
Talend Real-Time Big Data Platform
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 à deux composants qui récupère les données d'une table de base de données MySQL et les affiche dans la console. Ce Job va être déployé dans Talend Runtime et va utiliser les données source créées dans le Talend Runtime pour se connecter à la base de données définie dans un fichier de configuration du Runtime. Ainsi, ce scénario est uniquement pertinent si vous utilisez un des produits ESB de Talend.

Prérequis :

Une source de données MySQL doit avoir été créée dans le conteneur de Talend Runtime, procédez comme suit :

  1. Installez le pilote JDBC MySQL en exécutant la commande bundle:install dans le conteneur de Talend Runtime :

    karaf@trun()> bundle:install mvn:mysql/mysql-connector-java/5.1.18
  2. Installez le pool de connexions à la base de données en exécutant la commande bundle:install dans le conteneur de Talend Runtime :

    karaf@trun()> bundle:install -s mvn:commons-dbcp/commons-dbcp/1.4
  3. Copiez le fichier de configuration de la source de données datasource-mysql.xml du dossier <TalendRuntimePath>/add-ons/datasources/dataservice vers le dossier <TalendRuntimePath>/container/deploy puis modifiez dans ce fichier la valeur des propriétés du nom d'utilisateur et du mot de passe requises pour se connecter à votre base de données.

    <?xml version="1.0" encoding="UTF-8"?>
    <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
        default-activation="lazy">
    
        <bean id="mysqlDataSource" class="com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource">
            <property name="url" value="jdbc:mysql://localhost:3306/test"/>
            <property name="user" value="root"/>
            <property name="password" value="talend"/>
        </bean>
    
        <bean id="dataSource" class="org.apache.commons.dbcp.datasources.SharedPoolDataSource" destroy-method="close">
            <property name="connectionPoolDataSource" ref="mysqlDataSource"/>
            <property name="maxActive" value="20"/>
            <property name="maxIdle" value="5"/>
            <property name="maxWait" value="-1"/>
        </bean>
    
        <service ref="dataSource" interface="javax.sql.DataSource">
            <service-properties>
                 <entry key="osgi.jndi.service.name" value="jdbc/sample"/>
            </service-properties>
        </service>
    </blueprint>
    

    Notez que la propriété osgi.jndi.service.name du fichier de configuration de la source de données définit l'alias de la source de données, jdbc/sample dans cet exemple. L'alias va être utilisé dans le composant de base de données pour se connecter à la base de données définie dans le fichier de configuration de la source de données lorsque le Job est déployé dans Talend Runtime.

    Pour plus d'informations sur l'utilisation de la source de données dans le conteneur de Talend Runtime, consultez le Guide Talend ESB Container Administration Guide (en anglais) et le Guide utilisateur de Talend Open Studio for ESB.

Ajouter et relier les composants

  1. Créez un nouveau Job et ajoutez un composant tMysqlInput et un composant tLogRow en saisissant leur nom dans l'espace de modélisation graphique ou en les déposant depuis la Palette.

  2. Reliez le composant tMysqlInput au tLogRow à l'aide d'un lien Row > Main.

Configurer les composants

  1. Double-cliquez sur le tMysqlInput pour ouvrir sa vue Basic settings dans l'onglet Component.

  2. Dans le champ Table Name, saisissez le nom de la table de laquelle les données seront récupérées. Dans cet exemple, il s'agit de student.

  3. Cliquez sur le bouton [...] à côté de Edit schema pour ouvrir la boîte de dialogue [Schema] et définir le schéma de la table student en ajoutant deux colonnes : sid de type Integer et sname de type String.

  4. Cliquez sur le bouton Guess Query pour renseigner le champ Query par la requête SQL à utiliser pour récupérer les données de la table spécifiée.

  5. Cochez la case Specify a data source alias et dans le champ Data source alias qui s'affiche, saisissez l'alias de la source de données spécifié dans le fichier de configuration de la source de données datasource-mysql.xml côté Talend Runtime. Dans cet exemple, il s'agit de jdbc/sample.

  6. Double-cliquez sur le composant tLogRow pour ouvrir sa vue Basic settings.

  7. Dans la zone Mode, sélectionnez Table (print values in cells of a table) pour rendre le résultat plus lisible.

Construire et déployer le Job dans le conteneur de Talend Runtime

  1. Appuyez sur Ctrl + S pour enregistrer le Job.

  2. Démarrez le conteneur de Talend Runtime.

  3. Dans la vue Repository de votre Studio Talend, cliquez-droit sur le Job et dans le menu contextuel, sélectionnez Build Job pour ouvrir la boîte de dialogue [Build Job].

  4. Sélectionnez OSGI Bundle For ESB dans la liste déroulante Select the build type.

  5. Cliquez sur le bouton Browse à côté du champ To archive file pour spécifier l'emplacement où stocker l'archive du Job. Dans cet exemple, le Job sera directement exporté dans le dossier de déploiement <TalendRuntimePath>/container/deploy afin de pouvoir l'exécuter immédiatement après dans Talend Runtime.

    Pour plus d'informations sur la construction d'un Job, consultez le Guide utilisateur du Studio Talend.

  6. Cliquez sur Finish pour fermer la boîte de dialogue [Build Job].

    Comme vous pouvez le voir dans la console du conteneur de Talend Runtime, le Job s'exécute immédiatement après avoir été déployé et les données de la table student sont récupérées et affichées dans la console.