首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何批量导出大型postgresql数据库?

如何批量导出大型postgresql数据库?
EN

Stack Overflow用户
提问于 2020-03-16 03:15:09
回答 2查看 1.2K关注 0票数 0

我有一个超过2000万行的巨大数据库。我可以导出整个数据库(这需要几个小时),但是当我尝试使用python (pandas)过滤数据时,pycharm失败了(由于内存问题)。

举个例子,有没有办法批量导出数据库,每行200万行?导出2mil,然后导出其他2mil,最后有10个200万行的文件?通过这种方式,我可以使用python (pandas)过滤每个文件,并且不会有内存问题。

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2020-03-16 09:03:50

2000万行并不是很多。除非每个单独的行都很大,或者您通过较慢的网络发送,否则导出应该需要几分钟,而不是几个小时。

如果你想拆分一个表,这是一个更好的复制任务,而不是pg_dump。

代码语言:javascript
运行
复制
psql -c 'copy pgbench_accounts to stdout'|split -l 2000000

您可以在终端命令提示符下输入它,就像使用pg_dump一样。它将像pg_dump一样发送表的数据(除了它只发送数据,并且只发送一个表),但是随后linux命令split将其分解成文件,每个文件有2e6行。

嗯,我看你在你的帖子里没有特别提到pg_dump。你说“出口”是什么意思?我以为你指的是pg_dump。

票数 1
EN

Stack Overflow用户

发布于 2020-03-16 03:45:58

您可以使用pg_dump仅提取一个或多个表,或者排除表(如果这样做会有所帮助

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60696669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档