国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

18143453325 在線咨詢 在線咨詢
18143453325 在線咨詢
所在位置: 首頁 > 營銷資訊 > 建站知識 > Postgresql 9.3外部數(shù)據(jù)封裝的新功能

Postgresql 9.3外部數(shù)據(jù)封裝的新功能

時間:2022-08-06 23:03:01 | 來源:建站知識

時間:2022-08-06 23:03:01 來源:建站知識

這周postgresql發(fā)布了9.3正式版,該版本包含可寫的外部數(shù)據(jù)封裝、數(shù)據(jù)頁 checksums、快速的故障轉移以及 streaming-only remastering 等等。很榮幸,公司第一時間讓我試下外部數(shù)據(jù)分裝可寫的這個功能。原來postgresql 9提供可遠程讀取數(shù)據(jù)庫的功能,現(xiàn)在正是加入遠程可寫。所以通過fdw(Foreign Data Wrappers),簡單講可以讓我們在本地數(shù)據(jù)庫操作遠程數(shù)據(jù)庫了。這和之前介紹的dblink有相似之處,但是fdw提供更多透明和標準的語法,而且性能也比dblink好。

第一步:安裝postgres_fdw擴展

postgres=# create extension postgres_fdw;

如果提示“CREATE EXTENSION”,說明安裝成功。

第二步:創(chuàng)建遠程數(shù)據(jù)庫服務器

//先在遠程數(shù)據(jù)庫vm05中新建數(shù)據(jù)庫zhang和數(shù)據(jù)表world。

postgres=# create database zhang ;

postgres=# c zhang

zhang=# create table world (greeting text) ;

//然后psql登陸本地數(shù)據(jù)庫創(chuàng)建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:遠程數(shù)據(jù)庫的名稱,在一個數(shù)據(jù)庫中必須是唯一的。

server_type、server_version:可選,可能對一些外部數(shù)據(jù)封裝有用。

fdw_name:外部數(shù)據(jù)分裝名字,這里我們是postgres_fdw。

options:其他可選參數(shù),包括數(shù)據(jù)庫地址,數(shù)據(jù)庫名稱和端口等。

第三步:創(chuàng)建映射用戶

CREATE USER MAPPING指定連接遠程數(shù)據(jù)庫的用戶,這些數(shù)據(jù)和創(chuàng)建的foreign server遠程服務器一起被封裝起來。擁有foreign server權限的用戶可以創(chuàng)建映射用戶。

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:現(xiàn)有的用戶映射到遠程server。USER和CURRENT_USER匹配當前的用戶,沒有特定用戶可用就可以選擇PUBLIC。

server_name:當前需要用戶映射到的遠程數(shù)據(jù)庫服務器名,第二步已經(jīng)創(chuàng)建。

options:其他可選像,包括用戶名、密碼等。

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

第四步:創(chuàng)建遠程表

這里需要注意,創(chuàng)建表的列要和遠程表的列要匹配,類型最好是一樣。遠程表的列可以少些,順序可以不重要,因為fdw是根據(jù)名字來匹配的。

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

第五步:查看效果

//在vm05_world表中插入三條數(shù)據(jù)

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表中數(shù)據(jù)

postgres=# select * from vm05_world ;

greeting

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

Take me to your leader

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

Hello World!!!!!

(3 rows)

//其實這個是在vm05這臺服務器上,我們登陸vm05查看是否有數(shù)據(jù)。

zhang=# select * from world ;

greeting

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

Take me to your leader

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

Hello World!!!!!

(3 rows)

可以看到插入數(shù)據(jù)成功,當然我們也可以在update和delete from表vm05_world ,如果映射的用戶有這個權限的話。

至此postgres_fdw外部數(shù)據(jù)封裝可寫正式測試完成,對于操作多張表很有用。總結的比較粗淺,還有不明白的可以參考postgresql的官方文檔:

關鍵詞:功能,外部,數(shù)據(jù)

74
73
25
news

版權所有? 億企邦 1997-2022 保留一切法律許可權利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點擊下載Chrome瀏覽器
關閉