Mini Projet 1: Intégration de données commerciales (Chargement du DWH)-Talend Data Integration #36
Вставка
- Опубліковано 9 лис 2024
- Bonjour à toutes et à tous,
J'espère que vous vous portez très bien.
Je vous présente la deuxième partie de notre premier mini projet qui consiste à mettre en place un système d'intégration de données commerciales via Talend Data Integration.
Cette deuxième partie nous permettra de charger les tables du Data WareHouse (DWH) à partir des tables ODS (Operational Data Store).
Cette deuxième partie du mini projet est répartie en quatre étapes :
1- Comprendre la construction des différentes tables du Data WareHouse
2- Connexion à la base de données via pgAdmin 4 et exécution des différents scripts SQL
3- Mise en place des différents processus d'intégration de données
3.1- Ouverture du projet Talend
3.2- Création du groupe de contexte DWH
3.3- Création des métadonnées : Connexion à la base de données
3.4- Création des jobs DWH
3.5- Création du job principal
Grâce à cette deuxième partie, vous verrez l'utilisation des composants ci-dessous :
Orchestration : tPrejob, tPostjob, tRunJob
Misc : tContextLoad
Log & Errors : tChronometerStart, tChronometerStop
Database : tDBConnection, tDBCommit, tDBClose, tDBInput, tDBOutput
Custom Code : tJava
Processing : tMap
Afin de mieux suivre ce mini projet, je mets à votre disposition sur le lien git ci-dessous, les différents fichiers .sql, .java, .xlsx et .zip.
Lien de téléchargement: gitlab.com/rad...
(Voir le contenu du répertoire : Section 10/Mini Projet1 Partie2)
Les scripts SQL sont dans le répertoire : scriptSQL
Vous pouvez également suivre les différentes étapes décrites dans le fichier readme.md
Précédentes Vidéos utiles pour suivre cette formation :
Mini Projet 1: Intégration de données commerciales (Chargement de l’ODS)-Talend Data Integration #35
• Mini Projet 1: Intégra...
Générer un calendrier (Generate calendar using tRowGenerator and tMap) - Talend Data Integration #24
• Générer un calendrier ...
Merci de partager et de vous abonner à ma chaîne pour ne rater aucune de mes vidéos.
Bonjour Raoul,
J'ai beaucoup apprécié ton travail sur ce projet, car tu as bien expliqué les différents composants que tu as utilisés tout au long de la vidéo. La seule chose que je n'ai pas bien comprise, c'est à la minute 50:00, lorsque tu as créé 3 "outputs" dans le tMap pour effectuer l'insertion et la mise à jour du DIM_CLIENT. Pour ce qui est de l'output "updateBICurrent" et "insertNewClients", je ne vois pas vraiment quelles mises à jour sont effectuées en fonction des attributs de chacun de ces deux "outputs".
Merci de bien vouloir éclaircir ce point pour moi.
Bonjour Martin
Je m'excuse pour le retard de réponse.
En fait la mise à jour s'effectue lorsque le client existe déjà.
Si le client existe déjà, je vérifie s'il y a un changement sur les autres champs. Dans le cas où il a un changement, je mets à jour le champs BL_LIGNE_ACTIVE à 0 et j'insère la nouvelle ligne.
L'idée ici est de ne pas supprimer les anciennes données et d'avoir toujours une seule ligne active. J'espère avoir répondu à ta question !
Bonjour, super travail, juste une questio : Lorsque l'on met a jour des lignes, cela ne pose pas de probleme d'avoir dans la meme table 2 fois le meme ID_CLIENT ? Sachant qu'il y a l'ancienne ligne et la nouvelle. Ou alors je n'ai pas trop compris comment conserver ce principe d'unicité
Bonjour,
Bonne question
Le principe d'unicité se traduit par le champ composé id client et bl ligne active
Hey Maritinien, merci pour la qualité de cette formation et pour vos excellentes explications ! J'aurais juste une petite question, au lieu de choisir de travailler avec 2 tmpas et de concevoir trois sorties différentes pour l'insertion et la mise en jour pour dim_client, ne pouvons nous pas tout simplement garder un seul tmap et lui mettre en sortie dim_client et juste choisir comme action sur les données dans les paramètres simples de l'output Dim_client "Insérer ou mettre à jour" ? Cela n'aura t il pas le meme résultat ?
Hey Zeineb, Merci pour votre commentaire.
Oui effectivement vous pouvez avoir un seul tMap au lieu de deux. Cela va fonctionner de la même manière
Bonjour,
Je débute sur Talend et vous remercie donc pour ce projet très formateur que l'on peut retrouver dans la pratique.
J'aurais 2 questions :
- Sauriez-vous me dire comment effectuer un delete .... where avant d'insérer les données dans une table
- Comment passer un parametre date d'arrete (par exemple arrete mensuel) à un job ceci afin de pouvoir relancer un job de load de tables de DWH dans le passé
- Quid des calculs de stats des tables après les transactions de chargement ou maj
Merci par avance.
Bonjour
Merci pour votre commentaire !
- Sauriez-vous me dire comment effectuer un delete .... where / Vous pouvez utiliser le composant tDBRow où vous pouvez le faire via le composant tDBOutput (En choississant actions sur les données delete)
- Comment passer un parametre date d'arrete (par exemple arrete mensuel) à un job ceci afin de pouvoir relancer un job de load de tables de DWH dans le passé
Je dirai, vous pouvez utiliser les variables contexte (et avec l'action "Run if" et ajouter votre condition)
- Quid des calculs de stats des tables après les transactions de chargement ou maj
Vous devez l'activer dans l'onglet : Modifier les paramètre du projet ==> Paramètre du job ==> Stats & Logs
formidable, j'ai encore quelques erreur mais je vais y arriver
n'hésitez pas à m'envoyer votre erreur
J'ai tout corrigé et tout va bien.
Mon erreur c'est d'avoir mis les ID des différents tables du DWH dans mes tables en out du tmap, du coup à l'écriture dans la base, ça créaient des erreurs.
Dès que j'ai supprimé, tout est passé.
Formidable. Je passe à la phase 3 du miniprojet maintenant que L'ODS et me DWH sont ok.
@@reussirsonbusinessaupays Super !
Merci pour votre retour !
Salut Raoul,
Quels conseils donnerais tu à quelqu'un qui souhaite faire cette partie du mini projet (chargement du DWH) avec un outils de reporting comme POWER BI par exemple?
Bonjour Steve,
Normalement POWER BI est un outil de reporting. Ce qui implique qu'il a besoin de données afin de produire de bon rapports. Par contre cette partie du projet est une intégration de données dans le Data WareHouse. Je dirai que cette partie du projet tu ne peux la faire qu'avec un outil d'intégration de donnée. Et idéalement faire aussi la première partie avec le même outil.
J'espère avoir répondu à ta question.
@@martinien-adda Oui merci! par ailleur ayant déja alimenté L'ODS , il est également possible de partir de là avec power BI et faire une modélisation en étoile mais je reste d'accord avec vous sur le fait d'utiliser un outils d'integration. Je vous remercie pour vos réponses. Grosse force à vous.
Bonjour , merci bcp pur cette video , j ai une qst : moi je suit votre projet mais avec d autre données et d autre table , par exemple , ds la table vente Fait_vente moi j ai une table qi s appelel fait _contrat et j ai besoin que l id_ contat que je l ai mit ds la table ods de le remettre ds la table de dw , est ce que c est possible ?
Bonjour,
Oui vous pouvez le faire.
vous pouvez suivre le même principe que id_vente
Bonjour Monsieur Raoul je vous remercie pour ces vidéos. j'ai une préoccupation: lors de l'exécution du job chargement de la table dim_client, il y'a cette erreur qui s'affiche :
bs_destinataire cannot be resolved to a variable . il s'agit du composant tDBConnexion(mysql)
s'il vous plaît aidez moi à résoudre cette erreur. merci
Bonjour Monsieur
C'est avec plaisir et merci pour votre commentaire.
L'erreur doit venir du fait que vous avez mis bs_destinataire dans un des composants du job alors qu'il n'est pas une colonne valide. Essayez de regarder dans chaque composant vous allez pouvoir trouver cela.
d'accord merci
@@amadouvision8117 je vous en prie
au niveau de l'exécution du job charge DWH j'ai une erreur
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "Thread-3"
Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded
vous pouvez regarder cette vidéo qui permet de régler le problème : ua-cam.com/video/hnY-q4i27Vo/v-deo.html