我想在两个postgres服务器之间复制庞大的数据集。具体来说,我想:
我了解postgres_fdw
不能用于完成此任务,因为它将整个表复制到新表(不合并所选字段以形成新表),并且源表和目标表都必须具有匹配的列号。 / p>
我的源数据库服务器是一个远程ssh,要复制的数据集约为5GB。
有建议完成我的任务吗?
答案 0 :(得分:0)
想法:
当主机服务器写入暂存表时,它将设置created_ts
。
外部服务器成功读取数据时,它将设置xchange_ts
。
使用外部数据包装程序,您可能不需要xchange_err
字段,但是这样做的目的是报告导入失败。
CREATE TABLE staging
( id SERIAL PRIMARY KEY
, created_ts TIMESTAMPTZ
, xchange_ts TIMESTAMPTZ
, xchange_err TEXT DEFAULT NULL
, colA type_datatype
, colB type_datatype
);
我实际上没有使用过postgres_fdw
,但我想外部表将被定义为这样。
CREATE FOREIGN TABLE staging
( id INTEGER PRIMARY KEY
, created_ts TIMESTAMPTZ
, xchange_ts TIMESTAMPTZ
, xchange_err TEXT DEFAULT NULL
, colA type_datatype
, colB type_datatype
)
SERVER <server_name>
OPTIONS (schema_name '<schema_name>', table_name 'staging');