亚信安慧AntDB数据并行加载工具的实现(二)

3. 功能性说明

本节对并行加载工具的部分支持的功能进行简要说明。

1) 支持表类型

并行加载工具支持普通表、分区表。

2) 支持指定导入字段

文件中并不是必须包含表中所有的字段,用户可以指定导入某些字段,但是指定的字段数要和文件中的字段数保持一致。

3) 支持导入部分记录

并行加载工具支持指定Where条件,只将符合条件的记录导入到数据库中。

4) 自动生成序列字段值

本工具支持自动生成序列字段值,有些表的字段设置了Default值为序列,用户可能需要数据库自己生成,并没有包含在文件中。

当该字段为非分片键时,我们可以使用数据库自有的功能,在插入时自动生成该字段值。但是当该字段为分片键时,我们需要先在加载工具中生成该值,然后根据该值进行分片,插入到对应的DN节点。

5) 无分片键文件导入

当文件中不包含分片键,并且没有Default值时,加载工具将该字段置为Null计算并插入相应节点。

6) 触发器

当导入的表包含触发器时,并行加载工具并不会做特殊的处理,当触发器涉及非本数据节点时,并行加载工具并不支持。例如一个表的触发器,该触发器会插入另外一张表,但是该表分片与原表不同,此时将会涉及多个数据节点。

7) 不支持辅助表

AntDB有辅助表功能,用来优化SQL语句的性能,该表中存放数据表的相应数据。当数据表有辅助表时,并行加载工具只能将文件导入到数据表,并不会修改相应的辅助表。

8) 支持编码转换

并行加载工具支持数据编码转换,在文件中数据和数据库的编码不同时,工具会对文件中数据编码的转换之后再插入数据库。

4.性能

并行加载工具相比Copy命令,有效提升了数据加载的效率。由于表字段的个数、类型及数据的不同,并行加载工具相对Copy命令所提升的倍率并不完全相同。下面以TPCC的数据导入进行性能的对比。

1000仓的数据,需要导入到表Bmsql_Stock的记录有1亿条,数据文件Stock.csv文件的大小为29GB。测试的AntDB集群有2个DN主节点。在此场景的测试中,加载效率提升了7倍左右,加载速度对比图如下所示:

图5 加载速率对比

Bmsql_Stock表结构如下:

图6 测试表的表结构

5. 总结

本文介绍了AntDB并行加载工具的实现方式和使用方法,通过多线程的方式实现并行处理文件数据,并加载到AntDB数据库,有效提升了加载的效率。

相关推荐
TDengine (老段)15 分钟前
TDengine 时间函数 TODAY() 用户手册
大数据·数据库·物联网·oracle·时序数据库·tdengine·涛思数据
码界奇点24 分钟前
KingbaseES一体化架构与多层防护体系如何保障企业级数据库的持续稳定与弹性扩展
数据库·架构·可用性测试
悟乙己1 小时前
数据科学家如何更好地展示自己的能力
大数据·数据库·数据科学家
皆过客,揽星河1 小时前
mysql进阶语法(视图)
数据库·sql·mysql·mysql基础语法·mysql进阶语法·视图创建修改删除
tuokuac2 小时前
Redis 的相关文件作用
数据库·redis·缓存
鹧鸪云光伏与储能软件开发3 小时前
投资储能项目能赚多少钱?小程序帮你测算
运维·数据库·小程序·光伏·光伏设计软件·光伏设计
2301_779503764 小时前
MySQL主从同步--主从复制进阶
数据库·mysql
beijingliushao4 小时前
58-正则表达式
数据库·python·mysql·正则表达式
诗句藏于尽头5 小时前
DJANGO后端服务启动报错及解决
数据库·笔记·django
手握风云-5 小时前
MySQL数据库精研之旅第十五期:索引的 “潜规则”(下)
数据库