IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement de jobs Discussion :

Traitement masse de donnée via fichier excel.


Sujet :

Développement de jobs

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 9
    Points : 7
    Points
    7
    Par défaut Traitement masse de donnée via fichier excel.
    Bien le bonjour à tous, je dois, dans le cadre de ma formation STID, traiter un fichier excel comportant 240.000 lignes.
    De ce faite j'ai à ma disposition Talend et Postgres pour créer et alimenter ma BD qui par la suite servira, via un site web afficher la table selon les conditions mais c'est pas cette partie là qui va nous intéresser !

    Entrons dans le vif du sujet.

    Comme dis ci-dessus, je dois via talend et postgres créer et alimenter une BD avec un fichier excel assez imposant, pour être plus efficace, j'ai réduis le fichier a 49 lignes, c'est plus confortable !

    Alors, le commencement :

    Le script de création de la table (qui va nous servir de MLDR) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    CREATE TABLE  "filiere" (
      "num_filiere" int NOT NULL,
      "nom_filiere" varchar DEFAULT NULL,
      PRIMARY KEY ("num_filiere")
    );
     
     
    CREATE TABLE "lieu" (
      "num_lieu" int NOT NULL,
      "id_lieu" varchar DEFAULT NULL,
      "nom_lieu" varchar DEFAULT NULL,
      PRIMARY KEY ("num_lieu")
    );
     
     
    CREATE TABLE "niveau_geo" (
      "num_niceau_geo" int NOT NULL,
      "nom_niveau_geo" varchar DEFAULT NULL,
      PRIMARY KEY ("num_niceau_geo")
    );
     
    CREATE TABLE "regroupement" (
      "num_regroupement" int NOT NULL,
      "lib_court" varchar DEFAULT NULL,
      "lib_long" varchar DEFAULT NULL,
      PRIMARY KEY ("num_regroupement")
    );
     
     
    CREATE TABLE  "secteur" (
      "num_secteur" int NOT NULL,
      "nom_secteru" varchar DEFAULT NULL,
      PRIMARY KEY ("num_secteur")
    );
     
     
    CREATE TABLE "sexe" (
      "num_sexe" int NOT NULL,
      "lib_sexe" varchar DEFAULT NULL,
      PRIMARY KEY ("num_sexe")
    );
     
    CREATE TABLE  "proposer" (
      "num_lieu" int NOT NULL,
      "num_regroupement" int NOT NULL,
      "num_secteur" int NOT NULL,
      "num_sexe" int NOT NULL,
      "num_niceau_geo" int NOT NULL,
      PRIMARY KEY ("num_lieu","num_regroupement","num_secteur","num_sexe","num_niceau_geo"),
      CONSTRAINT "FK_proposer_num_niceau_geo" FOREIGN KEY ("num_niceau_geo") REFERENCES "niveau_geo" ("num_niceau_geo"),
      CONSTRAINT "FK_proposer_num_lieu" FOREIGN KEY ("num_lieu") REFERENCES "lieu" ("num_lieu"),
      CONSTRAINT "FK_proposer_num_regroupement" FOREIGN KEY ("num_regroupement") REFERENCES "regroupement" ("num_regroupement"),
      CONSTRAINT "FK_proposer_num_secteur" FOREIGN KEY ("num_secteur") REFERENCES "secteur" ("num_secteur"),
      CONSTRAINT "FK_proposer_num_sexe" FOREIGN KEY ("num_sexe") REFERENCES "sexe" ("num_sexe")
    );
     
    CREATE TABLE "donnee_stat" (
      "num_donnee_stat" int NOT NULL,
      "annee" int DEFAULT NULL,
      "diffusable" varchar DEFAULT NULL,
      "secret" varchar DEFAULT NULL,
      "reserve" varchar DEFAULT NULL,
      "num_niceau_geo" int DEFAULT NULL,
      "num_regroupement" int DEFAULT NULL,
      "num_lieu" int DEFAULT NULL,
      "num_secteur" int DEFAULT NULL,
      PRIMARY KEY ("num_donnee_stat"),
      CONSTRAINT "FK_DONNEE_STAT_num_secteur" FOREIGN KEY ("num_secteur") REFERENCES "secteur" ("num_secteur"),
      CONSTRAINT "FK_DONNEE_STAT_num_lieu" FOREIGN KEY ("num_lieu") REFERENCES "lieu" ("num_lieu"),
      CONSTRAINT "FK_DONNEE_STAT_num_niceau_geo" FOREIGN KEY ("num_niceau_geo") REFERENCES "niveau_geo" ("num_niceau_geo"),
      CONSTRAINT "FK_DONNEE_STAT_num_regroupement" FOREIGN KEY ("num_regroupement") REFERENCES "regroupement" ("num_regroupement")
    );
    CREATE TABLE  "comptabiliser_filiere" (
      "effectif" int DEFAULT NULL,
      "num_sexe" int NOT NULL,
      "num_donnee_stat" int NOT NULL,
      "num_filiere" int NOT NULL,
      PRIMARY KEY ("num_sexe","num_donnee_stat","num_filiere"),
      CONSTRAINT "FK_comptabiliser_filiere_num_filiere" FOREIGN KEY ("num_filiere") REFERENCES "filiere" ("num_filiere"),
      CONSTRAINT "FK_comptabiliser_filiere_num_donnee_stat" FOREIGN KEY ("num_donnee_stat") REFERENCES "donnee_stat" ("num_donnee_stat"),
      CONSTRAINT "FK_comptabiliser_filiere_num_sexe" FOREIGN KEY ("num_sexe") REFERENCES "sexe" ("num_sexe")
    );
     
    CREATE TABLE "comptabiliser" (
      "effectif" int DEFAULT NULL,
      "num_sexe" int NOT NULL,
      "num_donnee_stat" int NOT NULL,
      PRIMARY KEY ("num_sexe","num_donnee_stat"),
      CONSTRAINT "FK_comptabiliser_num_donnee_stat" FOREIGN KEY ("num_donnee_stat") REFERENCES "donnee_stat" ("num_donnee_stat"),
      CONSTRAINT "FK_comptabiliser_num_sexe" FOREIGN KEY ("num_sexe") REFERENCES "sexe" ("num_sexe")
    );
    Le fichier excel :

    Etudiants.xlsx

    Mon talend actuel :

    TEST.rar

    Pour résumer ce que j'ai réalisé jusqu'à présent :

    Grace au fichier excel, j'ai réussi à créer et alimenter les tables :

    - Lieu
    - Sexe
    - Secteur
    - Regroupement
    - Niveau-geo

    Les jointures :

    - Proposer
    - Donnee-stat

    Dans donnee stat, j'ai des erreurs de doublon, avec le talend actuel, si on prend par exemple la ligne 78 et 79 de cette table, elles sont identiques, je comprend pas trop pourquoi, et ça devient problématique pour faire une 2eme jointure avec cette table là.

    J'ai du mal (voir je vois pas trop comment faire) pour créer et alimenter la table :

    - Filiere

    Dedans, il doit y avoir DUT et ING
    Or, sans la créer manuellement, je ne vois pas comment faire.

    Et les jointures :

    - Comptabiliser (Vu que j'ai des doublons avec donnee-stat, ca fausse le resultat et de plus, j'ai du mal a sortir une table complète en additionnant comme il faut les effectifs tout en étant cohérent avec les clefs étrangères. Vu qu'elle est totalement fausse, je ne l'ai pas gardé dans le fichier actuel)
    - Comptabiliser_filiere (sans la table filière, elle ne peut que rester inexistante, et même problème que la jointure précédente, je vois pas trop comment additionner "facilement" chaque effectif, en sachant qu'avec un Taggregate, il fait bien la somme mais ne me ressort pas les clefs étrangères.)

    Maintenant la où je me suis poser la question pour tenter de trouver les solutions par moi même c'est :

    - Pour filière, le créer manuellement, pas trop le choix je pense.
    - Comptabiliser filière, faire un algo disant que si effectif il y a dans tel formation, ajouter a la somme, sinon passer ligne suivante?

    Je vous remercie par avance pour les lumières que vous m'apporterez, je reste à votre disposition pour ajouter des précisions sur certains points si besoin, en attendant, je vais tenter d'avancer !

    Cordialement,
    YoloPate.

    Edit : Pour les doublons de la table donnee_stat, il suffisait de rajouter un TuniqRow sur la connection du fichier excel.

  2. #2
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2015
    Messages : 17
    Points : 24
    Points
    24
    Par défaut
    Salut Stidien , quelle ville ?
    ( J'ai fait stid à Niort pour ma part )
    Bref les tables tu peux aussi les créer en amont. T'as juste à balancer le code de création sur postgre.
    Ensuite pour talend , t'inséres ton inputExcel avec le fat fichier , tu fais un tmap et après tu le relie aux OutputFile classique... ça c'est uniquement pour l'alimentation !
    Mais ça me semble trop facile comme ça ^^

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Carcassonne pour la mienne, mais je conseil absolument pas la formation ici, la moitié des profs sont vraiment des foutistes nées.


    J'allais mettre en résolu pile quand tu as repondu au sujet!
    Au final, le problème venait de moi, j'mettais pas assez de clef étrangère, du coup, ca me faisait masse doublon!

    Merci quand même !
    Mais si tu veux, j'ai un autre problème talend, rattrapage de partiel oblige, j'dois me pencher dessus !
    Je clos le sujet mais si tu t'ennuies, hesite pas à me mp, je t'exposerais le soucis !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Toutes versions] Importer données dans fichier Excel via macro VBA
    Par JEREMY01 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 10/07/2012, 23h13
  2. [MySQL] Export Base de Donnée en fichier Excel via PHP
    Par Waka56 dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 01/06/2011, 18h31
  3. Entré de données dans fichier excel avec Form VB6
    Par avyrex dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 17/05/2007, 14h08
  4. DTS : update table via fichier excel
    Par jbrasselet dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 19/07/2006, 09h38
  5. [VBA-E]Importer des données de fichiers excel fermés
    Par bart64 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 20/04/2006, 11h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo