Sur la production de notre base de données est à quelques centaines de gigaoctets. De développement et de test, nous avons besoin de créer des instantanés de cette base de données qui sont fonctionnellement équivalents, mais qui ne sont qu'à 10 ou 20 concerts de la taille.
Le défi est que les données de nos entités commerciales sont dispersés à travers de nombreux tableaux. Nous voulons créer une sorte de filtre de capture instantanée de sorte que seules certaines de ces entités sont inclus dans l'image. De cette façon, nous pouvons obtenir de nouvelles captures instantanées de chaque mois pour les dev et les tests.
Par exemple, disons que nous avons des entités qui ont ces plusieurs-à-plusieurs liens:
- L'entreprise a N Divisions
- La Division a N Employés
- Employé-e a N Records de Fréquentation
Il y a peut-être 1000 entreprises, 2500 divisions, 175000 employés, et des dizaines de millions de records de fréquentation. Nous voulons un reproductibles façon de s'en sortir, disons, le premier de 100 entreprises et l'ensemble de ses divisions, les employés et les records de fréquentation.
Nous utilisons actuellement de pg_dump pour le schéma, puis exécutez pg_dump avec l'option --disable-triggers et --données uniquement à obtenir toutes les données des tableaux plus petits. Nous ne voulons pas avoir à écrire des scripts personnalisés pour tirer partie des données que nous avons un cycle de développement rapide et l'scripts personnalisés serait fragile et susceptible d'être obsolète.
Comment pouvons-nous faire cela? Existe-il des outils de tiers, qui peuvent aider à sortir des partitions logiques à partir de la base de données? Ce que ces outils sont-ils appelés?
Tout les conseils généraux ont également apprécié!