外部数据包装器:将多个异构数据库联合为统一视图
通过FDW连接MySQL、MongoDB和CSV文件,实现跨源事务。 · 难度:入门 · +10XP
外部数据包装器:将多个异构数据库联合为统一视图
典型教程只教你如何用FDW连接另一个PostgreSQL。本课扩展到多源集成:使用mysql_fdw连接MySQL表,mongo_fdw连接MongoDB集合,并利用file_fdw读取CSV日志。你将学习如何创建异构视图,并通过postgres_fdw的pushdown特性将过滤条件下推到远程执行。重点讲解事务边界——如何利用IMPORT FOREIGN SCHEMA批量导入远程表结构。
-- 创建到MySQL的外部服务器
CREATE SERVER mysql_server FOREIGN DATA WRAPPER mysql_fdw
OPTIONS (host 'db1', port '3306');
-- 映射用户
CREATE USER MAPPING FOR current_user SERVER mysql_server
OPTIONS (username 'readonly', password 'secret');
-- 导入远程表
IMPORT FOREIGN SCHEMA public FROM SERVER mysql_server INTO public;
-- 跨源查询
SELECT * FROM local_table
UNION ALL
SELECT * FROM mysql_table;