postgresql从9.1开始增加了外部表访问的功能,这个功能就是数据库直接读取数据库以外的文件,比如csv或者text等类型的文件,暂时不支持DML。postgresql有各种插件能直连各种异构DB,如Oracle_fdw,mysql_fdw,file_fdw等,对数据的迁移是很方便的,这是PG的扩展性较强的一个表现。这里介绍foreign data wrapper的file_fdw使用。
相关阅读:PostgreSQL 9.3物化视图使用 http://www.linuxidc.com/Linux/2013-09/90045.htm使用 PostgreSQL 数据库日期类型的 4 个提示 http://www.linuxidc.com/Linux/2013-08/89472.htmPostgreSQL删除表中重复数据行 http://www.linuxidc.com/Linux/2013-07/87780.htmPostgreSQL缓存详述 http://www.linuxidc.com/Linux/2013-07/87778.htmWindows平台编译 PostgreSQL http://www.linuxidc.com/Linux/2013-05/85114.htmUbuntu下LAPP(Linux+Apache+PostgreSQL+PHP)环境的配置与安装 http://www.linuxidc.com/Linux/2013-04/83564.htm
一、环境: 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 extensions Name | 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=# des List 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将转化为null4.上传外部文件[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-125.查询postgres=# select * from tab_area; id | cname |ename | create_time ----+-------+----------+-------------| 浙江| zhejiang | 2013-01-012 | 杭州| hangzhou | 2013-01-023 | 北京| beijing| 2012-09-124 | 默认|| 2013-09-105 | 四川| sichuan| 2012-12-126 | | 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页精彩内容:http://www.linuxidc.com/Linux/2013-10/90903p2.htm
PostgreSQL 的详细介绍:请点这里
PostgreSQL 的下载地址:请点这里
如何让你的内存中的 NoSQL 数据存储适合企业级应用OGG配置DML单向复制一例及错误分析相关资讯 PostgreSQL PostgreSQL使用
- Ubuntu 16.04 下安装 PostgreSQL (08月14日)
- PostgreSQL 发布全系安全更新 (02月12日)
- 使用pg_basebackup搭建PostgreSQL (12/30/2015 09:00:29)
| - Linux下RPM包方式安装PostgreSQL (03月04日)
- PostgreSQL9.5新特性之行级安全性 (01月19日)
- 利用pgpool实现PostgreSQL的高可用 (12/30/2015 08:54:36)
|
本文评论 查看全部评论 (0)