web-dev-qa-db-fra.com

Fusionner plusieurs bases de données en une seule base de données

Tout, je dois créer une base de données unique qui a un schéma de base. Cette base de données sera volumineuse (100 Go et plus) et sera utilisée comme entrepôt de données. Maintenant, la création de cette base de données est actuellement effectuée en "un coup" via un code C #; extraire des données d'un certain nombre de sources différentes. En raison du volume considérable de données, cette création pose des problèmes. Il a été décidé qu'au lieu de créer une seule base de données en une seule fois; à

  1. Créez plusieurs bases de données plus petites contenant les tables de données principales.
  2. Fusionnez les petites bases de données en une seule base de données plus grande.
  3. Construisez le schéma/ajoutez les contraintes pertinentes.

Ma question est double.

1. Quelle est la meilleure façon de fusionner plusieurs bases de données (avec des schémas/structures de table identiques)?

2. Existe-t-il une meilleure façon de créer cet entrepôt de données (base de données extrêmement volumineuse)?

Merci pour votre temps.

15
MoonKnight

pour votre première question: vous avez mentionné un schéma et une structure de table identiques, dans ce cas, le simple déplacement de données d'une table de base de données (c'est-à-dire une plus petite base de données) vers une autre (c'est-à-dire une plus grande base de données). pour cela doivent assurer

1) il n'y avait pas de doublon de données (au moins dans le champ PK)

2) déplacer les données d'une base de données vers une autre pour le serveur SQL

Transférer des données d'une base de données vers une autre base de données

7
solaimuruganv

SQL-Hub ( http://sql-hub.com ) vous permettra de fusionner plusieurs bases de données avec le même schéma dans une seule base de données. Il existe une licence gratuite qui vous permettra de le faire à partir de l'interface utilisateur, mais vous devrez peut-être payer une licence si vous souhaitez planifier le processus pour qu'il s'exécute automatiquement. Cependant, s'il y a de très gros volumes de données, cela peut s'avérer un peu lent pour ce que vous voulez réaliser - vous pouvez cependant l'essayer.

Il y a aussi quelques articles ici qui examinent d'autres options pour ce genre de problème.

6
Alan Hickman

la réponse de sola est bonne et fonctionnera. Voici une autre alternative: ne fusionnez pas du tout. Créez une vue d'union globale au-dessus des multiples tables de base créées par votre importation. Cela vous permet d'économiser beaucoup de mouvements de données. Une telle vue est appelée vue partitionnée .

5
usr