Foreign Data Wrapper(FDW,外部数据包装器) 是 PostgreSQL 等支持 SQL/MED(SQL Management of External Data)标准的数据库中的一项重要功能,用来在数据库内部访问和操作外部数据源,就好像它们是本地表一样。
FDW 让你在 PostgreSQL 里“挂载”其他数据库或数据文件,用 SQL 直接查询它们,而不用把数据搬进来。
SELECT / INSERT / UPDATE / DELETE(取决于 FDW 支持)-- 1. 安装 FDW 扩展
CREATE EXTENSION postgres_fdw;
-- 2. 创建外部服务器
CREATE SERVER remote_pg
FOREIGN DATA WRAPPER postgres_fdw
OPTIONS (host '192.168.1.10', dbname 'orders', port '5432');
-- 3. 用户映射
CREATE USER MAPPING FOR current_user
SERVER remote_pg
OPTIONS (user 'remote_user', password 'secret');
-- 4. 创建外部表
CREATE FOREIGN TABLE remote_orders (
id int,
amount numeric
)
SERVER remote_pg
OPTIONS (schema_name 'public', table_name 'orders');
-- 5. 像本地表一样查询
SELECT * FROM remote_orders WHERE amount > 100;
✅ 跨数据库查询(PG ↔ MySQL ↔ Oracle)
✅ 数据集成 / 数据中台
✅ 不迁移数据的情况下做报表
✅ 读取 CSV / 日志文件
✅ 构建轻量级数据仓库
| 技术 | 区别 |
|---|---|
| ETL | FDW 不复制数据 |
| dblink | FDW 更规范、可像表使用 |
| 视图 | 视图是逻辑,FDW 是物理外部 |
如果你愿意,我可以:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。