PG FDW外部数据包装器
通过FDW连接外部数据源,实现跨数据库查询。 · 难度:入门 · +15XP
FDW概述
Foreign Data Wrapper(FDW)允许PostgreSQL访问远程数据库或文件中的数据,如同本地表。常见实现:postgres_fdw、file_fdw。
使用postgres_fdw
CREATE EXTENSION postgres_fdw;
CREATE SERVER remote_server
FOREIGN DATA WRAPPER postgres_fdw
OPTIONS (host 'remote_host', dbname 'remote_db', port '5432');
CREATE USER MAPPING FOR current_user
SERVER remote_server
OPTIONS (user 'remote_user', password 'remote_pass');
CREATE FOREIGN TABLE remote_orders (
id INT,
amount NUMERIC
) SERVER remote_server
OPTIONS (schema_name 'public', table_name 'orders');
查询外部表
SELECT * FROM remote_orders WHERE amount > 100;PG会将条件下推至远程执行。
| FDW类型 | 数据源 |
|---|---|
| postgres_fdw | 其他PG数据库 |
| mysql_fdw | MySQL |
| file_fdw | CSV文件 |
练习提示
配置file_fdw读取一个CSV文件,测试查询。