拉一个数据库样本 - Postgresql

时间:2012-02-09 16:03:26

标签: postgresql archive utilities

我们有一个半大型数据库,需要很长时间才能在我们的个人开发机器上进行本地导入。我想知道是否有任何工具可以连接到数据库,做一些分析并拉取数据库的样本,同时通过传入的参数保持所有关系。类似于pg_sample --rough_size 1000 --dbhost mydbhost --dameame uname --dbpword pword 这会创建一个转储,我可以将其导入到我的数据库中进行测试和开发。但是不需要45分钟就可以完成。

由于

2 个答案:

答案 0 :(得分:5)

我写了这样一个工具:https://github.com/mla/pg_sample

来自自述文件:

  

pg_sample是一个用于从中导出小样本数据集的实用程序   更大的PostgreSQL数据库。输出和命令行选项   非常类似于pg_dump备份实用程序(尽管只有   支持纯文本格式。)

     

生成的示例数据库包括原始的所有表,   维护参照完整性,并支持循环依赖。

答案 1 :(得分:2)

我建议您调查pg_dump --format=custompg_restore -j 12custom格式允许并行恢复(如果需要,可以转储到原始SQL,因此您不会丢失任何功能)。 -j pg_restore参数会导致它并行运行还原。这可以提供显着的加速。特别是如果你把你的maintenance_work_mem设置得很好而且很大。

由于上述Erwin概述的原因,它无法解决您直接询问的问题,并且因为它需要一定程度的知识来表示什么是重要的代表,什么不是简单的不在模式中。这需要占用开发人员的时间,通常应该在构建模式的同时完成。