返回首页

gbase数据、南大通用产品文档:GBase8cfile_fdw

更新日期:2024年09月11日

file_fdw 模块提供了外部数据封装器file_fdw,可以用来在服务器的文件系统中访问数
据文件。数据文件必须是COPY FROM 可读的格式;具体可参照COPY 语句的介绍。访问
这样的数据文件当前只是可读的。当前不支持对该数据文件的写入操作。
当前GBase 8c 会默认编译file_fdw,
在initdb 的时候会在pg_catalog schema 中创建该插

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
1142
件。
使用file_fdw 创建的外部表可以有下列选项:
-
**filename**
指定要读取的文件,必需的参数,且必须是一个绝对路径名。
-
**format**
远端server 的文件格式,支持text/csv/binary 三种格式,和COPY 语句的FORMAT
选项相同。
-
**header**
指定的文件是否有标题行,与COPY 语句的HEADER 选项相同。
-
**delimiter**
指定文件的分隔符,与COPY 的DELIMITER 选项相同。
-
**quote**
指定文件的引用字符,与COPY 的QUOTE 选项相同。
-
**escape**
指定文件的转义字符,与COPY 的ESCAPE 选项相同。
-
**null**
指定文件的null 字符串,与COPY 的NULL 选项相同。
-
**encoding**
指定文件的编码,与COPY 的ENCODING 选项相同。
-
**force\_not\_null**
这是一个布尔选项。如果为真,则声明字段的值不应该匹配空字符串(也就是,文
件级别null 选项)。与COPY 的FORCE\_NOT\_NULL 选项里的字段相同。
file_fdw 不支持COPY 的OIDS 和FORCE_QUOTE 选项。
注意这些选项只能为外部表或它的字段声明,
不是在file_fdw 外部数据封装器的选项里,
也不是在使用该封装器的服务器或用户映射的选项里。
修改表级别的选项需要系统管理员权限,
因为安全原因:
只有系统管理员用户能够决定
读哪个文件。
对于一个使用file_fdw 的外部表,EXPLAIN 显示要读取的文件名。除非指定了COSTS
OFF,否则也显示文件大小(字节计)。

使用 OPTCOMPIND 来指定信息,帮助优化器选择一个对您的应用适当的查询计划。
提示: 您可认为此变量名出自“OPTimizer COMPare (the cost of using) INDexes (with
other methods)。”
onconfig.std 值
OPTCOMPIND 2

0 = 当表的每一排序的对存在适当的索引时,用户器选择索引扫描(嵌套循环联接),不
计成本,不选择表扫描(散列联接)。
1 = 如果隔离级别不是 Repeatable Read,则优化器根据成本来确定执行路径。否则,优
化器选择索引扫描(效果与值 0 相同)。此设置是优化性能的推荐设置。
2 = 优化器根据成本来确定任何隔离级别的执行路径。索引扫描不优先于表扫描;优化器
纯粹地根据成本做决定。如果未设置变量,则该值是缺省值。
生效
编辑 onconfig 文件并重启数据库服务器之后。
当您通过运行 onmode -wf 命令在 onconfig 文件中动态地重置该值时。
当您通过运行 onmode -wm 命令重置内存中的该值时。
用法
由于散列联接的本质,一个隔离模式设置为 Repeatable
Read 的应用可能临时地锁定表中
的所有记录,这些表参与表的每一排序集的联接(即使那些记录不符合联接条件)。这种

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 117 -
情况导致联接中发生较高的争用。相反地,嵌套循环联接锁定较少记录,但当数据库服务
器检索大量行时性能较差。因此,两种联接方式都各有利弊。客户端应用也可影响优化器
对联接方式的选择。

修改方式:数据传输服务,提供GBase 集群节点之间数据传输的服务。
如select into server 的链式转发、树形转发。

GBase 8a MPP Cluster 参数手册
文档版本2022-06-07
南大通用数据技术股份有限公司
132