文档中心>分布式数据库 TDSQL>操作指南>数据导入>执行数据导入(Bulk Load 模式)

执行数据导入(Bulk Load 模式)

最近更新时间:2025-11-18 10:10:22

我的收藏
本节介绍如何使用 Bulk Load 模式,将大量数据快速加载到数据库中。

前提条件

已准备源数据文件,并存放至导入机。
已创建目标数据库、表。
导入机与 TDSQL Boundless 集群能够正常通信。

操作步骤

1. 使用root用户登录导入机。
2. 进入 MyLoader 工具目录。
cd /data/tdsql3_run/6008/SQLEngine/bin/
3. 执行以下命令,使用 Bulk Load 模式导入数据。
./myloader -h 10.34.159.202 -P 17110 -u test -p test123 -t 20 -B sbtest -d /data/TDSQLV30/Module8-409/TDSQL3-TOOLS/bin/loader_file -r 8000 -q 100 --max-threads-per-table=20 --max-retry-statement-count=10 --max-retry-checkpoint-count=10 --not-create-database --insert-ignore=True --append-if-not-exist --enable-tdsql-bulk-load -v 3
参数
参数全称
说明
--enable-tdsql-bulk-load
--enable-tdsql-bulk-load
启用 Bulk Load 导入模式。
--enable-tdsql-bulk-load-allow-unsorted
--enable-tdsql-bulk-load-allow-unsorted
表示 Bulk Load 导入的主键数据支持乱序。
当导入的数据文件中的记录并非按照主键顺序排好序时,需要增加 --enable-tdsql-bulk-load-allow-unsorted
-r
--rows
-r × -q 用于控制事务的大小。在 Bulk Load 模式下,一个事务的数据量建议为100MB~10GB。
MyLoader 从数据文件(.sql)导入时,生成的事务不会跨数据文件,即尽管-r × -q 已经设置了很大,但是如果一个 .sql 文件中只有1000行记录,那么 MyLoader 产生的一个事务也就只有1000行,不会超过一个数据文件的大小。因此需要让数据文件本身不要过小。
-q
--queries-per-transaction
-h
--host
TDSQL Boundless 数据库连接 IP。
-P
--port
TDSQL Boundless 数据库连接端口。
-u
--user
TDSQL Boundless 数据库连接账号。
-p
--password
-B
-database
目标数据库名称。
-d
--directory
指定要加载的数据文件目录。
-t
--threads
载入数据时使用的线程数,默认为4。
--max-threads-per-table
--max-threads-per-table
用于设置每个表使用的最大线程数,默认值为4。
--max-retry-statement-count
-max-retry-statement-count
用于设置在单个查询失败时重试语句的最大次数,默认值为0。
--max-retry-checkpoint-count
--max-retry-checkpoint-count
用于设置在检查点出现错误时重试的最大次数,默认值为0。
--not-create-database
--not-create-database
MyLoader 将不会创建数据库,而是尝试将数据导入到指定的数据库中。如果指定的数据库不存在,MyLoader 将会报错并停止导入过程。
--insert-ignore
--insert-ignore
在插入重复的主键记录时启用INSERT IGNORE语句。
-append-if-not-exist
-append-if-not-exist
在创建表语句中添加IF NOT EXISTS子句。
-v
-verbose
设置日志输出的详细程度。
0:静默模式,不输出任何信息。
1:仅输出错误信息。
2(默认值):输出警告信息和错误信息。
3:输出信息、警告和错误信息。
4:输出调试信息、信息、警告和错误信息。
4. 通过 TDStore Client 观察,等待数据合并清理结束,LSM-tree 形态恢复正常后,再启动正常业务读写。
4.1 进入 TDStore Client 工具所在目录。
cd /data/tdsql3_run/6008/SQLEngine/bin/
4.2 启动 TDStore Client 工具。
./tdstore_client_new_console
4.3 执行以下命令,查看数据状态。
get_data_db_property
如下所示,Files字段为0,表示数据已合并清理完成。您可启动正常业务读写。