当前位置:首页Postgresql 9.3外部数据封装的新功能 举报文章

Postgresql 9.3外部数据封装的新功能

作者:admin    来源:用户投稿    时间:2015.6.11   

  这周postgresql发布了9.3正式版,该版本包含可写的外部数据封装、数据页 checksums、快速的故障转移以及 streaming-only remastering 等等。很荣幸,公司第一时间让我试下外部数据分装可写的这个功能。原来postgresql 9提供可远程读取数据库的功能,现在正是加入远程可写。所以通过fdw(Foreign Data Wrappers),简单讲可以让我们在本地数据库操作远程数据库了。这和之前介绍的dblink有相似之处,但是fdw提供更多透明和标准的语法,而且性能也比dblink好。

  第一步:安装postgres_fdw扩展

  postgres=# create extension postgres_fdw;

  如果提示“CREATE EXTENSION”,说明安装成功。

  第二步:创建远程数据库服务器

  //先在远程数据库vm05中新建数据库zhang和数据表world。

  postgres=# create database zhang ;

  postgres=# c zhang

  zhang=# create table world (greeting text) ;

  //然后psql登陆本地数据库创建vm05-zhang

  postgres=# create server vm05_zhang foreign data wrapper postgres_fdw options (host '192.168.0.235',dbname 'zhang',port '3500') ;

  create server命令语法:

  CREATE SERVER server_name [ TYPE 'server_type' ] [ VERSION 'server_version' ] FOREIGN DATA WRAPPER fdw_name [ OPTIONS ( option 'value' [, ... ] ) ]

  server_name:远程数据库的名称,在一个数据库中必须是唯一的。

  server_type、server_version:可选,可能对一些外部数据封装有用。

  fdw_name:外部数据分装名字,这里我们是postgres_fdw。

  options:其他可选参数,包括数据库地址,数据库名称和端口等。

  第三步:创建映射用户

  CREATE USER MAPPING指定连接远程数据库的用户,这些数据和创建的foreign server远程服务器一起被封装起来。拥有foreign server权限的用户可以创建映射用户。

  postgres=# create user mapping FOR PUBLIC server vm05_zhang options (password 'xxx') ;

  create user mapping命令语法:

  CREATE USER MAPPING FOR { user_name | USER | CURRENT_USER | PUBLIC }

  SERVER server_name

  [ OPTIONS ( option 'value' [ , ... ] ) ]

  user_name:现有的用户映射到远程server。USER和CURRENT_USER匹配当前的用户,没有特定用户可用就可以选择PUBLIC。

  server_name:当前需要用户映射到的远程数据库服务器名,第二步已经创建。

  options:其他可选像,包括用户名、密码等。

  例如:CREATE USER MAPPING FOR bob SERVER foo OPTIONS (user ‘bob’, password ‘secret’);

  第四步:创建远程表

  这里需要注意,创建表的列要和远程表的列要匹配,类型最好是一样。远程表的列可以少些,顺序可以不重要,因为fdw是根据名字来匹配的。

  postgres=# create foreign table vm05_world (greeting text) server vm05_zhang options (table_name 'world') ;

  第五步:查看效果

  //在vm05_world表中插入三条数据

  postgres=# insert into vm05_world values ('Take me to your leader') ;

  postgres=# insert into vm05_world values ('Take me to your leader.........') ;

  postgres=# insert into vm05_world values ('Hello World!!!!!') ;

  //查看vm05_world表中数据

  postgres=# select * from vm05_world ;

  greeting

  ---------------------------------

  Take me to your leader

  Take me to your leader.........

  Hello World!!!!!

  (3 rows)

  //其实这个是在vm05这台服务器上,我们登陆vm05查看是否有数据。

  zhang=# select * from world ;

  greeting

  ---------------------------------

  Take me to your leader

  Take me to your leader.........

  Hello World!!!!!

  (3 rows)

  可以看到插入数据成功,当然我们也可以在update和delete from表vm05_world ,如果映射的用户有这个权限的话。

  至此postgres_fdw外部数据封装可写正式测试完成,对于操作多张表很有用。总结的比较粗浅,还有不明白的可以参考postgresql的官方文档:

  https://wiki.postgresql.org/wiki/What%27s_new_in_PostgreSQL_9.3#Writeable_Foreign_Tables

