加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

PostgreSQL学习篇14.1 SQL/MED

发布时间:2020-12-13 16:58:37 所属栏目:百科 来源:网络整理
导读:SQL/MED是sql语言中管理外部数据的一个扩展标准。MED:management of external data。它通过定义一个外部数据包装器和数据连接类型来管理外部数据。9.1开始提供对SQL/MED的支持,通过SQL/MED可以连接到各种异构数据库或其他PostgreSQL数据库。其相当于一套连
SQL/MED是sql语言中管理外部数据的一个扩展标准。MED:management of external data。它通过定义一个外部数据包装器和数据连接类型来管理外部数据。9.1开始提供对SQL/MED的支持,通过SQL/MED可以连接到各种异构数据库或其他PostgreSQL数据库。其相当于一套连接其他数据源的框架和标准。
在SQL/MED标准中,实现了一下四类数据库对象来访问外部数据源:
foreign data wrapper:外部数据包装器,FDW。相当于定义外部数据驱动
server:外部数据服务器,相当于定义一个外部数据源,需要制定外部数据源的FDW
user mapping:用户映射,主要把外部数据源的用户映射到本地用户,用于控制权限
foreign table:外部表,把外部数据源映射成数据库中的一张外部表

FDW:  --使用之前,需要到crontab下,make  make install
创建FDW示例:、
postgres=# create extension file_fdw;
CREATE EXTENSION
postgres=# create server file_fdw_server foreign data wrapper file_fdw;
CREATE SERVER
postgres=# create foreign table passwd(
postgres(# username text,postgres(# pass text,postgres(# uid int4,postgres(# gid int4,postgres(# gecos text,postgres(# home text,postgres(# shell text
postgres(# ) server file_fdw_server
postgres-# options (format 'text',filename '/etc/passwd',delimiter ':',null '');
CREATE FOREIGN TABLE
postgres=# select * from passwd limit 5;
 username | pass | uid | gid | gecos  |      home      |     shell     
----------+------+-----+-----+--------+----------------+---------------
 root     | x    |   0 |   0 | root   | /root          | /bin/bash
 bin      | x    |   1 |   1 | bin    | /bin           | /sbin/nologin
 daemon   | x    |   2 |   2 | daemon | /sbin          | /sbin/nologin
 adm      | x    |   3 |   4 | adm    | /var/adm       | /sbin/nologin
 lp       | x    |   4 |   7 | lp     | /var/spool/lpd | /sbin/nologin
(5 rows)

postgres=#

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读