Foreign Data Wrapper(FDW,外部数据包装器) 是 PostgreSQL 用来访问外部数据源(如 MySQL、Oracle、CSV、Redis、其他 PostgreSQL 等)的机制。下面以 PostgreSQL 为例,系统说明如何配置 FDW。
配置 FDW 通常需要以下几步:
CREATE EXTENSION IF NOT EXISTS postgres_fdw;
CREATE SERVER remote_pg
FOREIGN DATA WRAPPER postgres_fdw
OPTIONS (
host '192.168.1.100',
port '5432',
dbname 'remote_db'
);
CREATE USER MAPPING FOR current_user
SERVER remote_pg
OPTIONS (
user 'remote_user',
password 'remote_password'
);
CREATE FOREIGN TABLE foreign_users (
id int,
name text,
created_at timestamp
)
SERVER remote_pg
OPTIONS (
schema_name 'public',
table_name 'users'
);
SELECT * FROM foreign_users;
| FDW 名称 | 数据源 |
|---|---|
| postgres_fdw | 其他 PostgreSQL |
| mysql_fdw | MySQL |
| oracle_fdw | Oracle |
| file_fdw | CSV / 文本文件 |
| redis_fdw | Redis |
| mongo_fdw | MongoDB |
CREATE EXTENSION file_fdw;
CREATE SERVER csv_server
FOREIGN DATA WRAPPER file_fdw;
CREATE FOREIGN TABLE emp_csv (
id int,
name text,
dept text
)
SERVER csv_server
OPTIONS (
filename '/data/emp.csv',
format 'csv',
header 'true'
);
USAGE 权限.pgpass 或安全方式管理\des -- 查看外部服务器
\deu -- 查看用户映射
\det -- 查看外部表
错误示例:
could not connect → 网络 / 防火墙permission denied → 用户映射或权限问题如果你有具体的数据源(MySQL / Oracle / CSV / 其他 PG)或使用场景,我可以给你一份针对性配置示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。