好文打赏,给Ta鼓励
扫一扫用手机阅读本文
Tags:外部  数据  封装  装的  新功能  功能  
  • 相关搜索
图片推荐
    SEO的核心是用户体验OR用户忠诚度

    SEO的核心是用户体验OR用户忠诚度

    SEO优化的核心是忠诚度还是用户体验?首先我要给SEO用户体验这个词加个双引号,因为这是个概念模糊的一个词,甚至我们所理解的SEO用户体验这个词并不是真正的SEO用户体验,而是那些善于做SEO营销的人
    互联网创业:当今创业的不二之选

    互联网创业:当今创业的不二之选

    互联网的高速发展告诉我们没有事情是亘古不变的,那些自以为不会随时间而变的传统行业正在不断的被互联网冲击、占领、替代。这让我想到了万物的新陈代谢,发展的时代将会不断有胜利者涌出,互联网的发展给了我们机会
    刘永好:新希望利润比小米高 但估值低太多

    刘永好:新希望利润比小米高 但估值低太多

    新希望集团创始人、董事长刘永好  6月20日2015青岛中国财富论坛财富增长与实体经济分论坛上,新希望集团创始人、董事长刘永好表示:今天大家并不看你有多少工厂,有多少人,有多少销售,有多少利润,因为我
    浅析医疗行业搜索现状

    浅析医疗行业搜索现状

    医疗行业是个比较大的行业,对于网络方面,基本上所有的医疗重点都是抓在了搜索上面。医疗行业为搜索引擎业绩占了很大的份额,因为这种行业是比较舍得花钱的。但是羊毛出到羊身上,所以发现看病越来越贵了。下面细讲
    寻找免费的午餐 创业初期的各种省钱方法

    寻找免费的午餐 创业初期的各种省钱方法

    开源节流不仅是创业初期的经营要素,无论你公司今后的市值做到多大,省钱永远是没有错的。  网上有很多宏观的文章,宏观的东西我不多费口舌,乐蕃我比较喜欢实在的东西。  下面我就来和大家分享一下在创业初期有
    蜜芽宝贝宣布与早教连锁红黄蓝组建合资公司

    蜜芽宝贝宣布与早教连锁红黄蓝组建合资公司

    DoNews 4月21日消息(记者 向霜)进口母婴电商平台蜜芽宝贝宣布与儿童教育品牌红黄蓝教育机构组建合资公司,通过红黄蓝在全国300多个城市的1000多家线下园来拓展线下渠道,蜜芽宝贝和红黄蓝创始人
    只有1000家客户的公司也能上市 秘诀是赢得大客户

    只有1000家客户的公司也能上市 秘诀是赢得大客户

    左凌烨喜欢看电影和制作遥控模型。一次经纬内部聚会,他说如果自己不做投资,可能会去研究天体物理或者做建筑师。  大概至今还没顾得上华丽转身,所以这次左凌烨仍以主导投资过猎聘网、土巴兔、找钢网、猎豹、北森
    马云:公司最难过的关是创始人的境界

    马云:公司最难过的关是创始人的境界

    文/马云  绝大部分公司创始者天性害怕失去对公司的控制权,这无可厚非,因为各种不安全感总是围绕着创业者,对未来的不安全感是他们成功的主要因素之一。尤其是越成功的创始老板会越来越有莫名的担心。  创始人
你是怎么知道非凡网赚网的?
  •   
  • 联系QQ 邮箱:976382653@qq.com 微信:976382653
    在线留言
    发布软文
    广告自助购
    文章调用
    常见问题
    保存到桌面