金仓数据库KingbaseES 数据加载—sys_bulkload进阶
关键字:
KingbaseES、sys_bulkload、数据加载、工具、人大金仓
什么是sys_bulkload
sys_bulkload是人大金仓数据库KingbaseES提供的快速加载数据的命令行工具。用户将KingbaseES数据库中的数据快速导出到文件。使用前用户需手动创建sys_bulkload插件,同时应当注意sys_bulkload工具版本与数据库版本一致。sys_bulkload有许多的参数,之前为大家介绍bulkload的链接参数,本文将介绍一些高阶参数与ctl文件。
sys_bulkload的高阶参数
-i in_file --input in_file | 指定待加载文件或需要导出数据的表 |
-O output_table --output output_table | 快速加载的目标表或者接收导出数据的文件路径 |
-l log_file --logfile log_file | 结果日志路径 |
-P bad_file --parse-badfile bad_file | 记录无法正确解析或写失败的日志路径 |
-u duplicate_badfile | 重建索引时与唯一性约束冲突而导入失败的记录的写入路径 |
金仓数据库KingbaseES中sys_bulkload的高阶使用
在KingbaseES中,对于bulkload的使用法格式是:
sys_bulkload [ options ][ control_file_path ]
使用实例:用户shower通过端口54111向127.0.0.1号主机的bulkload_test数据库的test表中加载数据,数据文件路径是/home/sys_bulkload/test.csv,日志输出/home/bulkloadtest.log,写失败日志/home/bulkload_test_error.log。
[root@kes_0_14 bin]$ ./sys_bulkload -h 127.0.0.1 -p 54111 -Ushower -dbulkload_test -i /home/sys_bulkload/test.csv -o test –l /home/bulkloadtest.log –P /home/bulkload_test_error.log |
还可以通过ctl文件进行数据加载:
TYPE=CSV DELIMITER="," WRITER=BUFFERED INPUT= /home/sys_bulkload/test.csv OUTPUT=public. test LOGFILE= /home/bulkloadtest.log PARSE_BADFILE = /home/bulkload_test_error.log SPECIFY_COLUMN=book_id, title, author, publication_date, added_timestamp, price |
从ctl文件中可以看出,要导入的数据文件是CSV格式的,使用“,”作为分隔符,INPUT标识了数据文件路径,OUTPUT标识了要导入的模式与表名,LOGFILE标识日志输出路径,PARSE_BADFILE标识了异常的日志路劲,SPECIFY_COLUMN标识了表中的字段。同时bulkload为用户提供了一个远程加载方案,在实际的生产中具有重要作用,更加灵活地使用方法请参见《KingbaseES产品手册》。
金仓数据库始终践行成就客户的核心价值观,坚持以奋斗者为本,为创业者搭台的价值导向,努力完善数据库产品,引领国产数据库越好又快向前发展,努力成为世界卓越的数据库产品与服务提供商。