Cet article explique comment utiliser le connecteur Talend pour DataGalaxy
Ce connecteur est disponible dans les modes suivants :
| Mode Desktop ✅ | Mode SaaS Online ❌ |
Présentation du connecteur
Le connecteur pour Talend permet d'importer les traitements d'un projet Talend Open Studio.
Pour cela, nous avons besoin du dossier du workspace Talend contenant a minima :
- Un dossier process contenant les fichiers .item et .properties
- Le fichier talend.project

Les objets récupérés et leurs correspondances dans DataGalaxy sont détaillés dans le tableau suivant :
| Objet Talend | Objet DataGalaxy | Commentaires |
|---|---|---|
| Projet (workspace) | Flux | Le projet (workspace) est importé en tant que flux racine dans le module Traitement, et en tant que source de type relationnel dans le module Dictionnaire pour stocker les tables détectées non mappées. |
| Dossier | Flux | L'arborescence des dossiers et sous dossiers est représentée à l'aide des objets Flux |
| Job | Traitement | Les jobs supprimés (présents dans la corbeille) ne sont pas extraits. |
| Composant | Unité de traitement | Les liens de type “Row “et “Iterate” sont utilisés pour manipuler les flux de données : ils seront agrégés et représentés par une unité de traitement
|
| Composants d'entrée d'un job | Elément en entrée | Afin de pouvoir réaliser un import API, le connecteur Talend va importer les définitions des tables et colonnes détectées dans les composants. Le connecteur permet de définir les correspondances entre les définitions d'objets identifiés dans les flux Talend et les objets présents dans DataGalaxy à l'aide de règle de correspondance stockées dans un fichier de mapping. Ce fichier généré automatiquement lors de votre premier import peut être modifié et sera réutilisé lors des prochains imports. |
| Composants en sortie d'un job | Elément en sortie |
Etape 1 : Installation
- Télécharger le connecteur DataGalaxy depuis le portail (voir ici)
- Extraire l'archive du connecteur dans le répertoire de votre choix
- Télécharger le plug-in Talend depuis le portail et le copier dans le répertoire /lib du connecteur
Etape 2 : Exécution du connecteur Talend
- Après avoir démarré le connecteur, accéder aux connecteurs de type Traitement :

- S'il a été correctement installé, le plug-in Talend apparaît dans la liste
- Les informations suivantes sont demandées :

| Paramètre | Obligatoire | Description |
|---|---|---|
| Répertoire de travail | Oui | Chemin vers le répertoire du projet (workspace) Talend |
| Nom du contexte | Oui | Permet de sélectionner le contexte à appliquer sur les process importés |
| Fichier de mapping | Non | Chemin vers un fichier de mapping : fichier permettant de définir des substitutions de chaînes de caractères pour les éléments d'entrée et de sortie des unités de traitement. Un fichier de mapping peut être généré à l'étape du résumé de l'import lors d'un premier import. |
Le bouton Tester permet de contrôler que l'ensemble des fichiers nécessaires pour réaliser l'import sont bien présents dans le dossier projet (workspace) sélectionné.
Informations techniques
Lors de l'étape du résumé de l'import, il est possible de générer un fichier de mapping : 
Le fichier sera généré dans le répertoire /out du connecteur. Il va contenir l'ensemble des tables que le connecteur a détecté dans les composants des jobs Talend. Une détection est de la forme suivante :
1.beginsWith=\\REPORTING_INTERNE@talend\\REPORTING_INTERNE\\dbo\\deal_company\\ 1.replace.path=\\REPORTING_INTERNE@talend\\REPORTING_INTERNE\\dbo\\deal_company 1.replace.type=\\Relational\\Model\\Model\\Table
Si les informations associées aux tables n'ont pas pu être récupérées depuis le composant Talend, les identifiants de process\composant du job Talend seront utilisés afin de créer une arborescence de type Model\Table dans DataGalaxy.
- L'attribut beginsWith correspond au chemin détecté par le connecteur et va permettre de réaliser un remplacement donc celui-ci ne doit pas être modifié pour que la substitution fonctionne.
- Les attributs replace.path et replace.type permettent de réaliser le mapping vers une table de votre Dictionnaire existante. Vous pouvez donc modifier cette partie pour faire le lien avec les objets du Dictionnaire déjà existants dans DataGalaxy. Il est également possible d'ignorer un mapping qui permet de ne pas créer de table par défaut. Pour cela, il faut mettre à vide les deux attributs (cf exemple ci-dessous).
Le type doit être fourni en anglais pour que le mapping fonctionne.
Exemple
Dans ce paragraphe, nous allons vous détailler un exemple afin d'illustrer l'utilisation du fichier de mapping.
Nous avons le job hubspot_owners dans notre workspace "REPORTING_INTERNE" :

