1

J'apprends à développer ETL en utilisant Pentaho Spoon, je suis assez noob encore. Au lieu de stocker des opérations SQL dans son fichier, je voudrais les avoir sur leurs propres fichiers .sql. Il est plus facile de suivre les changements sur Subversion, et en cas de besoin, je peux simplement ouvrir le fichier sql sur le gestionnaire de DB et l'exécuter directement.Cuillère - lire le code SQL à partir du fichier txt et exécuter sur la base de données

Comment est-ce que je pourrais faire cela? Je suppose que je pourrais utiliser un composant pour lire un fichier txt dans une variable, et un autre composant pour prendre cette variable et l'exécuter sur DB.

Comment est le moyen le plus simple d'y parvenir?

+0

Avez-vous regardé l'étape 'SQL' au niveau du travail? –

Répondre

1

Dans l'entrée SQL Table standard, vous pouvez définir la requête comme paramètre ${my_query} et ce paramètre doit être défini (sans $ {...} décoration) dans les propriétés de transformation: cliquez avec le bouton droit n'importe où, sélectionnez Propriétés dans le menu contextuel, l'onglet Parameter.

Chaque fois que vous exécutez la transformation, vous présentez la liste des paramètres, parmi lesquels my_query que vous pouvez remplacer.

Pour automatiser, suivez l'exemple livré avec le zip d'installation. Dans le même répertoire que spoon.bat/spoon.sh, il y a un dossier nommé sample, dans lequel vous trouverez un job à read_all_files ou read all_tables. Fondamentalement, ce travail liste les fichiers dans un répertoire, et pour chacun d'entre eux le place dans une variable et l'utilise comme paramètre pour exécuter la transformation. Beaucoup plus facile à faire qu'à expliquer. enter image description here