我在AWS服务器端点中有两个PostgreSQL数据库 db1 =源数据库和 db2 =目标数据库。对于 db1 ,我只有读取权限,对于 db2 ,我有读写权限。 db1是生产数据库有一个名为'public.purchases'的表,我的任务是逐步将 db1 中'public.purchases'表中的所有数据转换为'< em>在 db2 中新建表'(让我将表称为'public.purchases_copy')。每次我运行脚本来执行此操作时, db2 中的“public.purchases_copy”目标表都需要在不完全重新加载表的情况下进行更新。
我的问题是什么是更有效地完成这项任务的最佳方式。我在网上做了很多研究,我发现可以通过使用'psycopg2'模块将Python连接到PostgreSQL来实现。我不是那么精通Python,如果有人帮我指出StackOverflow中链接类似问题的链接,或者指导我做什么或者如何实现或任何特定的教程,那将会很有帮助。哪个我可以参考?提前谢谢。
PostgreSQL版本:9.5 , PostgreSQL GUI使用:pgadmin 3 , 已安装Python版本:3.5
答案 0 :(得分:1)
虽然可以使用python执行此操作,但我建议您首先查看Postgres自己的模块postgres_fdw,如果您可以使用它:
postgres_fdw模块提供外来数据 包装器postgres_fdw,可用于访问存储的数据 外部的PostgreSQL服务器。
postgres docs上提供的详细信息,但具体在您设置之后,您可以:
使用CREATE FOREIGN TABLE或IMPORT FOREIGN创建外部表 SCHEMA,用于您要访问的每个远程表。的列 外表必须与引用的远程表匹配。您可以, 但是,使用与远程不同的表和/或列名称 table's,如果指定正确的远程名称作为选项 外表对象。
现在,您只需要从外表中选择SELECT即可访问数据 存储在其底层远程表中
为了简化设置,最好使用readonly db作为外部数据库。