Ce job permet d'alimenter la table "husbspot_owner" dans la base de données REPORTING_INTERNE à partir d'un appel API de Hubspot.
Suite à un premier lancement du connecteur Talend en générant un fichier mapping, nous obtenons le mapping suivant :
1.beginsWith=\\REPORTING_INTERNE@talend\\REPORTING_INTERNE\\dbo\\hubspot_owner\\ 1.replace.path=\\REPORTING_INTERNE@talend\\REPORTING_INTERNE\\dbo\\hubspot_owner 1.replace.type=\\Relational\\Model\\Model\\Table 2.beginsWith=\\REPORTING_INTERNE@talend\\default@talend\\hubspot_owners\\tExtractJSONFields_1\\ 2.replace.path=\\REPORTING_INTERNE@talend\\default@talend\\hubspot_owners\\tExtractJSONFields_1 2.replace.type=\\Relational\\Model\\Model\\Table 3.beginsWith=\\REPORTING_INTERNE@talend\\default@talend\\hubspot_owners\\tExtractJSONFields_3\\ 3.replace.path=\\REPORTING_INTERNE@talend\\default@talend\\hubspot_owners\\tExtractJSONFields_3 3.replace.type=\\Relational\\Model\\Model\\Table 4.beginsWith=\\REPORTING_INTERNE@talend\\default@talend\\hubspot_owners\\tFilterRow_1\\ 4.replace.path=\\REPORTING_INTERNE@talend\\default@talend\\hubspot_owners\\tFilterRow_1 4.replace.type=\\Relational\\Model\\Model\\Table 5.beginsWith=\\REPORTING_INTERNE@talend\\default@talend\\hubspot_owners\\tJavaRow_1\\ 5.replace.path=\\REPORTING_INTERNE@talend\\default@talend\\hubspot_owners\\tJavaRow_1 5.replace.type=\\Relational\\Model\\Model\\Table 6.beginsWith=\\REPORTING_INTERNE@talend\\default@talend\\hubspot_owners\\tJavaRow_2\\ 6.replace.path=\\REPORTING_INTERNE@talend\\default@talend\\hubspot_owners\\tJavaRow_2 6.replace.type=\\Relational\\Model\\Model\\Table 7.beginsWith=\\REPORTING_INTERNE@talend\\default@talend\\hubspot_owners\\tJava_1\\ 7.replace.path=\\REPORTING_INTERNE@talend\\default@talend\\hubspot_owners\\tJava_1 7.replace.type=\\Relational\\Model\\Model\\Table 8.beginsWith=\\REPORTING_INTERNE@talend\\default@talend\\hubspot_owners\\tRESTClient_1\\ 8.replace.path=\\REPORTING_INTERNE@talend\\default@talend\\hubspot_owners\\tRESTClient_1 8.replace.type=\\Relational\\Model\\Model\\Table
Suite à l'import, côté plateforme DataGalaxy, une source a été créée dans le module Dictionnaire afin d'avoir le lineage automatiquement :

Toutes les tables créées sont celles détectées par le connecteur et listées dans le fichier de mapping.
De plus, le flux est décrit dans l'unité de traitement :
Dans notre cas, nous avons déjà une source relationnelle REPORTING_INTERNE existante dans le module Dictionnaire, nous souhaitons donc mapper notre job avec celle-ci. Nous avons également les définitions des routes API de l'outil Hubspot dans une source NoSQL : 
Nous réalisons les modifications suivantes sur le fichier mapping :
- Mapping de la table source hubspot_owner de la source REPORTING_INTERNE
- Mapping de la réponse de l'API /crm/v3/owners/ de la source API Hubspot
- Ignorer les autres tables des étapes techniques du job Talend
#Thu Oct 20 10:45:41 CEST 2022 1.beginsWith=\\REPORTING_INTERNE@talend\\REPORTING_INTERNE\\dbo\\hubspot_owner\\ 1.replace.path=\\REPORTING_INTERNE\\dbo\\hubspot_owner 1.replace.type=\\Relational\\Model\\Table 2.beginsWith=\\REPORTING_INTERNE@talend\\default@talend\\hubspot_owners\\tExtractJSONFields_1\\ 2.replace.path= 2.replace.type= 3.beginsWith=\\REPORTING_INTERNE@talend\\default@talend\\hubspot_owners\\tExtractJSONFields_3\\ 3.replace.path=\\API Hubspot\\CRM Owners\\/crm/v3/owners/\\get\\responses\\200\\results 3.replace.type=\\NoSql\\Directory\\Directory\\Directory\\File\\SubStructure\\SubStructure 4.beginsWith=\\REPORTING_INTERNE@talend\\default@talend\\hubspot_owners\\tFilterRow_1\\ 4.replace.path= 4.replace.type= 5.beginsWith=\\REPORTING_INTERNE@talend\\default@talend\\hubspot_owners\\tJavaRow_1\\ 5.replace.path= 5.replace.type= 6.beginsWith=\\REPORTING_INTERNE@talend\\default@talend\\hubspot_owners\\tJavaRow_2\\ 6.replace.path= 6.replace.type= 7.beginsWith=\\REPORTING_INTERNE@talend\\default@talend\\hubspot_owners\\tJava_1\\ 7.replace.path= 7.replace.type= 8.beginsWith=\\REPORTING_INTERNE@talend\\default@talend\\hubspot_owners\\tRESTClient_1\\ 8.replace.path= 8.replace.type=Nous sauvegardons le fichier pour le mettre dans notre connexion Talend et nous relançons le connecteur pour mettre à jour les liens. Après import, nous obtenons bien les liens attendus :

Releases
| Date | Plugin Version | DataGalaxy release | Desktop Connector version (minimum) | Description |
| 23/08/2024 | 3.0.1 | v3.69.0 | 5.2.3 | Updated the logger to show more information when using verbose mode |
| 06/08/2024 | 3.0.0 | v3.65.0 | 5.0.5 | Migrated from java 11 to java 17 + CVE fixes |