Créer ou transformer des données via un exécutable externe

Last modified by Aurelie Bertrand on 2024/04/24 14:33

La source de données IO (Input/Output = entrée/sortie) permet de fournir des données depuis une source ou de transformer les données d'un modèle de donnés DigDash existante à l'aide d'un exécutable externe (script python, .bat, .sh, .exe, job talend, etc.).

Configuration préalable

❗La configuration a changé depuis le patch p20240409. Consultez le paragraphe Modifications apportées par le patch p20240409 pour plus de détails.

Pour utiliser cette source de données, il faut tout d'abord configurer le chemin du dossier des exécutables dans la section Exports et API -> IODS de la page des Paramètres du serveur.

IODS

Attention : La configuration recommandée est d'utiliser le chemin /etc/digdash/executables et de s'assurer que l'utilisateur qui lance Tomcat ait les droits de lecture et d'exécution sur ce dossier et les fichiers qu'il contient. Les droits d'écriture ne sont pas conseillés pour des raisons de sécurité (un attaquant qui arriverait à faire écrire des données dans ce dossier à Tomcat pourrait injecter puis exécuter du code arbitraire).

Attention : Si votre serveur est sous Windows, pour exécuter des scripts (python, ruby, ...) il faudra passer par un fichier .bat. Par exemple pour exécuter un script python il faudra créer un fichier .bat qui exécute l'exécutable python en passant en paramètre le script python et les arguments passés au .bat (qui correspondent aux arguments renseignés dans la configuration de la source IODS) :

@echo off
"C:\chemin\vers\python.exe" "C:\chemin\vers\script.py" %*

Modifications apportées par le patch p20240409

Depuis le patch p20240409, il faut configurer le chemin du dossier des exécutables dans le fichier digdash.properties (situé dans le répertoire <DDE Install> ou /etc/digdash(sous Linux) ou l'emplacement personnalisé que vous auriez configuré).

Ajoutez les propriétés suivantes dans le fichier :

  • digdash.iods_exe_path pour le dossier des exécutables (obligatoire pour pouvoir utiliser IODS)
  • digdash.iods_sandbox_path pour le chemin d'accès au bac à sable (facultatif)

Par exemple :

digdash.iods_exe_path=/etc/digdash/executables
digdash.iods_sandbox_path=/etc/digdash/bwrap.sh

Génération / transformation de données

ℹ  IODS utilise la RAM du système d'exploitation. Par exemple, pour un serveur de 8 Go, un script IODS peut prendre 3 Go et la RAM allouée au Tomcat est alors de 3 Go au lieu de 6 Go lorsque le script IODS n'est pas utilisé. La RAM nécessaire pour le script IODS peut augmenter selon les données.

Une fois le chemin du dossier des exécutables configuré, vous pouvez générer des données ou transformer les données d'un autre modèle de données.
Générer des données signifie également récupérer les données d'une source et les rendre utilisables par DigDash.

  1. Dans la boite Création d'un nouveau modèle de données, cliquez sur le bouton IO datasource de la section Transformateurs.
    Bouton_IODS
    La boîte de dialogue Générer des données ou transformer les données d'un autre modèle de données s'affiche.
  2. Si vous souhaitez  transformer les données d'un modèle de données: dans la section Modèles de données, cliquez sur Sélectionner pour choisir le modèle de données à transformer.
    Si vous souhaitez générer des données, laissez le champ vide.
  3. Dans la liste déroulante Exécutable, sélectionnez l'exécutable à lancer. Les exécutables disponibles sont ceux présents dans le dossier des exécutables configuré précédemment.
  4. Dans le champ Arguments, vous pouvez définir des arguments à faire passer à l'exécutable. Par exemple, le nom de la base de données dans laquelle les données doivent être récupérées
  5. Cliquez sur le bouton Charger pour charger les données et les afficher dans la section Prévisualisation.Boite_IODS

Options avancées

Dans la section Sélection des données, cliquez sur le bouton Avancé pour accéder aux Options avancées de la sélection de données.

Options_avancees_IODS

Format de dateSélectionnez le format des valeurs des dimensions de type Date du modèle de données source pour l'envoi des données csv à l'exécutable lors d'une transformation des données.
Séparateur de sortieSpécifiez le séparateur csv à utiliser lors de l'envoi des données du modèle de données choisi à l'exécutable dans le cas d'une transformation de données.
Séparateur d'entréeSpécifiez le séparateur csv utilisé par l'exécutable lors de l'écriture des données générées ou transformées.
Variables d'environnementCliquez sur le bouton pour définir des variables d'environnement qui seront passées à l'exécutable par cette source de données lors de son exécution.