113 字
1 分钟
PostgreSQL 外部表(FDW)跨库查询配置
PostgreSQL 不支持跨库查询,可通过 Foreign Data Wrapper(FDW) 访问外部数据库的表,实现类似跨库查询的效果。
一、安装扩展
-- 在本地数据库执行CREATE EXTENSION IF NOT EXISTS postgres_fdw;二、创建远程服务器
CREATE SERVER remote_serverFOREIGN DATA WRAPPER postgres_fdwOPTIONS ( host '192.168.1.100', dbname 'target_db', port '5432');三、创建用户映射
CREATE USER MAPPING FOR postgresSERVER remote_serverOPTIONS ( user 'postgres', password 'remote-password');四、导入远程表
-- 导入单个表IMPORT FOREIGN SCHEMA publicLIMIT TO (table_name)FROM SERVER remote_serverINTO public;
-- 导入多个表IMPORT FOREIGN SCHEMA publicLIMIT TO (table1, table2, table3)FROM SERVER remote_serverINTO public;
-- 导入整个 schema(慎用)IMPORT FOREIGN SCHEMA publicFROM SERVER remote_serverINTO public;导入后即可像本地表一样使用。
五、管理命令
-- 查看所有外部服务器SELECT * FROM pg_foreign_server;
-- 查看导入的外部表SELECT * FROM information_schema.foreign_tables;
-- 修改服务器连接信息ALTER SERVER remote_serverOPTIONS (SET host '192.168.1.200', SET port '5432', SET dbname 'new_db');
-- 修改用户映射密码ALTER USER MAPPING FOR CURRENT_USERSERVER remote_serverOPTIONS (SET password 'new-password');
-- 增加批量获取行数(优化性能)ALTER SERVER remote_server OPTIONS (ADD fetch_size '50000');
-- 删除外部表DROP FOREIGN TABLE table_name;
-- 删除用户映射DROP USER MAPPING FOR postgres SERVER remote_server;
-- 删除服务器(CASCADE 同时删除依赖的外部表)DROP SERVER remote_server CASCADE;
-- 删除扩展DROP EXTENSION postgres_fdw; 分享
如果这篇文章对你有帮助,欢迎分享给更多人!
PostgreSQL 外部表(FDW)跨库查询配置
https://blog.olinl.com/posts/postgresql-fdw/ 相关文章 智能推荐
1
PostgreSQL 安装指南(Ubuntu / Docker)
服务与应用运维 介绍在 Ubuntu 上二进制安装 PostgreSQL 14 及使用 Docker Compose 部署的方式,包括修改数据目录和密码等基础配置。
2
PostgreSQL 远程访问与数据目录迁移
服务与应用运维 介绍 PostgreSQL 的远程访问配置(pg_hba.conf / postgresql.conf)以及将数据目录从默认路径迁移到自定义路径的操作步骤。
3
PostgreSQL 备份与恢复
服务与应用运维 介绍使用 pg_dumpall 和 pg_dump 对 PostgreSQL 进行全量备份与单表备份,以及在实体机和 Docker 容器中的恢复方法。
4
CentOS 安装 MongoDB 3.4 并配置认证
服务与应用运维 在 CentOS 上通过 YUM 仓库安装 MongoDB 3.4,配置外部访问与用户密码认证,适合内网开发环境快速搭建。
5
CentOS 编译安装 Redis 6.2 并配置 Systemd 服务
服务与应用运维 从源码编译安装 Redis 6.2,配置密码、外部访问与后台运行,并注册为 systemd 服务实现开机自启。
