我们有一个半大型数据库,需要很长时间才能在我们的个人开发机器上进行本地导入。我想知道是否有任何工具可以连接到数据库,做一些分析并拉取数据库的样本,同时通过传入的参数保持所有关系。类似于pg_sample --rough_size 1000 --dbhost mydbhost --dameame uname --dbpword pword 这会创建一个转储,我可以将其导入到我的数据库中进行测试和开发。但是不需要45分钟就可以完成。
由于
答案 0 :(得分:5)
我写了这样一个工具:https://github.com/mla/pg_sample
来自自述文件:
pg_sample是一个用于从中导出小样本数据集的实用程序 更大的PostgreSQL数据库。输出和命令行选项 非常类似于pg_dump备份实用程序(尽管只有 支持纯文本格式。)
生成的示例数据库包括原始的所有表, 维护参照完整性,并支持循环依赖。
答案 1 :(得分:2)
我建议您调查pg_dump --format=custom
和pg_restore -j 12
。 custom
格式允许并行恢复(如果需要,可以转储到原始SQL,因此您不会丢失任何功能)。 -j
pg_restore
参数会导致它并行运行还原。这可以提供显着的加速。特别是如果你把你的maintenance_work_mem设置得很好而且很大。
由于上述Erwin概述的原因,它无法解决您直接询问的问题,并且因为它需要一定程度的知识来表示什么是重要的代表,什么不是简单的不在模式中。这需要占用开发人员的时间,通常应该在构建模式的同时完成。