Comment lire des fichiers XML directement à partir du disque dans un travail parallèle de DataStage

Réponse

L’étape d’entrée XML doit prendre une seule colonne en entrée. Il est possible de configurer l’étape d’entrée XML pour accepter soit le contenu entier d’un document XML, soit un chemin de fichier (ou URL) à partir duquel le contenu du document peut être lu. La configuration de l’étape d’entrée XML pour accepter le chemin du fichier est la meilleure option pour les travaux parallèles. L’étape d’entrée XML ouvrira alors le fichier en tant que flux d’entrée et lira le fichier directement à partir du disque sans le modifier en aucune façon. Cette méthode est plus rapide, consomme moins de ressources et est beaucoup moins sujette aux erreurs que l’utilisation d’une étape de fichier séquentiel.

La méthode path nécessite un moyen de générer le chemin complet vers le fichier (ou les fichiers) qui sera ensuite transmis à l’étape d’entrée XML. L’étage Source externe fait un excellent travail en fournissant cette capacité. L’étape Source externe va lancer et exécuter n’importe quel programme exécutable, puis rediriger la sortie standard de ce programme dans la tâche. Pour obtenir une liste des chemins d’accès aux fichiers, nous pouvons demander à l’étape Source externe d’exécuter le programme ‘find’ qui est généralement inclus avec un système d’exploitation Unix ou Linux. Sur la plate-forme Windows, ce programme est également fourni dans le cadre de la boîte à outils MKS qui est installée automatiquement par l’installation de DataStage.

Voici un exemple de la façon dont le programme find peut produire le chemin complet vers les documents XML en sortie :

find/data/input-name »*.xml » – print

L’exécution du programme avec ces arguments produira une liste de chemins complets vers chaque fichier se terminant par le .extension xml dans le répertoire /data/input ou l’un de ses sous-répertoires. La sortie aura un chemin de fichier par ligne, terminé par un nouveau caractère de ligne.

Leave a Reply

Votre adresse e-mail ne sera pas publiée.