PostgreSQL创建外部链接表

PostgreSQL创建外部链接表

PostgreSQL从9.1开始增加了外部表访问的功能,这个功能就是数据库直接读取数据库以外的文件,比如csv或者text等类型的文件,暂时不支持DML。

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

一、环境:
PostgreSQL 11.5

创建postgres_fdw插件

CREATE EXTENSION postgres_fdw;

二、使用过程 :

begin;  
-- 括号里的三个参数,分别是timescaledb(要连接的表)的ip、端口和数据库名称
CREATE SERVER timescale_db FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host '10.10.1.1', port '5432', dbname 'postgres');
-- 括号里的两个参数,分别是timescaledb(要连接的表)数据库的用户名、密码
create user mapping for postgres server timescale_db options(user 'postgres', password '123456');

--创建相关表框架
--DROP FOREIGN TABLE tb_fdw_timescale_XXX;
CREATE FOREIGN TABLE tb_fdw_timescale_XXX 
 (
  time timestamp(6),
  code varchar(36) ,
  value numeric(12,2) ,
  fino int4 ,
  create_time timestamp(6),
  range char(1)
 )
 server timescale_db 
 options (table_name 'tb_ss_emp');  --指定连接的外部表名

commit;

三、查验:

--查看外部表连接情况
select * from pg_foreign_server;
--级联删除外部表
drop SERVER timescale_db CASCADE;

四、总结:
1. 外部表实际不存储数据,只是一张表结构;

2. 9.2版本比9.1版本多了option的选择,9.3又多了collate一些排序的补充,功能进一步完善,现在已有约束default普通表的应有功能;

3. 实用性,对定期的数据抽取但无需入库检查是很方便的,既减少了数据存储,像基于postgresql的greenplum的数据导入导出就非常实用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值