用PostgreSQL FDW做敏捷式数据融合

2020-06-17 00:00:00 数据 数据库 编译 模块 安装

尝试过用Kettle做数据融合,但当数据量大的时候kettle严重依赖网速,速度慢。而且依赖可视化工具来做数据融合除了问题调试也比较麻烦,这些因素累加在一起让数据融合变成了一个比较重的工作,影响整个数据团队的工作效率。而PostgreSQL FDW模块可以直接操作其他数据库中的数据,这让更敏捷的数据融合成为了可能。

FDW是foreign-data wrapper的缩写,见名知意,就是将外部数据包装为sql可操作数据的模块,现在支持的外部数据源有上百种,从文件系统、到关系型数据库,nosql数据库、大数据平台都可以Wrap(在官方wiki里可以看到详细的列表 wiki.postgresql.org/wik ),下面我们通过接几个主要的数据源来体验下FDW这风骚的操作~

FDW接文件系统

在这些wrapper里简单的应该是文件系统,

比如把linux /etc/passwd这个文件变成一个passwd表,可以这样操作

create extension file_fdw;
create server file_fdw_server foreign data wrapper file_fdw;
create foreign table passwd(username text,pass text,uid int4,gid int4, gecos text,home text,shell text) 
     server file_fdw_server options (format 'text',filename '/etc/passwd',delimiter ':',null'');
select * from passwd limit 5;

相关文章