更新时间:2024-06-03 GMT+08:00

并行导入

GaussDB提供了并行导入功能,以快速、高效地完成大量数据导入。介绍GaussDB并行导入的相关参数。

raise_errors_if_no_files

参数说明:导入时是否区分“导入文件记录数为空”和“导入文件不存在”。raise_errors_if_no_files=TRUE,则“导入文件不存在”的时候,GaussDB将抛出“文件不存在的”错误。

该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。

取值范围:布尔型

  • TRUE表示导入时区分“导入文件记录数为空”和“导入文件不存在”。
  • FALSE表示导入时不区分“导入文件记录数为空”和“导入文件不存在”。

默认值:FALSE

gds_debug_mod

参数说明:为了增强对Gauss Data Service (以下简称GDS)相关问题的分析定位能力,可以通过此参数选择是否开启GDS的debug功能。参数开启后,将在集群节点对应的日志中输出GDS每次收发的包裹类型、命令交互的对端以及其他交互相关的细节信息,方便记录Gaussdb端状态机的状态跳转,以及目前所处的状态信息。此参数打开会输出额外日志,增加日志IO开销,进而影响性能和日志的信息有效性,因此请仅在定位GDS问题时开启。

该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

取值范围

  • on表示开启GDS debug功能。
  • off表示不开启GDS debug功能。

默认值:off

safe_data_path

参数说明:设置初始用户以外的路径前缀限制,目前包括copy和高级包路径限制。

该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。

取值范围:字符串(小于4096个字符)

默认值:NULL

  • 如果safe_data_path目录下存在软链接文件,则会按软链接实际指向的文件路径进行处理,实际路径如果不在safe_data_path下会报错处理。
  • 如果safe_data_path目录下存在硬链接文件,则可以正常使用。为安全起见,请谨慎使用硬链接文件,切勿在safe_data_path目录下创建指向目录以外的硬链接文件,并确保safe_data_path目录权限最小化。

enable_copy_server_files

参数说明:是否开启copy服务器端文件的权限。

该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。

取值范围:布尔型

  • on表示开启copy服务端文件的权限。
  • off表示不开启copy服务端文件的权限。

默认值:off

当参数enable_copy_server_files关闭时,只允许初始用户执行COPY FROM FILENAME或COPY TO FILENAME命令,当参数enable_copy_server_files打开,允许具有SYSADMIN权限的用户或继承了内置角色gs_role_copy_files权限的用户执行。

support_binary_copy_version

参数说明:COPY FROM的BINARY模式下导出数据时,是否包含当前数据库服务端的编码信息。

参数类型:字符串

参数单位:

取值范围:''、header_encoding。

默认值:header_encoding

设置方式:该参数属于USERSET类型参数,请参见表1对应设置方法进行设置。

设置建议:无特殊情况时建议配置为默认取值,仅做前向兼容时需另行配置为空。

表1 兼容性配置项

兼容性配置项

兼容性行为控制

header_encoding

使用COPY FROM的BINARY模式进行导出时,二进制文件头中包含当前数据库服务端的编码信息。

空值

做前向兼容处理时配置,以原二进制格式进行导出。

copy_special_character_version

参数说明:控制COPY导入导出数据时对非法编码的字符处理的相关表现。

参数类型:字符串

参数单位:

取值范围:''、no_error、per_byte。

默认值:''

设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。

使用gsql连接数据库,使用set方式设置时不区分大小写,使用gs_guc设置时仅能设置小写。

设置建议:

表2 兼容性配置项

兼容性配置项

兼容性行为控制

no_error

控制使用COPY导入数据文件时,当文件编码与服务端编码相同时,对数据文件中不满足编码信息的数据进行容错处理,按照原编码插入表中。

per_byte

控制使用COPY导出文本格式的数据文件时,对文件编码为GBK或ZHS16GBK文件的处理方式。

设置per_byte后,一次导出一个字节数据,否则一次导出两个字节数据(GBK编码下,一个字符占两个字节)。

空值

参数默认配置,不影响任何功能使用,做前向兼容处理。即COPY存在非法编码时报错。

  • 为保证导入表中数据的合法性,COPY中需要对数据编码的合法性进行校验。当开启此参数后,会屏蔽非法校验操作并导致字段内出现非法字符,请酌情考虑开启此参数。
  • 当前屏蔽数据编码校验仅在服务端编码与数据编码保持一致时生效,未指定数据编码时,数据编码默认为客户端编码。
  • 如需记录非法编码字段,建议使用COPY语法中的log errors参数或log errors data参数。
  • 二进制模式下copy_special_character_version='no_error'时,仅对TEXT、CHAR、VARCHAR、NVARCHAR2、CLOB类型的字段生效。
  • 此参数仅在UTF-8、GB18030、GB18030_2022、ZHS16GBK、LATIN1字符集数据库下使用生效。
  • 客户端编码与服务端编码都为GBK或ZHS16GBK,且数据库内存在非法编码的数据时,如果不设置copy_special_character_version为per_byte,导出的数据文件中可能会存在预期外的数据。
  • 设置copy_special_character_version值为no_error时无法与COPY内COMPATIABLE_ILLEGAL_CHARS参数同时使用。