本节简要介绍了 Parallel Loader 支持的一些功能。
1) 支持表类型
并行加载工具支持普通表和分区表。
2)支持指定导入字段
该文件不必包含表中的所有字段,您可以指定导入某些字段,但指定的字段数必须与文件中的字段数相同。
3)支持导入部分记录
并行加载工具允许您指定 where 条件,以便仅将满足条件的记录导入数据库。
4) 自动生成序列字段值
该工具支持序列字段值的自动生成,部分表字段将默认值设置为序列,可能需要由数据库自行生成,不包含在文件中。
当字段是非分片键时,我们可以使用数据库自带的函数,在插入时自动生成字段的值。 但是,当字段是分片键时,我们需要先在加载工具中生成值,然后根据值进行分片,插入到对应的 DN 节点中。
5)导入没有分片键的文件
如果文件不包含分片键且没有默认值,则加载器将该字段设置为 null 并将其插入到相应的节点中。
6) 触发器
当导入的表包含触发器时,并行加载器不做特殊处理,当触发器涉及非本地数据节点时,不支持并行加载器。 例如,如果某个表使用了触发器,则触发器会插入另一个表,但分表与原表不同,涉及多个数据节点。
7) 不支持辅助表
antdb具有二级表功能,用于优化SQL语句的性能,该表存储了数据表的相应数据。 当数据表有辅助表时,并行加载工具只能将文件导入到数据表中,不会修改对应的辅助表。
8)支持编码转换
并行加载工具支持数据编码转换,当文件和数据库中的数据编码不同时,工具会转换文件中的数据编码,然后插入到数据库中。
与copy命令相比,并行加载工具有效提高了数据加载效率。 由于表字段、类型和数据的数量不同,并行加载工具的乘数与复制命令的乘数并不完全相同。 下面比较了TPCC数据导入的性能。
在1000个仓库的数据中,有1亿条记录需要导入到BMSQL Stock表中,数据文件Stock中CSV 文件的大小为 29GB。 测试的 ANTDB 集群有 2 个 DN 主节点。 在该场景的测试中,加载效率提升了约7倍,加载速度对比图如下图
BMSQL STOCK表的结构如下:
本文介绍antdb并行加载工具的实现和使用方法,通过多线程实现文件数据的并行处理,并加载到antdb数据库中,有效提高加载效率。