PostgreSQL外部表
来源:互联网 发布:淘宝放心淘 编辑:程序博客网 时间:2024/06/05 10:09
PostgreSQL外部表使用说明
作者:张茂森
版本:1.2
日期:2009-12-22
1 步骤:
1、 安装外部表组件
2、 创建外部表
3、 使用外部表
4、 卸载外部表组件
2 安装外部表组件
1、 编译及安装动态库
下载源代码externaltable,cvs路径:
http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgexternaltable/src/externaltable/
将源代码拷贝到PostgreSQL的安装源码包中,路径contrib/下,进入externaltable执行
>make
>make install
完成编译安装动态库过程
如果需要外部表支持HDFS(HadoopDistributed File System),执行命令如下:
>make “HDFS=true”
>make install
2、在指定数据库中安装
使用psql连接到数据库后,使用/i命令执行contrib/ externaltable下的externaltab.sql将会在用户所连接的数据库下完成安装过程
注:安装时,对于同一个数据库服务器,编译过程只需要一次,但第二个步骤对服务器中不同的数据库都是必须的
3 创建外部表
安装完外部表组件后,用两个可执行文件createexttab 、 dropexttab
createexttab --help 可以看帮助文档
典型的用法:
createexttab -n hostname –p port –ddbname –f filename
了解此命令前,先说明一下配置文件
3.1 配置文件模板
上述命令中,filename即为带全路径的配置文件名,其模板为:
ext.cfg:该文件描述了外部表的信息
[table name]
;外部表名
TABLE_NAME =exttab1
[file name ]
;可以设定多个文件为外部表,以逗号隔开
FILE_NAME = /home/exttab/b.txt
[fielddescribtion]
;字段描述
FIELD_INFO = name text , sex text , age text, weight text, job text, detail text
[fielddelimiter]
;字段分隔符
FIELD_DELIMITER = ,
[recorddelimiter]
;记录分隔符
RECORD_DELIMITER = newline
[log file name]
;日志文件名
LOG_FILE_NAME =/home/exttab/logtest/exttab1.log
[bad file name]
;坏记录文件名
BAD_FILE_NAME =/home/exttab/logtest/exttab1.bad
[max record len]
;允许的最大记录长度,建议配成1048576(1M)
MAX_RECORD_LEN =1048576
3.2 配置文件说明:
l []中的内容为固定的内容
l TABLE_NAME为用户对外部文件起的对应的表名
l FILE_NAME为带全路径的外部文件名
l FIELD_INFO为外部表各个字段的描述
l FIELD_DELIMITER为字段分隔符
1、支持任意单个字符为字段分隔符,对于不可打印字符,比方说^A 、/n等等,应该写成0x0A 、 0x0D
2、不支持字符串
l RECORD_DELIMITER为记录分隔符
1、支持任意单个字符作为记录分隔符,对于不可打印字符,比方说^A 、/n等等,应该写成0x0A 、 0x0D
2、不支持两个或两个以上的字符串作为记录分隔符
3、支持特定字符串newline 、NEWLINE,视为'/n'处理
l LOG_FILE_NAME为带全路径的日志文件文件名,用于记录查询过程中的日志记录,如果不需要日志记录,可以不指定
l BAD_FILE_NAME为带全路径的BAD文件名,用于记录查询过程中的外部文件的坏数据以及其所在文件名和行号,如果不需要可以不指定,因为记录bad文件会较大的影响查询速度,因此建议对于大数据量的操作不指定该文件名
l MAX_RECORD_LEN为允许的最大记录长度,如果不指定会默认为1048576即1M字节数,推荐指定1048576
那么,执行此命令的意思是:
在数据库dbname上创建以filename描述的外部表,其描述为:
外部表名:exttab1
外部文件名:/home/exttab/b.txt
以及其他各个外部表需要的信息,如果提示创建成功,那么,用户就可以对外部表exttab1进行查询操作了,(注:目前不能对外部表进行update、insert、truncate操作)
4 使用外部表:
如上述例子:
用户使用psql连接到数据库dbname上,可以直接输入查询语句:
select * from exttab1;进行查询
5 删除外部表:
当用户不在需要使用外部表exttab1时,可以使用命令dropexttab进行删除外部表操作
可以使用dropexttab–help查看帮助信息
典型应用是:
dropexttab -n hostname –p port –d dbname -ttablename
即删除数据库dbname下的外部表tablename
6 卸载外部表:
1、删除指定数据库中的外部表,
使用psql连接到数据库后,执行contrib/ externaltable下的uninstall_externaltab.sql将会在用户所连接的数据库下的外部表组件删除
2、彻底删除数据库服务器中的外部表
执行makeuninstall完成卸载过程
- PostgreSQL外部表项目
- PostgreSQL外部表
- postgresql的外部表
- PostgreSQL外部表应用
- PostgreSQL的外部表使用
- PostgreSQL - 外部表、分布键、父子表
- Postgresql外部表的使用:file_fdw
- Gitlab 配置外部PostgreSQL
- postgresql 跨库访问外部表 存储过程
- PostgreSQL基于错误XML外部实体攻击
- Linux服务器PostgreSQL外部连接设置
- PostgreSQL数据库取外部数据的扩展功能
- 外部表
- 外部表
- 外部表
- 外部表
- 外部表
- 外部表
- WEBGAME策划的40个办法
- 测试反应时间脚本
- 五百年54 512之时间本来的维度谭
- 解读QT信号与槽机制里 QMetaObject::connectSlotsByName(QObject *o)的源码
- 汽车电子产品分类
- PostgreSQL外部表
- Windows 7 下硬盘安装Ubuntu10.10 图文教程[双系统]
- Dm9000aep在u-boot下网卡驱动调试笔记
- 贝叶斯 VS 朴素贝叶斯
- SQL2008的数据更新跟踪测试
- c中malloc与new的区别
- 分享H3Cv5.2实验拓扑+技术文档
- 05-09
- 关于SQL语句Count的一点细节