Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
#1 30/01/2014 23:50:11
- Vinounounou
- Membre
Extraction/injection de données issues d'une base vers une autre base
Bonjour,
Je vous sollicite pour avoir votre avis sur la meilleure solution concernant le besoin suivant
Objectif :
Avoir un traitement qui va extraire les données issues de plusieurs tables d'une base de données source. Ces données récupérées doivent être ensuite injectées dans une table de travail dans un schéma se situant sur une autre base de données (sur un autre serveur). Cela peut concerner plusieurs millions de lignes, les performances sont donc recherchées.
Solutions envisagées :
- via un Shell, se connecter à la base source et récupérer les données dans un fichier via la command COPY. Injecter ensuite ce fichier dans la base cible via COPY
- via un dblink, exécuter une requête "insert into select" depuis la base cible
- une autre solution ?
Quelles sont selon vous les avantages/inconvénients de ces solutions ?
Merci d'avance de votre aide
Hors ligne
#2 31/01/2014 00:53:00
- rjuju
- Administrateur
Re : Extraction/injection de données issues d'une base vers une autre base
Bonjour,
est-ce pour un uniquement traitement, un traitement régulier ou pour maintenir une sorte de réplication ?
Julien.
https://rjuju.github.io/
Hors ligne
#3 31/01/2014 14:09:02
- Vinounounou
- Membre
Re : Extraction/injection de données issues d'une base vers une autre base
Le traitement concerné est un traitement qui doit être lancé ponctuellement afin de valider un traitement de migration de données.
Hors ligne
#4 31/01/2014 16:11:49
- gleu
- Administrateur
Re : Extraction/injection de données issues d'une base vers une autre base
Niveau performances, certainement pas dblink. J'aurais plutôt tendance à privilégier COPY.
Guillaume.
Hors ligne
#5 04/02/2014 20:55:34
- SQLpro
- Membre
Re : Extraction/injection de données issues d'une base vers une autre base
COPY avec plusieurs threads en // ou un bon ETL qui parallélise les lectures/écritures (malheureusement pas dans le libre, la version "free" de TALEND étant verrouille à ce niveau....)
En sus pensez à tester en faisant le scénario suivant :
1) supprimez les contraintes FK des tables de destination
2) supprimez les index non sémantiques des tables de destination
3) insérez en parallèle dans toutes les tables à la fois
4) recréez les index préalablement supprimés
5) rajoutez les contraintes FK préalablement supprimées
Si vous avez d'autres contraintes de validation (CHECK par exemple) ou des déclencheurs, et que vous êtes sûr de votre coup, pensez aussi à les désactiver...
A +
Frédéric Brouard, alias SQLpro, ARCHITECTE DE DONNÉES, Expert langage SQL
Le site sur les SGBD relationnel et langage SQL : http://sqlpro.developpez.com/
Modélisation de données, conseil, expertise, audit, optimisation, tuning, formation
* * * * * Enseignant CNAM PACA, ISEN Toulon, CESI Aix en Provence * * * * *
Hors ligne