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