功能介绍

最近更新时间: 2024-10-17 17:10:00

  • 支持单表(Noshard表),广播表(global表),分表(groupshard表),二级分区表(subshard表)以及range/list全局分区表的导入。

  • 支持进度条显示,包括实时导入记录数,总进度百分比,实时导入速率,耗时等。

  • 支持命令行导入(类似--ip=127.0.0.1)和文件参数导入(配置文件load.ini)

  • 支持自定义导入线程,分割块(chunk_size)大小等参数。

  • 支持导入部分字段,使用 --fields ="(id,k,@jump,pad)"参数跳过第三列数据只导入3个字段,或者--fields ="(id,k)"导入两个字段。

  • 支持参数设定日志等级,当日志等级设置为debug时(--log_level=2)可以查看详细的报错信息,定位到具体的行。报错或者报警告的子文本默认保存在./tmp_error或者./tmp_warning目录下。

    • 可以通过设置参数--tmp_file_path,--log_file_path控制临时文件和日志存储目录,例如设置了一下参数后,如果存在历史文件,就可以在…/loaddata/tmp/目录下,发现tmp_error或者tmp_warning目录;…/loaddata/log/目录下发现日志。
# ./load_data --ip=127.0.0.1 --password="test" --user=test --port=15006 --file=/data/file.txt --log_level=2 --log_file_path="./log" --tmp_file_path="./tmp" --field_enclosed="\""
  • 支持后台运行,通过设置--is_daemon=true开启后台模式,开启后可通过信号量(kill -s SIGUSR1 pid)的方式获得实时的导入进度。同时log日志每隔5min打印进度。

  • 支持执行前置sql,通过参数--prefix_sqls能在导入前执行sql,对于设置net_read或者write_timeout等参数也可以在此后追加,以分号隔开每个sql。目前默认运行以下指令:

"SET unique_checks = 0; SET foreign_key_checks = 0;SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED"
  • 支持文件夹导入

  • 支持位置参数

  • 支持自动重试

  • 支持断点续传

  • 支持设定出错时是退出线程还是继续执行其他range导入

  • 支持参数开启文件列数与字段数检查功能

  • 支持密码加密,例如运行./load_data --password=test --encrypt_pwd会使用默认密钥将密码test加密,返回加密后的密码密文。同时支持指定加密密钥encrypt_secret_key

  • 支持使用加密密码进行导入,例如导入时password设置为密文,则指定use_encrypt_pwd=1后可以顺利导入。同时支持指定解密密钥encrypt_secret_key