我是靠谱客的博主 大胆台灯,最近开发中收集的这篇文章主要介绍通过postgres_fdw实现跨库访问,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

瀚高数据库
目录
文档用途
详细信息

介绍Postgresql跨库访问中postgres_fdw的使用方法

详细信息
PostgreSQL 外部数据包装器,即 PostgreSQL Foreign Data Wrappers,是现实数据库使用场景中一个非常实用的功能,PostgreSQL 的 FDW 类似于 Oracle 的 dblink,DB2 的 Federation,使用其可以将本地数据库与外部数据库建立连接,从而可以像操作本地数据一样来操作外部数据。

postgrs_fdw是PostgreSQL 外部数据包装器中的一种,可用于访问储存在外部postgresql数据库的数据。

使用步骤如下:

1、使用 CREATE EXTENSION 来安装 postgres_fdw扩展。

2、使用 CREATE SERVER 创建一个外部服务器对象,它用来表示你想连接的每一个远程数据库。指定除了 user 和 password 之外的连接信息作为该服务器对象的选项。

3、使用 CREATE USER MAPPING 创建一个用户映射,每一个用户映射都代表你想允许一个数据库用户访问一个外部服务器。指定远程用户名和口令作为用户映射的 user 和 password 选项。

4、为每一个你想访问的远程表使用 CREATE FOREIGN TABLE 或者 IMPORT FOREIGN SCHEMA 创建一个外部表。外部表的列必须匹配被引用的远程表。但是,如果你在外部表对象的选项中指定了正确的远程名称,你可以使用不同于远程表的表名和/或列名。

示例

1、在数据库A创建测试表添加测试数据。

create table table1 (id int, crt_Time timestamp, info text, c1 int);

在这里插入图片描述

insert into table1 select generate_series(1,1000000), clock_timestamp(), md5(random()::text), random()*1000;

在这里插入图片描述

查看插入数据量

在这里插入图片描述

2、数据库B查看表并创建扩展
在这里插入图片描述

在这里插入图片描述

查看扩展创建情况
在这里插入图片描述

3、通过fdw创建外联服务

CREATE SERVER table1 

         FOREIGN DATA WRAPPER postgres_fdw 

         OPTIONS (host '192.168.80.131', port '5432', dbname 'postgres');

在这里插入图片描述

4、创建外联用户信息

CREATE USER MAPPING FOR postgres 

 SERVER table1 

 OPTIONS (user 'postgres', password 'highgo@123');

在这里插入图片描述

5、查看外联服务

在这里插入图片描述

6、将数据库A模式中的所有表在数据库B中创建外联表

在这里插入图片描述

查看数据库B的外联表
在这里插入图片描述

在这里插入图片描述

7、创建单个外联表

CREATE FOREIGN TABLE table2 ( 

    id int, crt_Time timestamp, info text, c1 int)  

          SERVER table1 

        OPTIONS (schema_name 'public', table_name 'table1');

查看数据库B的外联表
在这里插入图片描述

在这里插入图片描述

最后

以上就是大胆台灯为你收集整理的通过postgres_fdw实现跨库访问的全部内容,希望文章能够帮你解决通过postgres_fdw实现跨库访问所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部