首页 > 其他分享 >通过postgres_fdw实现跨库访问

通过postgres_fdw实现跨库访问

时间:2022-12-05 17:37:06浏览次数:37  
标签:table1 postgres 跨库 数据库 外联 fdw CREATE

瀚高数据库

目录

文档用途

详细信息

 

文档用途

介绍 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);

通过postgres_fdw实现跨库访问_数据库

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

通过postgres_fdw实现跨库访问_数据库_02

查看插入数据量

通过postgres_fdw实现跨库访问_数据库_03

2、数据库 B 查看表并创建扩展

通过postgres_fdw实现跨库访问_服务器_04

 

通过postgres_fdw实现跨库访问_数据库_05

查看扩展创建情况

通过postgres_fdw实现跨库访问_服务器_06

3、通过 fdw 创建外联服务

CREATE SERVER table1 

FOREIGN DATA WRAPPER postgres_fdw

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

通过postgres_fdw实现跨库访问_PostgreSQL_07

4、创建外联用户信息

CREATE USER MAPPING FOR postgres 

SERVER table1

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

通过postgres_fdw实现跨库访问_数据库_08

 

5、查看外联服务

 

通过postgres_fdw实现跨库访问_数据库_09

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

 

通过postgres_fdw实现跨库访问_服务器_10

查看数据库 B 的外联表

通过postgres_fdw实现跨库访问_服务器_11

 

通过postgres_fdw实现跨库访问_服务器_12

7、创建单个外联表

CREATE FOREIGN TABLE table2 ( 

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

SERVER table1

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

通过postgres_fdw实现跨库访问_服务器_13

查看数据库 B 的外联表

通过postgres_fdw实现跨库访问_数据库_14

 

通过postgres_fdw实现跨库访问_服务器_15

标签:table1,postgres,跨库,数据库,外联,fdw,CREATE
From: https://blog.51cto.com/u_13646489/5913093

相关文章

  • mysql8 postgresql 递归查询一条SQL支持帝国查询
    创建表点击查看代码createtabletb(idvarchar(3),pidvarchar(3),namevarchar(10));insertintotbvalues('002',0,'浙江省');insertintotbvalues......
  • postgresql序列基本操作
    1、创建序列CREATESEQUENCEifnotexiststest_mergetable_id_seqINCREMENT1MINVALUE1MAXVALUE999999999START1CACHE1;//或者:createsequenceifnotexis......
  • Kettle:跨库(SQLServer->PostgreSQL)同步多张表数据的详细设计过程
    〇、参考地址1、多个Excel实现同步​​https://www.wangt.cc/2021/05/kettle%E5%A4%9A%E4%B8%AA%E8%A1%A8%E4%B8%80%E8%B5%B7%E8%BF%81%E7%A7%BB-%E9%80%9A%E8%BF%87%E9%85%......
  • centos Postgresql11升级Postgresql14
    1.下载pgsql14的源码包进行安装yuminstallpostgresql14–yyuminstallpostgresql14-server-y附带安装yuminstallpostgresql14-libsyuminstallpostgresql14-c......
  • Linux 上安装 PostgreSQL
    打开PostgreSQL官网​​https://www.postgresql.org/​​,点击菜单栏上的DownloadLinux我们可以看到支持Ubuntu和RedHat等各个平台,点击具体的平台链接,即可查看安装......
  • Mysql到postgres的数据迁移
    1.我有mysql8的表结构和表数据的sql文件2.服务器上重装了系统,并且不再使用mysql而是使用postgres3.服务器安装docker,然后用dockerpullmysql8,启动docker的mysql,把sql文......
  • PostgreSQL的常用DDL操作语句
    1.建表、删除表的DDL语句CREATETABLEIFNOTEXISTS"my_table"(idSERIALNOTNULL,namevarchar(255)NOTNULL,agevarchar(255)NOTNULL,drint2DEF......
  • 5分钟搞定 MySQL 到 Greenplum / PostgreSQL 数据迁移同步
    简述本文主要介绍如何使用CloudCanal构建一条MySQL到Greenplum/PostgreSQL的数据同步链路。支持版本源端MySQL支持的版本为:5.6、5.7、8.X对端PostgreSQL支......
  • How we upgraded PostgreSQL at GitLab.com
    HowweupgradedPostgreSQLatGitLab.comJoseFinotto ·Sep11,2020 · 15minread · LeaveacommentWeteamedupwith OnGres to performamajo......
  • PostgreSQL死锁案例分析(二)
    PostgreSQL死锁案例分析(二)原作者:陈雁飞创作时间:2019-09-2615:28:14+08  采编:wangliyun发布时间:2019-09-2708:08:14欢迎大家踊跃投稿,投稿信箱:press@postgres.......