PostgreSQL foreign data wrappers(FDW)是一种 PostgreSQL 扩展,它允许你在 PostgreSQL 数据库中访问和查询来自其他数据存储的数据,而无需将数据复制到 PostgreSQL 数据库中。FDW 允许 PostgreSQL 充当一个虚拟的数据集成引擎,可以透明地查询远程数据源。

要使用 foreign data wrapper,首先需要安装并启用相应的扩展。常见的 FDW 包括 postgres_fdw(用于连接到其他 PostgreSQL 数据库)、file_fdw(用于访问文件系统中的数据)和 mysql_fdw(用于连接到 MySQL 数据库)等。

以下是一个简单的例子,演示如何使用 postgres_fdw 创建一个连接到另一个 PostgreSQL 数据库的 foreign table:
-- 在目标 PostgreSQL 数据库中创建一个服务器
CREATE SERVER remote_server
  FOREIGN DATA WRAPPER postgres_fdw
  OPTIONS (host 'remote_host', dbname 'remote_db', port '5432');

-- 创建一个用户映射,用于指定连接参数
CREATE USER MAPPING FOR local_user
  SERVER remote_server
  OPTIONS (user 'remote_user', password 'remote_password');

-- 创建一个 foreign table,映射到远程表
CREATE FOREIGN TABLE remote_table
  (id INT, name VARCHAR)
  SERVER remote_server
  OPTIONS (table_name 'remote_table');

-- 查询远程表的数据
SELECT * FROM remote_table;

上述代码中,remote_server 是一个指向远程 PostgreSQL 服务器的引用,local_user 是本地 PostgreSQL 用户,remote_table 是一个 foreign table,它映射到远程 PostgreSQL 数据库中的表。

通过使用 foreign data wrappers,PostgreSQL 提供了一种灵活的方式来整合来自不同数据源的数据,从而使得在同一个查询中可以跨多个数据存储进行联合查询。


转载请注明出处:http://www.zyzy.cn/article/detail/8430/PostgreSQL