中国投资理财-Postgresql 9.3外部数据封装的新功能

这周postgresql发布了9.3正式版,该版别包含可写的外部数据封装、数据页checksums、快速的毛病搬运以及streaming-onlyremastering等等。很侥幸,公司第一时间让我试下外部数据

这周postgresql发布了9.3正式版,该版别包含可写的外部数据封装、数据页checksums、快速的毛病搬运以及streaming-onlyremastering等等。很侥幸,公司第一时间让我试下外部数据分装可写的这个功用。本来postgresql9供给可长途读取数据库的功用,现在正是参加长途可写。所以经过fdw(ForeignDataWrappers),简略讲能够让咱们在本地数据库操作长途数据库了。这和之前介绍的dblink有相似之处,可是fdw供给更多通明和规范的语法,并且功能也比dblink好。

第一步:装置postgres_fdw扩展

postgres=#createextensionpostgres_fdw;

假如提示CREATEEXTENSION,阐明装置成功。

第二步:创立长途数据库服务器

//先在长途数据库vm05中新建数据库zhang和数据表world。

postgres=#createdatabasezhang;

postgres=#czhang

zhang=#createtableworld(greetingtext);

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

postgres=#createservervm05_zhangforeigndatawrapperpostgres_fdwoptions(host'192.168.0.235',dbname'络营销渠道”zhang',port'3500');

createserver指令语法:

CREATESERVERserver_name[TYPE'server_type'][VERSION'server_version']FOREIGNDATAWRAPPERfdw_name[OPTIONS(option'value'[,…])]

server_name:长途数据库的称号,在一个数据库中有必要是仅有的。

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

fdw_name:外部数据分装姓名,这儿咱们是postgres_fdw。

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

第三步:创立映射用户

CREATEUSERMAPPING指定衔接长途数据库的用户,这些数据和创立的foreignserver长途服务器一同被封装起来。具有foreignserver权限的用户能够创立映射用户。

postgres=#createusermappingFORPUBLICservervm05_zhangoptions(password'xxx'搜索引擎优化公司”);

createusermapping指令语法:

CREATEUSERMAPPINGFOR{user_name|USER|CURRENT_USER|PUBLIC}

SERVERserver_name

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

user_name:现有的用户映射到长途server。USER和CURRENT_USER匹配当时的用户,没有特定用户可用就能够挑选PUBLIC。

server_namezigzag目标,zigzag目标,zigzag目标:当时需求用户映射到的长途数据库服务器名,第二步现已创立。

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

例如:CREATEUSERMAPPINGFORbobSERVERfooOPTIONS(user‘bob’,password‘secret’);

第四步:创立长途表

这儿需求留意,创立表的列要和长途表的列要匹配,类型最好是相同。长途表的列能够少些,次序能够不重要,由于fdw是依据姓名来匹配的。

postgres=#createforeigntablevm05_world(greetingtext)servervm05_zhangoptions(table_name'world');

第五步:检查作用

//在vm05_world表中刺进三条数据

postgres=#insertintovm05_worldvalues('Takemetoyourleader');

postgres=#insertintovm05_worldvalues('Takemetoyourleader………');

postgres=#insertintovm05_worldvalues('HelloWorld!!!!!'新闻源”);

//检查vm05_world表中数据

postgres=#select*fromvm05_world;

greeting

———————————

Takemetoyourleader

Takemetoyourleader………

HelloWorld!!!!!

(3rows)

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

zhang=#select*fromworld;

greeting

———————————

Takemetoyourleader

Takemetoyourleader………

HelloWorld!!!!!

(3rows)

能够看到刺进数据成功,当然咱们也能够在update和deletefrom表vm05_w股票训练,股票训练,股票训练orld,假如映射的用户有这个权限的话。

至此postgres_fdw外部数据封装可写正式测验完结,关于操作多张表很有用。总结的比较浅显,还有不明白的能够参阅postgresql的官方文档:

;

内容来自:络推行蜓云tingclouds