PG FDW外部数据包装器
学习使用FDW连接远程PostgreSQL或其他数据库 · 难度:入门 · +15XP
FDW简介
外部数据包装器(Foreign Data Wrapper)允许PostgreSQL直接查询其他数据库(包括异构数据库)中的表,仿佛它们是本地表一样。
安装与扩展
CREATE EXTENSION postgres_fdw; -- 连接远程PostgreSQL
CREATE EXTENSION mysql_fdw; -- 连接MySQL(需安装)配置步骤
1. 创建外部服务器
CREATE SERVER remote_server
FOREIGN DATA WRAPPER postgres_fdw
OPTIONS (host '192.168.1.200', port '5432', dbname 'remote_db');2. 创建用户映射
CREATE USER MAPPING FOR current_user
SERVER remote_server
OPTIONS (user 'remote_user', password 'secret');3. 创建外表
CREATE FOREIGN TABLE remote_orders (
id INTEGER,
customer_name TEXT,
amount NUMERIC
) SERVER remote_server
OPTIONS (schema_name 'public', table_name 'orders');查询外表
SELECT * FROM remote_orders WHERE amount > 1000;性能优化
使用IMPORT FOREIGN SCHEMA批量导入表结构。可设置fetch_size控制批量获取行数。
练习提示
在两个PostgreSQL实例间创建FDW,实现跨库JOIN查询。