欢迎您访问我爱IT技术网,今天小编为你分享的电脑教程是建站经验系列之:【Postgresql 9.3外部数据封装的新功能】,下面是详细的分享!
Postgresql 9.3外部数据封装的新功能
这周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
以上所分享的是关于Postgresql 9.3外部数据封装的新功能,下面是编辑为你推荐的有价值的用户互动:
相关问题:PADS 9.3制作PCB封装,尺寸标注看不见,移动元件看...
答:重新编辑这个元件的封装 改颜色 也就是说尺寸标注它在其它层上 现在就把它显示出来删掉它 这样设好颜色后它就会显示出来的了 然后你爱怎么搞就怎么搞 这样现象我们猜应该是你在做封装时尺寸标注的颜色设的是黑色所以当你用这个测量工具测量时看... >>详细
相关问题:如何在CentOS 7/6.5/6.4 下安装PostgreSQL 9.3 与 ...
答:您好,很高兴能帮助您 1.安装PostgreSQL 首先根据你的服务器架构添加PostgreSQL库: 对CentOS 6.x 32bit: rpm -Uvh http://yum.postgresql.org/9.3/RedHat/rhel-6-i386/pgdg-centos93-9.3- 1.noarch.rpm 对CentOS 6.x 64bit: rpm -Uvh http://yu... >>详细
相关问题:若要玩转大数据,在什么应用场景使用Hadoop,Postg...
答:但是由于“大数据”和“Hadoop”这两个热门词,即使很多人实际上不需要Hadoop,他们也愿意穿上“紧身衣”。 一、如果我的数据量是几百兆,Excel可能没法加载它 对于Excel软件来说的“很大的数据”并非大数据,其实还有其它极好的工具可以使用——我喜欢的P... >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
