Centos7下PostgreSQL file_fdw与postgres_fdw的使用

1、file_fdw的使用

1.1、file_fdw的介绍

   file_fdw模块提供外部数据包装器file_fdw,可用于访问服务器文件系统中的数据文件,或执行服务器上的程序并读取其输出。数据文件或程序输出必须采用可以读​​取的格式COPY FROM;目前,对数据文件的访问权限是只读的。

使用此包装器创建的外表可以具有以下选项:

filename

指定要读取的文件。必须是绝对路径名。无论是filename或 program必须指定,但不能两者兼得。

program

指定要执行的命令。将读取此命令的标准输出,就像COPY FROM PROGRAM使用它一样。无论是 programfilename必须指定,但不能两者兼得。

format

指定数据格式,同样COPYFORMAT 选项。

header

指定数据是否具有标题行,相同COPYHEADER选项。

delimiter

指定数据分隔符,与COPY's DELIMITER选项相同 。

quote

指定数据引号字符,相同 COPYQUOTE选项。

escape

指定数据转义字符,相同 COPYESCAPE选项。

null

指定数据空字符串,一样COPYNULL 选择。

encoding

指定数据编码,一样COPYENCODING选择。

请注意,虽然COPY允许HEADER指定诸如没有相应值的选项,但外表选项语法要求在所有情况下都存在一个值。要激活 COPY通常没有值的选项,您可以传递值TRUE,因为所有这些选项都是布尔值。

1.2、添加file_fdw扩展。

postgres=# create extension file_fdw ;

出现上述错误,先进入文件路径/usr/pgsql-10/share/extension/, 发现下面的确没有file_fdw.control这个文件,于是怀疑是否有些相关的包文件未安装齐全,那么采取暴力一点的办法,把所有有关postgresql10的安装包全部装上,

[root@baiduyun extension]# yum install postgresql10*

安装完后,查看:

再次执行,成功

postgres=# create extension file_fdw ;

postgres=# \dx   --查看所有的外部扩展

1.3、测试file_fdw

请参考:https://blog.csdn.net/luojinbai/article/details/45673113

 

2、postgres_fdw的使用

以下是使用创建外表的示例 postgres_fdw。首先安装扩展:

CREATE EXTENSION postgres_fdw;

然后使用CREATE SERVER创建外部服务器。在这个例子中,我们希望在主机侦听端口上连接到PostgreSQL服务器。建立连接的数据库在远程服务器上命名:xxx.xx.xxx.xx5432foreign_db

CREATE SERVER foreign_server
FOREIGN DATA WRAPPER postgres_fdw
OPTIONS (host 'xxx.xx.xxx.xx', port '5432', dbname 'foreign_db');

还需要使用CREATE USER MAPPING定义的用户映射,以标识将在远程服务器上使用的角色,options里是远程服务器上用户名和密码。

CREATE USER MAPPING FOR local_user
        SERVER foreign_server
        OPTIONS (user 'foreign_user', password 'password');

现在可以使用CREATE FOREIGN TABLE创建外部。在此示例中,我们希望访问some_schema.some_table远程服务器上指定的表。它的本地名称是foreign_table

CREATE FOREIGN TABLE foreign_table (
        id integer NOT NULL,
        data text
)
        SERVER foreign_server
        OPTIONS (schema_name 'some_schema', table_name 'some_table');

声明的列的数据类型和其他属性CREATE FOREIGN TABLE与实际的远程表匹配是至关重要的。列名也必须匹配,除非您将column_name选项附加到各列以显示它们在远程表中的命名方式。在许多情况下,使用IMPORT FOREIGN SCHEMA比手动构建外部表定义更可取。

参考:https://www.postgresql.org/docs/current/postgres-fdw.html

2.1、postgres_fdw的测试

请参考:https://blog.csdn.net/liyuhui195134/article/details/78972741

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值