在生产中,我们的数据库只有几百GB大小.对于开发和测试,我们需要创建这个数据库的快照,这些快照在功能上是等效的,但大小只有10或20千兆.
挑战在于,我们业务实体的数据分散在许多表中.我们希望创建某种经过过滤的快照,以便转储中只包含some个实体.这样,我们可以每月左右获得新的快照,用于开发和测试.
例如,假设我们有一些实体具有这些多对多关系:
- 该公司有N个部门
- 该部门有N名员工
- 员工有N份考勤记录
大约有and all of its constituent divisions, employees, and attendance records0家公司、2500个部门、17.5万名员工和数千万的考勤记录.我们想要一种可复制的方式来吸引,比如说,前and all of its constituent divisions, employees, and attendance records家公司.
我们目前对模式使用pg_dump,然后使用--disable triggers and--data运行pg_dump,以便从较小的表中获取所有数据.我们不希望必须编写定制脚本来提取部分数据,因为我们有一个快速的开发周期,并且担心定制脚本会很脆弱,可能会过时.
我们该怎么做?是否有第三方工具可以帮助从数据库中拉出逻辑分区?这些工具叫什么?
任何一般性的建议也将不胜感激!