Fusion de BDD - SQL/NoSQL - Programmation
Marsh Posté le 12-10-2012 à 14:36:56
utiliser un ETL : en gratuit, talend est très bien
ça va te permettre en bonus de gérer la planification, la reprise sur erreur,les rapports, ....
Marsh Posté le 25-10-2012 à 10:11:14
Merci, je reformule :
On a deux serveurs SQL avec deux BDD de structure identique (régulièrement on fait des BACK UP et DELETE car on se retrouve avec énormément de ligne ...). On me demande d'avoir une 3ème BDD sur un 3ème serveur SQL qui regroupe les données des deux BDD (il n'y a pas de clés dans la BDD ).
J'ai penser à décomposer la tâche de la manière suivante :
- Réaliser un BACK UP avant toute opération (j'ai un script en BAT pour ça ...) ;
- Importer les deux BDD vers le 3ème serveur (uniquement les nouvelles données et sans écraser les anciennes)
Je programmerai après l'execution du script (si c'est pas possible avec un logiciel, même payant!)
Je ne vois pas comment m'y prendre ?
Merci;
Marsh Posté le 25-10-2012 à 10:15:10
Essaye talend data intégration ( http://fr.talend.com/products/data-integration )
Là, tu es en train de réinventer la roue.
Marsh Posté le 25-10-2012 à 10:25:27
ca a l'air d'être un logiciel difficile à utiliser, peux tu me donner quelques indications ?
Marsh Posté le 04-01-2013 à 14:27:09
Un nouveau soucis (pour les précédents ca c'est amélioré) , j'ai l'erreur suivante (je réalise un script pour fusionner deux bdd)
Code :
|
Au fait sur la BDD1 j'ai une ligne avec une clés primaire 3 et sur la BDD2 j'ai déjà une ligne avec l'id 3 mais ce ne sont pas les mêmes informations ... Il refuse d'importer la ligne de la BDD2 !
Avec TALEND je serai épargner de ce probléme (je ne l'ai encore jamais utilisée, j'étais partis sur un script sql mais ça bloque ...)
Merci beaucoup!
Marsh Posté le 04-01-2013 à 17:02:49
L'idéal serait d'importer dans bdd3 uniquement les champs suivants la clés primaires, (la clés primaires s'incrémente toute seules de toute façons), je ne vois pas comment faire ?
J'ai remplacé l'étoile par les champs (sauf la clés primaire) mais je suis obligé de la mettre !
Code :
|
Merci beaucoup!
Marsh Posté le 05-01-2013 à 19:29:29
Personne ?
J'ai deux BDD de même structure, le but est d'importer les données de la 1ére BDD dans la 2éme, pour éviter les doublons j'aimerai donc ne pas copier le champs _id (clés primaires) des tables, c'est possible ?
Ma requête pour l'instant :
Code :
|
J'avais penser à mettre à la place de l'étoile les collones suivant la clés primaire mais j'ai un message d'erreur (count colonm) ...
Merci de m'aider !!!
Marsh Posté le 06-01-2013 à 20:23:18
a mon sens avoir des BDD identiques par postes (qu'il faut après synchroniser ou fusionner régulièrement) c'est qu'il y a un problème dès le départ d'architecture
Ne serait-ce pas possible plutôt de n'avoir qu'une seule et unique BDD avec tes 2 postes reliés dessus ?
-> c'est justement à ça que sert une BDD
si un jour tu as un 3ème poste tu refais une nouvelle BDD ?
Marsh Posté le 06-01-2013 à 20:26:48
non au fait elles sont sur des bancs de tests, et les bancs sont déconnectes au réseau de l'entreprise
Marsh Posté le 06-01-2013 à 20:27:50
Aucune idée pour éviter de copier le champs clés primaire de chaque table avec la requête suivante :
INSERT INTO bdd3.config
SELECT *
FROM bdd2.config bdd2
Marsh Posté le 06-01-2013 à 22:52:29
Et la requête suivante pourrait-elle correspondre à ce que tu souhaites ?
Code :
|
Marsh Posté le 06-01-2013 à 23:03:41
A la place de l'étoile j'avais déjà mis les champs suivant la clés primaire, mais il y avait une erreur 'count column' !
Marsh Posté le 06-01-2013 à 23:13:39
J'avais bien lu Mais as-tu essayé de donner la liste des colonnes à remplir dans la requête ?
Marsh Posté le 06-01-2013 à 23:25:58
d'accord je verrai demain matin, je te donnerai de mes nouvelles !
Marsh Posté le 08-01-2013 à 10:08:21
J'ai commencé à développer un script ... Par contre je dois proposer plusieurs solutions, j'en ai une autre en tête :
Chaque bancs de tests dispose de sa propre BDD (même structure) on voudrait avoir une BDD regroupant toutes les BDD des bancs (MAJ fréquente car après çela je développerai une application d'exploitation des BDD depuis la BDD centralisée). A savoir que l'on peut pas mettre les BDD en réseau car les bancs peuvent être déconnectés du réseau et ils doivent toujours pouvoir faire les tests de produits ...
J'ai donc pensé à dupliquer les BDD sur chaque bancs (back up et importation planifiée) et ainsi utiliser une réplication vers le serveur centralisé (au moins la MAJ sera automatisée pour ce cas). Les bancs pourront continués à fonctionner en cas de non accès au réseau ainsi.
Avez vous une idée ?
Marsh Posté le 08-01-2013 à 10:25:50
Avec une replication tu auras les meme problemes de collision de primary keys.
Le fix de Soileh devrai fonctionner, trouve et répare l'erreure de syntaxe
Marsh Posté le 08-01-2013 à 17:02:22
Si, il y en a pleins, mais elles sont toutes hors de protée si tu n'arrives pas a résoudre un probleme de base.
L'integrité d'une DB est un principe de base, donc tu devras faire avec, peut importe la solution que tu utiliseras.
Dans ce cas ci c'est juste un petit probleme de syntaxe, ca devrai etre facile a reparer et tu pourras faire la copie de tes deux tables en une.
Marsh Posté le 10-01-2013 à 09:32:53
J'ai un autre soucis, je veux retirer l'auto incrémentation d'une clés primaire, mais je n'y arrive pas :
Code :
|
Au fait je veux casser la clés primaire, et y ajouter ensuite une autre collone dans la BDD de synchronisation afin d'identifier la BDD et d'éviter les doublons (vu que la la clés primaire sera composé de deux champs ...)
MERCI!
Marsh Posté le 10-01-2013 à 10:16:43
La syntaxe (pour SQL Server) c'est: ALTER TABLE MaTable DROP CONTRAINT PrimaryKeyConstraintName
Marsh Posté le 10-01-2013 à 11:21:35
Comme autre solution, il y a TALEND ? Est -il facile à configurer pour ce type d'opération ?
Marsh Posté le 12-10-2012 à 12:31:19
Bonjour
On a deux postes ayant chacun une BDD de structure identique, on voudraient les centraliser régulièrement vers une 3ème BDD (je précise que l'on a des clés dans les BDD ... ) . Avez vous une solution ? (j'avais penser à une back up des deux BDD et un import sur la 3ème BDD même si les ID seront décalés on peut toujours se retrouver avec les références je pense)
Merci