【问题标题】:Remote Postgres to Postgres data远程 Postgres 到 Postgres 数据
【发布时间】:2017-01-10 17:40:28
【问题描述】:

我现在正在做一个项目,我需要将日常数据从一个 psql 数据库加载到另一个数据库中(两个数据库都在不同的远程机器上)。 我使用的 Postgres 版本是 9.5,由于我们的基础设施,我目前正在使用 python 脚本执行此操作,虽然我想知道:

是否可以使用我可以轻松安排的 psql 命令来执行此操作?还是 python 是一种足够灵活的方法来适应未来的发展?

编辑:

主数据库包含一个直接连接到网站的后端,另一个包含一个分析系统,基本上只需要读取主数据库的数据并存储它的未来转换。 延迟不是很重要,重要的是可靠性和简单性。

【问题讨论】:

  • 第二个 postgres 盒子的状态是什么?是备份吗?您是否对该框上的数据进行其他写入或修改?对于两个盒子之间的数据延迟,什么样的延迟是可以接受的?
  • 添加了对 tge 问题的编辑
  • 你考虑过设置一个读从机吗? postgresql.org/docs/9.5/static/…
  • 有道理,但我更喜欢没有冗余数据源的方法,因为这两个数据库都将被视为用于生产。
  • 我的意思是您可以将您的分析数据库设置为读取从站。当我过去为夜间备份执行此操作时,我会在某个时间点(比如太平洋时间凌晨 2 点)重新启用读取复制,一旦读取从属服务器赶上,我将禁用读取复制。

标签: python postgresql remote-access


【解决方案1】:

当然,如果需要,您可以使用 psql 和 ssh 连接。

这种方法(或使用 pg_dump)可以有效地减少延迟的影响。

但是请注意,SQL insert...values 命令可以在单个命令中插入多行。当我使用 python 脚本迁移数据时,我构建了插入命令,可插入多达 1000 行,从而将延迟减少 1000 倍,

另一个值得考虑的方法是dblink,它允许 postgres 直接查询远程 postgres,因此您可以从远程数据库中进行选择并将结果插入到本地表中。

Postgres-FDW 可能也值得一看。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-04
    • 1970-01-01
    • 2023-03-24
    • 2014-04-19
    • 1970-01-01
    • 1970-01-01
    • 2014-07-06
    • 2011-07-18
    相关资源
    最近更新 更多