介绍
sys_bulkload是KingbaseES提供的快速加载数据的命令行工具。用户使用sys_bulkload工具能够把一定格式的文本数据简单、快速的加载到KingbaseES数据库中,或将KingbaseES数据库中的数据快速导出到CSV文件中。
使用前需要用户手动创建sys_bulkload插件,需要说明的是sys_bulkload工具是随数据库版本一同发布的,使用时请使用对应发布的数据库版本,其他数据版本则不保证能正常工作。
架构图
sys_bulkload主要包括两个模块:reader和writer。reader负责读取文件、解析tuple,writer负责把解析出的tuple写入输出源中。
sys_bulkload参数
sys_bulkload可以通过短选项、长选项、配置文件三种方式来指定配置加载选项。由于加载的选项比较多,并且一些加载选项的信息比较固定和反复使用,可以把这些加载选项配置在配置文件中,命令行直接指定配置文件的路径。配置加载选项规则如下:
- 启动参数的短选项和长选项是等价的。
- 在启动参数选项中仍然可以指定配置文件中配置的加载选项,其作用主要是临时替换配置文件的选项,以避免去修改配置文件中的选项,配置文件和启动参数同时指定则以启动参数指定为准。
- 如果使用启动参数则需要注意input,output,logfile,parse_badfile,duplicate_badfile不能多次指定,否则报错:specified only once。其他选项可以多次指定,并且以后指定的选项为准。
配置文件中参数选项说明:
必填参数:
1.TYPE = CSV | TEXT | BINARY | DB 加载的数据源的类型
CSV 从CSV格式的文本文件加载数据
TEXT 从TEXT格式的文本文件加载数据
BINARY 从二进制格式的文件加载数据
DB 从数据库的表中导出数据
2.INPUT = PATH | [schema_name.] table_name 需要导入的数据文件路径或者导出数据的源表
PATH 需要导入的数据源文件路径。如果是相对路径,在控制文件中指定时,它将与控制文件相对;当在命令行参数中指定时,相对于当前工作目录。KingbaseES服务器的用户必须具有该文件的读取权限。在“TYPE = CSV | TEXT | BINARY”时可用。
[schema_name.] table_name 需要导出数据的表名。仅在“TYPE = DB”时可用。
3.OUTPUT = [schema_name.] table_name | PATH 指定将数据导入的目标表或者目标文件。
[schema_name.] table_name 导入数据的表名。在“ TYPE = CSV | TEXT | BINARY ”时可用。
PATH 导出数据的文件路径。如果是相对路径,在控制文件中指定时,它将与控制文件相对;当在命令行参数中指定时,相对于当前工作目录。KingbaseES服务器的用户必须具有该文件的读取权限。仅在“TYPE = DB”时可用。
4.LOGFILE = PATH
指定一个文件记录日志。如果指定为相对路径,则指定规则与INPUT相同。默认值为$KINGBASE_DATA/sys_bulkload/_
非必填参数
1.WRITER = BUFFERED | CSV_FILE 指定数据的加载方式,默认值为 BUFFERED。
BUFFERED 通过共享缓冲区将数据加载到表中。使用共享缓冲区编写WAL日志,并可使用KingbaseES的WAL日志进行恢复。
CSV_FILE 当数据的加载方式指定为CSV_FILE时,表示将数据库中的数据导出到CSV格式的文本文件中,该参数一般与“TYPE = DB”配合使用。
2.LIMIT = n
LIMIT只在导入数据文件时有效,加载n行即停止加载。默认值为