剔除数据库的样本 - Postgresql

Sec*_*r7B 6 postgresql utilities archive

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

谢谢

mla*_*mla 5

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

从自述文件:

pg_sample是一个实用程序,用于从较大的PostgreSQL数据库中导出较小的示例数据集。输出和命令行选项与pg_dump备份实用程序非常相似(尽管仅支持纯文本格式)。

生成的样本数据库包括原始数据库中的所有表,保持引用完整性,并支持循环依赖性。


And*_*rew 2

我建议你调查一下pg_dump --format=custompg_restore -j 12。该custom格式允许并行恢复(如果需要,可以转储到原始 SQL,因此您不会失去任何功能)。参数-j使其pg_restore并行运行恢复。这可以提供显着的加速。特别是如果你已经把你的maintenance_work_mem调大了。

由于 Erwin 上面概述的原因,它不会直接解决您提出的问题,并且因为它需要一定程度的知识来了解什么是重要的,而什么是不重要的,而这些根本不在模式中。这会占用开发人员的时间,通常应该在构建架构的同时完成。