Scénario : Filtrer et agréger des colonnes d'une table directement sur le SGBD - 6.1

Composants Talend Guide de référence

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

Le scénario suivant crée un Job ouvrant une connexion à une base de données MySQL et :

  • instancie en partie les schémas d'une table de base de données (pour filtrer les colonnes),

  • filtre deux colonnes dans la même table afin de ne garder que les données correspondant aux deux conditions de filtre,

  • collecte les données des colonnes filtrées, regroupées par valeur(s) spécifique(s) et écrit les données agrégées dans une table cible de base de données.

Pour filtrer et agréger les colonnes d'une table de base de données :

  • Déposez les composants suivants de la Palette dans l'espace de modélisation graphique : tMysqlConnection, tCombinedSQLInput, tCombinedSQLFilter, tCombinedSQLAggregate, tCombinedSQLOutput et tMysqlCommit.

  • Connectez les composants tMysqlConnection, tCombinedSQLInput et tMysqlCommit à l'aide de liens OnSubjobOk.

  • Connectez les composants tCombinedSQLInput, tCombinedSQLFilter, tCombinedSQLAggregate et tCombinedSQLOutput à l'aide d'un lien Combine.

  • Dans l'espace de modélisation graphique, double-cliquez sur le composant tMysqlConnection pour afficher sa vue Component et définir ses propriétés de base.

  • Dans la vue Basic settings, configurez manuellement les informations de connexion à la base de données ou sélectionnez Repository dans la liste Property Type si votre connexion à la base de données a déjà été configurée et stockée sous le nœud Metadata de la vue Repository.

Pour plus d'informations concernant le stockage des métadonnées dans le Repository, consultez le Guide utilisateur du Studio Talend.

  • Dans l'espace de modélisation graphique, double-cliquez sur le composant tCombinedSQLInput pour afficher sa vue Component et définir ses propriétés de base.

  • Dans le champ Table, saisissez le nom de la table source puis cliquez sur le bouton [...] à côté du champ Edit schema afin de définir la structure des données.

Note

Le schéma défini dans le composant tCombinedSQLInput peut être différent de celui de la table source, puisque vous pouvez instancier uniquement les colonnes souhaitées de la table source. Le tCombinedSQLInput joue également un rôle de filtre des colonnes.

Dans ce scénario, la table de la base de données source contient sept colonnes : id, first_name, last_name, city, state, date_of_birth, ainsi que salary et le composant tCombinedSQLInput instancie uniquement les quatre colonnes nécessaires à l'agrégation : id, state, date_of_birth, et salary de la table source.

  • Dans l'espace de modélisation graphique, double-cliquez sur le composant tCombinedSQLFilter afin d'afficher sa vue Component et définir ses propriétés de base.

  • Cliquez sur le bouton Sync columns pour récupérer le schéma du composant précédent, ou configurez manuellement le schéma en sélectionnant Built-in dans la liste Schema et en cliquant sur le bouton [...] à côté du champ Edit schema.

Note

Lorsque vous définissez la structure des données du composant tCombinedSQLFilter, le nom des colonnes apparaît automatiquement dans la liste Input column dans le tableau Conditions.

Dans ce scénario, le composant tCombinedSQLFilter instancie quatre colonnes : id, state, date_of_birth, et salary.

  • Dans le tableau Conditions, configurez les paramètres d'entrée, les opérateurs et les valeurs attendues pour extraire les enregistrements correspondant aux critères spécifiés.

Dans ce scénario, le composant tCombinedSQLFilter filtre les colonnes state et date_of_birth dans la table source afin d'extraire uniquement les employés nés après le 19 octobre 1960, habitant dans les Etats UtahOhio et Iowa.

  • Sélectionnez And dans la liste Logical operator between conditions afin d'appliquer les deux conditions à la fois. Vous pouvez également personnaliser les conditions en cochant la case Use custom SQL et en éditant les conditions dans le champ de texte.

  • Dans l'espace de modélisation graphique, double-cliquez sur le composant tCombinedSQLAggregate afin d'afficher sa vue Component et définir ses propriétés de base.

  • Cliquez sur le bouton Sync columns pour récupérer le schéma du composant précédent, ou configurez manuellement le schéma en sélectionnant Built-in dans la liste Schema et en cliquant sur le bouton [...].

Le composant tCombinedSQLAggregate instancie quatre colonnes : id, state, date_of_birth, et salary, provenant du composant précédent.

Le tableau Group by vous permet de définir les ensembles de données à traiter à partir d'une colonne définie, State dans cet exemple.

  • Dans le tableau Group by, cliquez sur le bouton [+] pour ajouter une ligne.

  • Dans la liste déroulante Output column, sélectionnez State. Cette colonne sera utilisée pour stocker les données filtrées de la colonne State.

Le tableau Operations vous permet de configurer le type d'agrégation à effectuer. La liste disponible dans la colonne Output column dépend du schéma que vous souhaitez écrire en sortie (via le composant tCombinedSQLOutput). Dans ce scénario, le but est de regrouper les employés selon l'Etat dans lequel il vivent, de calculer le nombre d'employés par Etat, les salaires moyen/minimum/maximum ainsi que de retourner la date de naissance de l'employé le plus âgé et de l'employé de plus jeune de chaque état.

  • Dans le tableau Operations, cliquez sur le bouton [+] pour ajouter une ou plusieurs ligne(s) puis cliquez dans la liste Output column afin de sélectionner la colonne de sortie qui contiendra les données calculées.

  • Cliquez dans la ligne Function et sélectionnez l'opération à effectuer.

  • Dans l'espace de modélisation graphique, double-cliquez sur le tCombinedSQLOutput afin d'afficher sa vue Component et définir ses propriétés de base.

  • Dans la liste Database type, sélectionnez la base de données correspondante.

  • Dans la liste Component List, sélectionnez le composant de connexion correspondant si plus d'un composant de connexion est utilisé.

  • Dans le champ Table, saisissez le nom de la table cible qui stockera les résultats agrégés.

Note

Dans cet exemple, il n'est pas nécessaire de renseigner le champ Schema, puisque la base de données utilisée est Oracle.

  • Cliquez sur le bouton [...] à côté du champ Edit schema pour définir la structure des données de la table cible.

Dans ce scénario, le composant tCombinedSQLOutput instancie sept colonnes provenant du composant précédent dans le Job (tCombinedSQLAggregate) : state, empl_count, avg_salary, min_salary, max_salary, oldest_empl et youngest_empl.

  • Dans l'espace de modélisation graphique, double-cliquez sur le tCombinedSQLCommit afin d'afficher sa vue Component et définir ses propriétés de base.

  • Dans la liste Component list, sélectionnez le composant de connexion à la base de données correspondant si plusieurs ont été utilisés.

  • Sauvegardez votre Job et appuyez sur F6 pour l'exécuter.

Des lignes sont insérées dans une table composée de sept colonnes, empl_by_state, dans la base de données. La table affiche, par Etat défini, le nombre d'employés, les salaires moyen/minimum/maximum et retourne la date de naissance de l'employé le plus âgé et de l'employé le plus jeune de chaque état.