PostgreSQL创建外部链接表

本文介绍了PostgreSQL的Foreign Data Wrapper(FDW),从9.1版本的读取功能到14版本的并行分片访问,详细阐述了FDW的原理和操作步骤。通过FDW,可以方便地连接和操作异构数据库,如oracle_fdw、mysql_fdw和file_fdw。实战配置展示了如何在PostgreSQL 9.4中创建和使用postgres_fdw插件,以实现外部数据源的连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Foreign Data Wrapper(Fdw)介绍

概述

PostgreSQL从9.1开始增加了外部表访问的功能,这时候的版本支持读取功能能,并于 2013 年在 PostgreSQL 9.3 中添加了写入支持;9.5加入IMPORT FOREIGN SCHEMA(批量导入外部数据源的外部表);9.6加入了joins和sorts;11加入了aggregates特性;14加入了并行分片访问;此外该功能功能也支持数据库直接读取数据库以外的文件,比如csv或者text等类型的文件。

PostgreSQL有各种插件能直连各种异构DB,如oracle_fdw,mysql_fdw,file_fdw等,对数据的迁移是很方便的,这是PG的扩展性较强的一个表现。

数据库 类型 许可 源码 安装包 文档 备注
PostgreSQL Native PostgreSQL git.postgresql.org documentation
Oracle Native PostgreSQL github PGXN website
MySQL Native github PGXN example FDW for MySQL
Informix Native PostgreSQL github
DB2 Native github
Firebird Native PostgreSQL github PGXN README version 1.2.3
released (2022-02)
SQLite Native PostgreSQL github PGXN README An FDW for SQLite3 (write support and several pushdown optimization)
Sybase / MS SQL Server Native github PGXN An FDW for Sybase and Microsoft SQL server
MonetDB Native github

foreign data wrapper本质就是一个代理服务(回调函数),它并不是将远端数据直接拷贝到本地,而仅仅是一个统一入口而已(本地数据库中仅仅有远端数据库的一张表结构),最终数据来源于远端数据库表。
在这里插入图片描述

操作步骤

  • 向PG安装某个数据源的FDW扩展;
  • 使用CREATE FOREIGN DATA WRAPPER语句创建该数据源的FDW对象;
  • 使用CREATE SERVER语句创建该数据源的服务器对象;
  • 使用CREATE USER MAPPING语句创建外部数据源用户与PG用户的映射关系(这一步是可选的。比如外部数据源根本没有权限控制时,也就无需创建USER MAPPING了);
  • 使用CREATE FOREIGN TABLE语句创建外部表。

实战配置

一、环境:

PostgreSQL 9.4

创建postgres_fdw插件
CREATE EXTENSION postgres_fdw;

二、使用过程 :

begin;  
-- 括号里的三个参数,分别是dcygzpt_db(要连接的表)的ip、端口和数据库名称
--DROP SERVER IF EXISTS dcygzpt_db;
CREATE SERVER dcygzpt_db FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host 'xxxx', port '5432', dbname 'sd_gzpt_cq');
CREATE S
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值