PG FDW外部数据包装器
学会使用FDW在PostgreSQL中访问远程数据库和其他数据源 · 难度:入门 · +15XP
FDW概述
外部数据包装器(FDW)允许PostgreSQL像访问本地表一样访问远程数据库、文件或其他数据源。
安装FDW扩展
-- 安装postgres_fdw扩展
CREATE EXTENSION postgres_fdw;
-- 查看可用FDW
SELECT * FROM pg_foreign_data_wrapper;
创建远程服务器
-- 创建远程服务器
CREATE SERVER remote_server
FOREIGN DATA WRAPPER postgres_fdw
OPTIONS (host 'remote_host', port '5432', dbname 'remote_db');
-- 创建用户映射
CREATE USER MAPPING FOR current_user
SERVER remote_server
OPTIONS (user 'remote_user', password 'remote_pass');
创建外部表
-- 导入远程表结构
IMPORT FOREIGN SCHEMA public
LIMIT TO (remote_table)
FROM SERVER remote_server INTO public;
-- 或手动创建
CREATE FOREIGN TABLE local_remote_table (
id INT,
name TEXT,
value NUMERIC
) SERVER remote_server
OPTIONS (schema_name 'public', table_name 'remote_table');
使用外部表
-- 查询远程数据
SELECT * FROM local_remote_table WHERE value > 100;
-- 插入数据(需权限)
INSERT INTO local_remote_table VALUES (1, 'test', 50);
| FDW类型 | 数据源 |
|---|---|
| postgres_fdw | 远程PostgreSQL |
| mysql_fdw | MySQL数据库 |
| file_fdw | CSV文件 |
练习提示
在本地创建两个数据库,使用postgres_fdw将一个数据库的表暴露给另一个数据库。