Je suis encore assez nouveau sur Pentaho Soon. J'aimerais savoir si cela serait possible.Personnalisez les composants Pentaho Spoon en utilisant Java
Dans le passé, j'ai eu de nombreuses mauvaises expériences avec SSIS, alors j'ai décidé à l'époque de développer mon propre ETL en utilisant C#. En pratique, .Net ne fait que l'étape d'extraction. Les données sont insérées dans DB et le reste de ETL est effectué par MSSQL Query Engine à partir de SQL normal dans les fichiers txt, que .Net lit et exécute dans MSSQL.
Mon idée est de passer de .Net à Java, et d'utiliser les fonctionnalités de Spoon. L'avantage est que j'aurais des composants Spoon disponibles. Sortie de table dans l'exemple.
Un problème que j'ai, c'est que certains fichiers plats sont livrés currupted. Dans un exemple, les lettres avec accent sont remplacées par un caractère séparateur, donc je ne peux pas simplement dire à l'outil ETL de diviser les colonnes en utilisant le séparateur, je dois d'abord vérifier combien de séparateurs sont présents et les gérer s'il y en a plus.
Je dois également vérifier si un fichier a déjà été traité ou non, s'il a été copié sur le réseau, etc. Je ne veux pas non plus que le code SQL soit stocké sur les composants du script SQL, je les veux sur les fichiers txt normaux afin que Subversion puisse suivre les changements sur eux, et l'outil ETL devrait lire ces fichiers et les envoyer à MSSQL pour être exécuté. Donc, mon idée serait d'utiliser l'interface graphique de Spoon pour construire normalement l'ETL. Et puis utilisez Eclipse pour développer sur son SDK pour personnaliser l'exécution. Par exemple, j'utiliserais un composant d'entrée de fichier texte standard dans l'interface graphique, mais mon jar aurait sa propre classe étendant la norme, qui personnalise la méthode chargée de recevoir une chaîne de caractères et de la diviser en champs, et gérer tout problème.
Mon jar instancierait ma classe au lieu de Spoon et fournirait son objet au moteur.
Est-il viable ou trop complexe de déranger?
Merci beaucoup pour les conseils! En effet, il vaudrait mieux développer de nouveaux composants dans Eclipse et les attacher à Spoon plutôt que d'avoir un pot en train d'exécuter Spoon et de faire le travail! Est-ce fait avec Transformation Executor? Pourriez-vous me montrer un tutoriel pour ça? – Hikari
Bien sûr, Java serait la dernière solution. D'abord j'essaierais de le manipuler en utilisant la valeur JS modifiée. Est-il possible de conserver le code js dans un fichier txt, comme je veux le faire avec le code sql? J'ai essayé Dynamic SQL Row, il semble exiger que le fichier sql soit dans un champ. N'y a-t-il pas un endroit pour ajouter des paramètres de travail, ou un bouton de navigation pour pointer vers le fichier sql? Oui, je suis noob pour le moment. – Hikari
Vous avez un exemple pour 'l'exécuteur de transformation 'entre autres dans le répertoire exemple qui se trouve juste à côté de votre spoon.bat (spoon.sh). Remarque: La différence entre le travail et la transformation est que dans un trans, toutes les étapes s'exécutent en même temps alors que dans un travail, elles sont exécutées en séquence. Cela vous permet de contrôler le parallélisme mais peut provoquer des surprises (blocage des verrous d'écriture, troncature involontaire, variable affectée trop tard, ...) – AlainD