GreatSQL 并行 Load Data 加快数据导入
GreatSQL 并行 Load Data 加快数据导入
数据库信息
数据库版本:GreatSQL 8.0.32-25
Clickhouse 表需要导入到 GreatSQL 中,表数据量庞大所以选用导出 CSV 的方式。
测试数据复现操作
load data
MySQL load data 语句能快速将一个文本文件的内容导入到对应的数据库表中(一般文本的一行对应表的一条记录)。数据库应用程序开发中,涉及大批量数据需要插入时,使用 load data 语句的效率比一般的 insert 语句的高很多可以看成select … into outfile
语句的反操作,select … into outfile
将数据库表中的数据导出保存到一个文件中。
load data 语法
复制代码
GreatSQL 开启 load data 并行的方法
复制代码
方法一:设置 session 变量
连接数据库,执行set session gdb_parallel_load=on
如需调整文件块大小或线程数,执行 SET SESSION gdb_parallel_load_chunk_size=65536
或 SET SESSION gdb_parallel_load_workers=16
。使用原 load data 语句执行导入。
方法二:load 语句增加 hint
复制代码
gdb_parallel_load 是否开启并行
gdb_parallel_load_chunk_size 文件块大小
gdb_parallel_load_workers 开启多少个线程同时导入
开启 gdb_parallel_load=ON。默认配置是 gdb_parallel_load_chunk_size=4194304,gdb_parallel_load_workers=6
测试数据创建
复制代码
创建 GreatSQL 库对应库表结构
复制代码
导出导入语句样例
复制代码
不同情况下,是否开启并发耗时对比
未开启并发
开启并发
结论
从测试结果看,开启 16 并行线程,可以加快导入速度 30%~50%,导入数据量越大,表数量越多,或者的优化效益越高。
提示:开启并发请注意服务器资源的使用。
评论