Rus*_*her 4 postgresql replication etl
完整的 PostgreSQL newb。
我在 db1 中有 7-8 个数据视图,我需要将它们复制到不同数据库 db2 中具有匹配模式(模式?)的表中。目标数据库可能是 PostgreSQL 的同一个实例,也可能是完全不同的一个实例。
我知道使用我熟悉的数据库有 2-3 种不同的方法来实现这一点,但我对这个无能为力。有人可以为我建议一些基本策略吗?
在一个完美的世界中,我宁愿不必做任何感觉太 ETL 的事情——我宁愿做某种
SELECT FROM instance1.db1.viewname INTO instance2.db5.tablename
Run Code Online (Sandbox Code Playgroud)
然后将数据作为文本文件从视图中转储出来并重新加载到目标表中。
因为我不了解 PostgreSQL,所以我真的不知道什么是可能的。
您不需要为COPY TO. 自 PostgreSQL 8.2 起,任何查询都可以是源。
COPY (SELECT * FROM view1) TO '/var/lib/postgres/myfile1.csv';
Run Code Online (Sandbox Code Playgroud)
CREATE table tbl1 AS
SELECT * FROM view1
LIMIT 0; -- no data, just the schema.
Run Code Online (Sandbox Code Playgroud)
复制 DDL 指令并在目标数据库中创建所有表。pgAdmin是一种方便的 GUI 来执行此操作。再次删除源数据库中的空表。加载数据
COPY tbl1 FROM '/var/lib/postgres/myfile1.csv';
Run Code Online (Sandbox Code Playgroud)
转储/恢复就像@wildplasser 描述的那样,是另一种方式。
建议一次性转移其中一种方法。对于重复应用,dblink或SQL/MED (外部数据管理)可能更合适。
| 归档时间: |
|
| 查看次数: |
6669 次 |
| 最近记录: |