postgresql从9.1开始增加了外部表访问的功能,这个功能就是数据库直接读取数据库以外的文件,比如csv或者text等类型的文件,暂时
postgresql从9.1开始增加了外部表访问的功能,这个功能就是数据库直接读取数据库以外的文件,比如csv或者text等类型的文件,暂时不支持dml。postgresql有各种插件能直连各种异构db,如oracle_fdw,mysql_fdw,file_fdw等,对数据的迁移是很方便的,这是pg的扩展性较强的一个表现。这里介绍foreign data wrapper的file_fdw使用。
相关阅读:
PostgreSQL 9.3物化视图使用
使用 PostgreSQL 数据库日期类型的 4 个提示
PostgreSQL删除表中重复数据行
PostgreSQL缓存详述
Windows平台编译 PostgreSQL
Ubuntu下LAPP(Linux+Apache+PostgreSQL+PHP)环境的配置与安装
一、环境:
OS :CentOS 6.3
DB :PostgreSQL 9.3
二、使用过程
1.创建扩展,因为默认不安装,安装需要手工创建
[postgres@kenyon ~]$ psqlpsql (9.3.0)Type “help” for help.postgres=# CREATE EXTENSION file_fdw;CREATE EXTENSIONpostgres=# dxList of installed extensionsName | Version | Schema |Description———-+———+————+——————————————- file_fdw | 1.0| public| foreign-data wrapper for flat file access plpgsql | 1.0| pg_catalog | PL/pgSQL procedural language(2 rows)
2.创建外部表服务接口,查看
postgres=# create server pg_file_server foreign data wrapper file_fdw;CREATE SERVERpostgres=# desList of foreign serversName| Owner | Foreign-data wrapper —————-+———-+———————- pg_file_server | postgres | file_fdw(1 row)
3.建立一个外部表,与外部文件结构一致
postgres=# create foreign table tab_area(id int,cname varchar(80),ename varchar(80),create_time varchar(30)) server pg_file_server options(filename ‘/home/postgres/data1.csv’,format ‘csv’,header on,delimiter ‘,’,null ‘1’);–后面options里面参数的说明–filename后面是文件名和绝对路径–format是格式,csv是逗号分隔,text表示是tab分隔的方式–delimiter是分隔符–header表示第一行数据是否需要–null表示空数据的转化处理,例子中字段1将转化为null
4.上传外部文件
[postgres@kenyon ~]$ more data1.csv ?ID,cname,ename,create_time1,浙江,zhejiang,2013-01-012,杭州,hangzhou,2013-01-023,北京,beijing,2012-09-124,默认,,2013-09-105,四川,sichuan,2012-12-126,,nanjing,7,甘肃,,1998-12-12
5.查询
postgres=# select * from tab_area; id | cname | ename | create_time —-+——-+———-+————-| 浙江 | zhejiang | 2013-01-01 2 | 杭州 | hangzhou | 2013-01-02 3 | 北京 | beijing | 2012-09-12 4 | 默认 || 2013-09-10 5 | 四川 | sichuan | 2012-12-12 6 || nanjing |7 | 甘肃 || 1998-12-12(7 rows)
6.查看外部表
postgres=# d+ tab_areaForeign table “public.tab_area”Column |Type| Modifiers | FDW Options | Storage | Stats target | Description ————-+———————–+———–+————-+———-+————–+————- id| integer||| plain || cname| character varying(80) ||| extended || ename| character varying(80) ||| extended || create_time | character varying(10) ||| extended || Server: pg_file_serverFDW Options: (filename ‘/home/postgres/data1.csv’, format ‘csv’, delimiter ‘,’, header ‘true’, “null” ‘1’)Has OIDs: no
接下来请看第2页精彩内容:
PostgreSQL 的详细介绍:请点这里
PostgreSQL 的下载地址:请点这里
,
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/1879985.html