本节介绍如何使用 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,表示数据已合并清理完成。您可启动正常业务读写。