PostgreSQL外部表

PostgreSQL外部表,第1张

概述PostgreSQL 外部表使用说明 作者:张茂森 版本: 1.2 日期: 2009-12-22 1      步骤: 1、 安装外部表组件 2、 创建外部表 3、 使用外部表 4、 卸载外部表组件 2      安装外部表组件 1、 编译及安装动态库 下载源代码 externaltable , cvs 路径: http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi

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 Hadoop distributed file System ),执行命令如下:

>make “HDFS=true”

>make install

2 、在指定数据库中安装

使用 psql 连接到数据库后,使用 /i 命令执行 contrib/ externaltable 下 的 externaltab.sql 将会在用户所连接的数据库下完成安装过程

注:安装时,对于同一个数据库服务器,编译 过程只需要一次,但第二个步骤对服务器中不同的数据库都是必须的

3 创建外部表

安装完外部表组件后,用两个可执行文件 createexttab dropexttab

createexttab --help 可以看帮助文档

典型的用法:

createexttab -n hostname –p port –d dbname –f filename

了解此命令前,先说明一下配置文件

3.1 配置文件模板

上述命令中, filename 即为带全路径的配置文件名, 其模板为:

ext.cfg: 该文件描述了外部表的信息

[table name]

; 外部表名

table_name = exttab1

[file name ]

; 可以设定多个文件为外部表,以逗号隔开

file_name = /home/exttab/b.txt

[fIEld describtion]

; 字段描述

FIELD_INFO = name text,sex text,age text,weight text,job text,detail text

[fIEld delimiter]

; 字段分隔符

FIELD_DEliMITER =,

[record delimiter]

; 记录分隔符

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 -t tablename

即删除数据库 dbname 下的外部表 tablename

6 卸载外部表:

1 、删除指定数据库中的外部表,

使用 psql 连接到数据库后,执行 contrib/ externaltable 下的 uninstall_externaltab.sql 将会在用户所连接的数据库下的外部表组件删除

2 、彻底删除数据库服务器中的外部表

执行 make uninstall 完成卸载过程

总结

以上是内存溢出为你收集整理的PostgreSQL外部表全部内容,希望文章能够帮你解决PostgreSQL外部表所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1179767.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存