【实战】PostgreSQL 使用扩展访问外部数据源
前言
PostgreSQL 设计之处是支持扩展的,PostgreSQL 源码目录下有大量扩展,下面我们主要介绍file_fdw
一、部署file_fdw扩展工具
在 PostgreSQL 源码目录的"contrib/file_fdw" 目录中,编译并安装 file_fdw 扩展。
cd $PGHOME/postgresql-14.11/contrib/file_fdw
make
make install
修改配置文件,并重启
cat >> $PGDATA/postgresql.conf <<EOF
shared_preload_libraries = 'file_fdw'
EOF
pg_ctl -D $PGDATA -l logfile restart
file_fdw扩展
postgres=# create extension file_fdw;
select * from pg_extension;
二、创建基于file_fdw扩展的外部表
# 创建外部服务
postgres=# create server service_file foreign data wrapper file_fdw;
CREATE SERVER
postgres=# \des
List of foreign servers
Name | Owner | Foreign-data wrapper
--------------+----------+----------------------
service_file | postgres | file_fdw
(1 row)
# 创建基于file_fdw扩展的外部表
postgres=# create foreign table ft_emp(empo int, ename varchar(10), job varchar(10), sal int)server service_file options
(filename '/home/postgres/emp.csv', format 'csv');
CREATE FOREIGN TABLE
# 方面模拟数据
[postgres@pghost01 ~]$ cat /home/postgres/emp.csv
1,maet,sef,123
2,adfe,sdfa,434
3,adfe,wer,567
查看外部表ft_emp的数据
postgres=# select * from ft_emp;
empo | ename | job | sal
------+-------+------+-----
1 | maet | sef | 123
2 | adfe | sdfa | 434
3 | adfe | wer | 567
(3 rows)
总结
主要介绍了csv文件作为数据源的外部扩展,也可以按需添加 postgres,oracle 作为数据源的外部扩展。