Cet article explique comment utiliser le connecteur Desktop en ligne de commande pour importer des fichiers CSV au format DataGalaxy dans les différents modules.
Plus d'information dans l'article suivant pour exécuter le connecteur en ligne de commande : Exécuter le connecteur en ligne de commande (CLI)
Cette fonctionnalité est disponible par défaut dans le connecteur desktop, il n'est donc pas nécessaire de télécharger un plugin pour l'utiliser.
Le connecteur CSV DataGalaxy permet d'importer des fichiers CSV de métadonnées au format DataGalaxy, tels que ceux générés lors d'un export depuis la plateforme. Ce connecteur ne fonctionne qu'en mode CLI (pas d'interface graphique).
Structure d'un fichier CSV DataGalaxy
Pour importer des objets dans les différents modules, le contenu du fichier CSV source doit respecter certaines contraintes, qui vont dépendre du type d'objet ciblé. L'alimentation des objets de base des modules Glossaire, Dictionnaire, Traitement et Usages attend une structure générique, avec la présence obligatoire des colonnes suivantes :
- Path : correspond au chemin complet de l'objet dans DataGalaxy
- Type : permet de typer chaque objet du Path
En complément de ces colonnes obligatoires, vous pouvez ajouter une colonne pour chaque attribut complémentaire à alimenter. Elles seront prises en compte dès lors que le nom technique est reconnu et fait partie de la fiche d'un objet que vous souhaitez importer (plus d'information sur la fiche objet ici)
L'entête de votre fichier source CSV doit contenir le nom exact des attributs cibles que vous souhaitez alimenter. Si un nom ne correspond à aucun attribut de votre workspace alors l'attribut sera ignoré lors de l'import.
Les types d'attribut suivants ne sont pas supportés actuellement lors de l'import : Série Temporelle, Liste de valeurs, Liste de tags et Hiérarchie
Si un même objet figure plusieurs fois dans un import CSV (fichier unique et/ou multiples fichiers), seule la première occurrence est prise en compte. Les versions suivantes, même si elles contiennent des informations supplémentaires ou différentes, seront ignorées.
Exemple de structure de fichier CSV pour le module Glossaire :
"Path";"Type";"Status";"DataOwners";"Summary";"CDPEtiquetteGlossaire"
"\Age";"\Indicator";"Proposed";"dataowner@datagalaxy.com";"client's age";"Sales"
"\Marketing\Commerce\Civility";"\Universe\Concept\Business Term";"Valided";"dataowner@datagalaxy.com";"";"Adresse"
D'autres types d'objets peuvent être importés. Afin d'être correctement identifiés et créés, les fichiers doivent respecter une entête précise pour que le connecteur puisse déduire le type d'objet concerné, et ainsi déterminer l'ordre des imports à réaliser. (i.e. les clés étrangères doivent être créées après les clés primaires).
L'import des sources et des clés fonctionnelles ne sont pas supportés actuellement par le connecteur.
Voici la liste des types d'objets complémentaires, ainsi que leurs entêtes, à utiliser dans les fichiers CSV :
- Clés primaires :
"TablePath";"TableType";"ColumnName";"PKTechnicalName";"PkOrder"
- Clés étrangère :
"FKTechnicalName";"PKTechnicalName";"PkTablePath";"PkTableType";"PkTableTechnicalName";"PkColumnName";"ChildTablePath";"ChildTableType";"ChildTableName";"ColumnName";"FKDisplayName";"Summary"
- Eléments en entrée :
"DataProcessingPath";"DataProcessingType";"CatalogInPath";"CatalogInType"
- Eléments en sortie :
"DataProcessingPath";"DataProcessingType";"CatalogOutPath";"CatalogOutType"
- Unités de traitement :
"DataProcessingPath";"DataProcessingType";"Technical Label";"Functional Label";"Type";"Summary";"Description";"CatalogInPath";"CatalogInType";"CatalogOutPath";"CatalogOutType"
- Les liens (notion d'objets liés) :
"SourceEntityPath";"SourceEntityType";"EntityLinkType";"LinkedEntityPath";"LinkedEntityType"
Exécution du connecteur CSV DataGalaxy
Le connecteur CSV DataGalaxy fonctionne uniquement en ligne de commande (CLI) et permet de réaliser un import via API.
La ligne de commande de base est la suivante afin d'importer des fichiers CSV stockés dans un dossier :
datagalaxy-cli-connector.bat import-api --csv-folder-path [path\folder] --token [fichier_token.properties] --project-name [Workspace]
Dans le cadre d’un import vers le dictionnaire, des paramètres supplémentaires pourront être demandés :
--create-source : si la source doit être créée
--csv-technology-code : pour affecter une technologie lorsque la source doit être créée
--source-name [Dictionary Source] : pour nommer la source (que celle-ci existe déjà ou soit créée lors de l’utilisation du connecteur)
--csv-source-type [Source Type] : pour définir le type de source. Ce paramètre doit être défini par l’une des valeurs suivantes :
- Relational : correspond aux bases de données relationnelles
- NonRelational : correspond à un stockage sur un système de fichier (filestore), utilisé par exemple pour les DataLake
- NoSQL : correspond aux bases de données NoSQL
- TagBase : correspond aux bases de données TagBase, principalement utilisées pour l'IoT
L'import CSV permet d'alimenter une seule source de donnée par import (celle fournie en paramètre).
Exemples de commandes
Import de base
Ce premier exemple permet d'importer des fichiers CSV stockés dans un dossier "Import" pour alimenter tous les modules.
La ligne de commande de base suivante fonctionne sous Windows est :
datagalaxy-cli-connector.bat import-api
Il faut la compléter de la façon suivante pour indiquer le contexte de l'import à réaliser :
- L'option --csv-folder-path permet de donner le chemin du dossier contenant les fichiers CSV que nous souhaitons importer dans DataGalaxy
- On souhaite utiliser le token contenu dans le fichier token.properties de notre dossier "C:\token" avec l'option --token
- La cible de l'import est l'espace de travail identifié par le project-name passé en paramètre (ESP-PROD)
- La source de données du dictionnaire qui accueillera le résultat de cet exécution s'appelle File-AWS-S3 et elle est de type NonRelational (FileStore)
- Celle-ci sera créée si elle n'existe pas avec le paramètre --create-source.
Une fois tous ces paramètres identifiés, nous obtenons la ligne commande suivante :
datagalaxy-cli-connector.bat import-api --csv-folder-path "C:\Documents\Import" --token "C:\token\token.properties" --project-name ESP-PROD --create-source --source-name File-AWS-S3 --csv-source-type NonRelational
Voilà, la ligne de commande est prête à être exécutée !
Import avec options
Ce second exemple permet de définir le séparateur et l'encodages des fichiers CSV stockés dans un dossier "Import".
L'encodage par défaut est UTF-8 et le séparateur point virgule.
La ligne de commande suivante fonctionne sous Windows, et va lire les fichiers dans le dossier "C:\Documents\Import".
Ces fichiers utilisent comme séparateur la virgule et l'encodage ANSI.
Elle effectue un import via API en utilisant le token contenu dans le fichier token.properties.
La cible de l'import est l'espace de travail nommé ESP-PROD et les fichiers CSV ne ciblant pas le module Dictionnaire, il n'est donc pas nécessaire d'inclure les paramètres spécifique à l'objet Source.
datagalaxy-cli-connector.bat import-api --csv-folder-path "C:\Documents\Import" --token "C:\token\token.properties" --project-name ESP-PROD --csv-separator "," --csv-encoding ISO_8859_1
Enchaînement de plusieurs exécutions du connecteur
Si vous souhaitez enchaîner plusieurs lancements de connecteurs avec des configurations différentes, il est possible de créer un script .bat sous Windows ou .sh sous Linux, qui appellera le .bat/.sh du connecteur.
Sous Windows, attention à bien utiliser la commande call, sinon le script s'arrêtera après l'exécution du premier connecteur.
Par exemple pour lancer trois connecteurs, vous pouvez créer un script .bat comme ceci :
call datagalaxy-cli-connector.bat import-api --config "config1.properties" ...
call datagalaxy-cli-connector.bat import-api --config "config2.properties" ...
call datagalaxy-cli-connector.bat import-api --config "config3.properties" ...
Releases
| Date | Plugin Version | DataGalaxy release | Desktop Connector version | Description |
| 23/07/2024 | 5.0.1 | v3.61.0 | 5.0.3 | Migrated from java 11 to java 17 + CVE fixes |