Forum de discussion
Forum « Programmation Javascript » (archives)
Traitement parallèle Split Unix
Envoyé: 7 mai 2003, 5h58 par mikila
Je developpe une appli qui doit traiter des sous fichiers obtenus par un split de très volumineux fichiers (insertion dans un base de donnees oblige). Le problème c'est que le split me prend des heures (ce sont des fichiers de logs ) et je dois attendre la fin de cette operation pour commencer l'insertion de mes donnees dans une base de données. Dans un souci d'optimisation, je pense qu'il serait interressant de proceder parallèlement à l'execution du split à l'insertion des données a chaque fois que le split crée un sous fichier. Quelqu'un aurait il une idee de comment recuperer parallèlement à l'execution de split un sous fichier créé?
En fait, c'est dans le cadre de mon stage et je dois reprendre le travail que quelqu'un d'autre a fait car le traitement realisé actuellement est très lent (un peu trop d'ailleurs). Ces fichiers de logs sont recuperés au format zippé. Voici une idée de bout de code qu'il utilise pour l'insertion des donnees bruts dans la base de donnees :
%gunzip -c ${SRC} | ${FILTRE} | split -l 240000 - ${TMPDIR}/${DEST} // le fichier de log peut etre tres volumineux
// le filtre existe deja et est un script Perl
.....
....
for F_NAME in $( ls ${TO_FILE}?? ) ; do
// corps de la procedure d'insertion
% /opt/sybase/bin/bcp ${TABLE_DESTINATION} in ${FILE_SOURCE} -S ${SYB_HOST} -U ${SYB_LOGIN} -P ${SYB_PASSWD} -e ${ERROR_LOG} -b 12000
done
S'il m'est possible de ne pas passer par l'etape du split, je gagnerai enorment de temps. Je voudrais d'abord savoir qu'est ce que vous pensez de cela et eventuellement recevoir des suggestions de solution.
Merci
Réponses
|