高速并行数据加载
可获得性
本特性自V300R002C00版本开始引入。
特性简介
数据并行导入(加载)的核心思想是充分利用所有节点的计算能力和I/O能力以达到最大的导入速度。GaussDB的数据并行导入实现了对指定格式(支持CSV/TEXT格式)的外部数据高速、并行入库。
客户价值
高速、并行入库是和传统的使用INSERT语句逐条插入的方式相比较,入库性能得到提升。原理是,并行导入过程中:
- CN只负责任务的规划及下发,把数据导入的工作交给了DN,释放了CN的资源,使其有能力处理外部请求。
- 各个DN都参与数据导入的工作,充分利用各个设备的计算能力及网络带宽,提高数据导入的整体性能。
特性描述
以Hash分布策略为例介绍GaussDB的数据导入过程。数据并行导入的流程请参见图1。
图1 数据并行导入
表1 流程说明
流程
说明
创建Hash分布策略的表
业务应用在CREATE TABLE时预先设定Hash分布策略(指定表的某个属性作为分布字段)。
设定分区策略
应用程序在CREATE TABLE时还可以预先设定分区(指定表的一个属性作为分区字段),每个数据节点内部的每个Hash的数据都将按照设定的分区规则做相同的分区处理。
启动数据导入后,GDS将指定的数据文件分割成固定大小的数据块。
每个数据节点并行需从GDS下载这些数据块。
各个数据节点并行需处理数据块,从中解析出一条数据元组,每一个元组根据分布列计算出来的Hash值判断存储的物理位置:
- 如果Hash在其他网络节点,则需要通过网络重分布到目标数据节点。
- 如果Hash在本地节点,则存储在本地数据节点。
数据写入分区
数据到达Hash所在的节点后还将根据分区逻辑写入对应的分区数据文件。
在数据写入分区表时,GaussDB还提供了Exchange(交换分区)的技术来提升写入性能。
GDS:全称Gauss Data Service,GDS服务用来管理数据源,可以在数据服务器上部署多个GDS服务来提升数据加载的性能。
特性增强
V300R002C00版本支持非法字符容错。
特性约束
导入导出的相关约束参见《管理员指南》中“导入数据”和“导出数据”章节,建议用户使用个人账户进行GDS操作,不要使用root用户。
依赖关系
无。
更多详情请参考GaussDB 文档中心:doc.hcs.huawei.com/db/zh-cn/ga…