Filtrer et agréger les colonnes d'une table directement dans le SGBD
Le scénario suivant crée un Job qui ouvre une connexion à une base de données Mysql et :
-
crée un schéma à partir de la table d'une base de données, les lignes de ce schéma correspondent aux noms des colonnes spécifiées dans le filtre,
-
filtre les colonnes de cette même table afin de n'obtenir que les données correspondant à une clause WHERE,
-
collecte les données de la colonne filtrée, regroupées en fonction d'une valeur spécifique et écrit les données agrégées dans la table de cible.
Pour filtrer et agréger les colonnes de la table de votre base de données :
-
Cliquez et déposez les composants suivants de la Palette dans l'espace de modélisation : tELTMysqlconnection, tSQLTemplateFilterColumns, tSQLTemplateFilterRows, tSQLTemplateAggregate, tSQLTemplateCommit et tSQLTemplateRollback.
-
Connectez les cinq composants à l'aide de liens de type OnComponentOk.
-
Connectez les composants tSQLTemplateAggregate et tSQLTemplateRollback à l'aide d'un lien de type OnComponentError.
-
Dans l'espace de modélisation, sélectionnez le tMysqlConnection et cliquez sur la vue Component pour paramétrer les propriétés de tMysqlConnection.
-
Dans l'onglet Basic settings, renseignez manuellement les informations de connexion de la base de données ou sélectionnez Repository dans la liste Property Type. Sélectionnez ensuite la connexion à la base de données qui a déjà été définie et stockée dans la zone Metadata de la vue Repository.
Pour plus d'informations concernant les métadonnées, consultez Gestion des métadonnées dans le Studio Talend.
-
Dans l'espace de modélisation, sélectionnez le composant tSQLTemplateFilterColumns et cliquez sur la vue Component pour paramétrer ses propriétés.
-
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é.
-
Saisissez les noms de la base de données, de la table source et de la table cible dans les champs correspondants et cliquez sur le bouton [...] situé à côté de Edit schema pour définir la structure des données dans les tables source et cible.
Lorsque vous définissez la structure des données de la table source, le nom des colonnes apparaît automatiquement dans la liste Column du panneau Column filters.
Dans ce scénario, la table source contient les cinq colonnes : id, First_Name, Last_Name, Address et id_State.
-
Dans le tableau Column filters, filtrez les colonnes en cochant la case des colonnes que vous souhaitez écrire dans la table source.
Dans ce scénario, le composant tSQLTemplateFilterColumns ne garde que les colonnes id, First_Name et id_State de la table source.
Dans la vue Component, vous pouvez cliquer sur l'onglet SQL Template et ajouter des modèles SQL du système ou créer vos propres modèles SQL et les utiliser dans votre Job afin d'effectuer les opérations que vous souhaitez. Pour plus d'informations, consultez Propriétés du tSQLTemplateFilterColumns Standard.
-
Dans l'espace de modélisation, sélectionnez le composant tSQLTemplateFilterRows et cliquez sur l'onglet Component pour paramétrer ses propriétés.
-
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é.
-
Saisissez les noms de la base de données, de la table source et de la table cible dans les champs correspondants et cliquez sur le bouton [...] situé à côté de Edit schema pour définir la structure des données dans les tables source et cible.
Dans ce scénario, la table source et la table cible contiennent les trois colonnes filtrées id, First_Name et id_State.
-
Dans le champ Where condition, saisissez la commande WHERE vous permettant de n'extraire que les champs correspondant à vos critères.
Dans ce scénario, le composant tSQLTemplateFilterRows filtre la colonne First_Name de la table source pour n'obtenir que les prénoms commencent par la lettre "a".
-
Dans l'espace de modélisation, sélectionnez le composant tSQLTemplateAggregate et cliquez sur la vue Component pour paramétrer ses propriétés.
-
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é.
-
Saisissez les noms de la base de données, de la table source et de la table cible dans les champs correspondants et cliquez sur le bouton [...] situé à côté de Edit schema pour définir la structure des données dans les tables source et cible.
Le schéma de la table source est composé de trois colonnes : id, First_Name et id_State. Le schéma de la table cible est composé de deux colonnes : customers_status et customers_number. Dans ce scénario, vous souhaitez regrouper les clients par statut marital et compter le nombre de clients pour chaque groupe marital. Pour cela, renseignez les tableaux Operations et Group by.
-
Dans le tableau Operations, cliquez sur le bouton [+] pour ajouter une ou plusieurs lignes, cliquez dans la cellule de la colonne Output column et sélectionnez la colonne de sortie qui contiendra les données à compter.
-
Cliquez dans la cellule de la colonne Function et sélectionnez l'opération à effectuer.
-
Dans le tableau Group by, cliquez sur le bouton [+] pour ajouter une ou plusieurs lignes, cliquez dans la cellule de la colonne Output column pour sélectionner la colonne de sortie qui contiendra les données agrégées.
-
Dans l'espace de modélisation, sélectionnez le composant tSQLTemplateCommit et cliquez sur la vue Component pour paramétrer ses propriétés.
-
Dans la liste Database type, sélectionnez la base de données correspondante.
-
Dans la liste Component List, sélectionnez le composant de connexion à la base de données correspondant si plusieurs ont été utilisés.
-
Effectuez la même procédure pour le composant tSQLTemplateRollback.
-
Enregistrez votre Job et appuyez sur F6 pour l'exécuter.
La table aggregate_customers composée de deux colonnes est créée dans la base de données. Elle regroupe les clients en fonction de leur statut marital et compte le nombre de clients pour chaque statut marital.