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

PostgreSQL Discussion :

Besoin conseils : chargement de gros volume et tables temporaires


Sujet :

PostgreSQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Par défaut Besoin conseils : chargement de gros volume et tables temporaires
    Bonjour,

    Nous avons une base de donnée postgresql qui sert de stockage pour une application serveur java. Cette base de donnée est alimentée (complétée ou mise à jour) chaque 8 heures par plusieurs centaines de milliers d'enregistrements de différents type provenant de fichiers XML.

    L'alimentation se fait par un programme java externe, le but serait de pouvoir réaliser l'importation d'une façon qui perturbe le moins possible le fonctionnement de l'application serveur. L'idéal recherché est de pouvoir charger et valider toutes les données nouvelles sur le serveur, puis ensuite de pouvoir les merger avec les données de production.

    A noter que nous recevons à chaque importation l'intégralité des données, donc l'importation n'est pas incrémental, on doit s'inquiéter nous-mêmes de ce qui doit être inséré ou simplement mis à jour.

    Une idée de solution est de mettre tout le contenu de ces fichiers dans des tables temporaires cotés serveurs qui correspondent 1:1 aux tables de production, puis ensuite à l'aide de requêtes avec jointures faire ce fameux merge / insert de la façon la plus atomique possible.

    Le problème est que j'ai du mal à me rendre compte si les tables temporaires sont une bonne idée pour cela. Je n'arrive pas à trouver sur le net des informations sur leur fonctionnement dessous le capot (mémoire / disque?).
    Car entièrement en mémoire j'ai peur que cela fasse trop.

    Des avis ou conseils sont le bienvenu.

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Par défaut
    Les tables temporaires sont stockables sur disque sans qu'il n'y ait rien de spécial à faire, le serveur s'en charge tout seul.

  3. #3
    Membre éprouvé
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Par défaut
    Grand merci, donc je peux faire un essai avec cette approche.
    (je marque résolu mais je continue à venir lire si jamais quelqu'un ajoute une réponse)

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    465
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 465
    Par défaut
    Tu peux utiliser une mémoire tompon ce qui peut éviter le stockage temporaire sur le serveur. Une mémoire tompon peut être tout simplement des vecteur java dont tu peux faire des test pour tester la cohérence de données.
    Moi personellement je gère des bases de données PostgrSQL contenant quelques milliers de lignes avec des vecteurs java. Au début de l'application java, je charge les données de la base de données dans des vecteurs qui respectent la structure de données définie dans la base de données. C'est beaucoup plus rapide que de lire les données directement de la base de données.

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

Discussions similaires

  1. chargement gros volume de donnees
    Par wwwstephane dans le forum Outils
    Réponses: 2
    Dernier message: 04/06/2008, 17h11
  2. Réponses: 4
    Dernier message: 21/05/2008, 11h56
  3. Réponses: 3
    Dernier message: 16/05/2007, 09h19
  4. Chargement gros volumes
    Par StitchP dans le forum MATLAB
    Réponses: 4
    Dernier message: 06/04/2007, 09h05
  5. Réponses: 1
    Dernier message: 27/02/2007, 23h08

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