Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > ETL > Talend
Talend Forum d'entraide sur Talend (Talend Open Studio, ...). Avant de poster --> FAQ Talend, Tutoriels Talend
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/04/2011, 12h09   #1
Membre à l'essai
 
Inscription : janvier 2009
Messages : 159
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 159
Points : 21
Points : 21
Par défaut Mise à jour d'une table en temps réel

Bonjour à tous,

J'ai une application (qui n'a rien à avoir avec Talend) qui tourne et insère des lignes dans un fichier.

Je voudrais savoir si c'est possible de récupérer ses lignes en temps réel et les insérer dans une table.

Exemple

si l'application écrit une ligne à 12h39min44sec, il faut que le job récupère cette ligne et la met dans la table.

Idéalement (je ne sais pas si je dis une bêtise ou pas je suis un peu novice sur Talend) le job s'endort et se réveille dès qu'il détecte une ligne écrite par l'application dans le fichier log.

Je vous remercie
wissem.ba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2011, 13h08   #2
Membre éclairé
 
Homme
Consultant en Business Intelligence
Inscription : mai 2006
Messages : 275
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : mai 2006
Messages : 275
Points : 373
Points : 373
Talend ne peut pas faire cela à ma connaissance.

Par contre, il peut tourner régulièrement et prendre les nouvelles à chaque fois (toutes les minutes par exemple)
Prjprj est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2011, 13h22   #3
Membre à l'essai
 
Inscription : janvier 2009
Messages : 159
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 159
Points : 21
Points : 21
Merci pour ta réponse.

Et comment faire pour le faire tourner toutes les minutes par exemple ?
wissem.ba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2011, 16h26   #4
Membre éclairé
 
Homme
Consultant en Business Intelligence
Inscription : mai 2006
Messages : 275
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : mai 2006
Messages : 275
Points : 373
Points : 373
Ca, c'est une question d'ordonnancement, pas de Talend

Si tu as la solution TIS, je crois qu'il existe un ordonnanceur intégré qu'il suffira de paramétrer.

Si tu n'as que TOS, il faudra t'appuyer sur autre chose : l'ordonnanceur de ton entreprise/client s'il en existe un ou l'ordonnanceur intégré à ton OS (cron sous linux, tache planifiée sous Windows).

Concernant les problématiques de "savoir quelle ligne à bougé", il va de soit que tu dois développer quelque chose pour le détecter toi même (en général on s'appuie sur une table de paramètres qui stocke la date de dernier chargement et on prend ce qui est arrivé depuis)
Prjprj est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2011, 16h32   #5
Membre à l'essai
 
Inscription : janvier 2009
Messages : 159
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 159
Points : 21
Points : 21
Je te remercie,

L'équipe ITS peut me faire une chaine contrôle M qui lance le job chaque minute par exemple.

Par contre pour savoir les nouvelles lignes je ne pourrais pas m'appuyer sur la date d'insertion puisque l'application dont je parle ne fournit pas justement la date (tomcat)

Je ne sais pas si c'est une bonne solution ou pas mais pense tu que c'est possible de faire recours à une table temporaire (ou fichier) dans laquelle je mets toutes les lignes qui ont été traitées puis faire la différence (en SQL minus ou un truc de ce genre) avec le nouveau contenu du fichier log et ne traiter que les nouvelles lignes
wissem.ba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2011, 16h59   #6
Membre habitué
 
Inscription : août 2005
Messages : 117
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : août 2005
Messages : 117
Points : 145
Points : 145
En outre, il peut être judicieux de traiter le problème différemment. Si tu as besoin d'une interface intégrant des données en temps réel dans une base, peut être qu'il ne te faut pas lire le fichier généré mais plutôt mettre en place un web service.

Ton application tierce pourra toujours créer une ligne dans le fichier ET appeler le web service en question. En outre, il est relativement aisé d'exposer un job Talend sous forme de web service.
tetsu no tama est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2011, 17h09   #7
Membre à l'essai
 
Inscription : janvier 2009
Messages : 159
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 159
Points : 21
Points : 21
Merci

Donc si j'ai bien compris il faut créer un web service et l'attacher à l'application. Dans ce cas l'application continue à écrire les lignes dans le fichier log et le web service va mettre à jour un autre fichier ou exploiter le même fichier log ?
wissem.ba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2011, 17h21   #8
Membre habitué
 
Inscription : août 2005
Messages : 117
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : août 2005
Messages : 117
Points : 145
Points : 145
Tu as plusieurs solutions plus ou moins "propres". Dans les deux cas, ton application tierce peut continuer à écrire dans le fichier (sauf si ce n'est exploité que par ton interface talend).

Tu peux soit mettre en place une méthode PUSH soit du PUSH & PULL (mais la deuxième solution n'a guère d'intérêt sauf cas particulier).

PUSH :
Appli tierce --> Push des données lors de l'appel au job talend déployé en temps que web service. L'interface Talend, elle, va traiter les éventuelles transformations et intégrer les données dans la base cible.

Je préconise un push dans le cadre d'un temps réel si tu fais du traitement unitaire et non pas par lot car elle est plus cohérente et permet de n'échanger que la donnée à intégrer dans ta base cible.
tetsu no tama est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2011, 18h01   #9
Membre éclairé
 
Homme
Consultant en Business Intelligence
Inscription : mai 2006
Messages : 275
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : mai 2006
Messages : 275
Points : 373
Points : 373
Citation:
Envoyé par wissem.ba Voir le message
Je te remercie,

L'équipe ITS peut me faire une chaine contrôle M qui lance le job chaque minute par exemple.

Par contre pour savoir les nouvelles lignes je ne pourrais pas m'appuyer sur la date d'insertion puisque l'application dont je parle ne fournit pas justement la date (tomcat)

Je ne sais pas si c'est une bonne solution ou pas mais pense tu que c'est possible de faire recours à une table temporaire (ou fichier) dans laquelle je mets toutes les lignes qui ont été traitées puis faire la différence (en SQL minus ou un truc de ce genre) avec le nouveau contenu du fichier log et ne traiter que les nouvelles lignes
De mémoire, un log tomcat contient des dates, non?

Enfin bon, pas grave. Tu peux effectivement charger tes données dans une table temporaire et faire un minus, mais cela risque de te prendre plus de la minute qui t'es impartie avant que l'itération suivante se lance, il faut donc faire bien attention à la façon dont tu fais ton traitement.

Si tu restes sur une optique ETL, il faut tester ton traitement sur un énorme fichier et paramétrer ton ordonnanceur pour qu'il lance ton job avec un intervalle de 5 fois la durée de ton test (histoire de prévoir l'évolution de la taille de ton fichier, de ta base, du fait que le serveur devra peut-être exécuter autre chose en même temps).
De plus, tu devras faire en sorte que 2 itérations de ton job ne se chevauchent jamais au risque de te donner des résultats totalement incohérents.

Pour l'idée du web service, ça fonctionne sous TOS de mettre Talend en WS?
Prjprj est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h51.


 
 
 
 
Partenaires

Hébergement Web