云数据库 GaussDB-关于并行导入:GDS并发导入

时间:2023-11-01 16:22:50

GDS并发导入

  • 数据量大,数据存储在多个服务器上时,在每个数据服务器上安装配置、启动GDS后,各服务器上的数据可以并行入库。如图2所示。
    图2 多数据服务器并行导入

    GDS进程数目不能超过DN数目。如果超过,会出现一个DN连接多个GDS进程的情形,可能会导致部分GDS异常运行,并有可能出现“Session doesn't exists”报错。若参与某次导入的GDS数量大于DN数量,则在导入执行开始时,会返回“It is recommanded that the number of GDS should not be greater than the number of datanode”的warning。

  • 数据存储在一台数据服务器上时,如果GaussDB及数据服务器上的I/O资源均还有可利用空间时,可以采用GDS多线程来支持并发导入。

    GDS是根据导入事务并发数来决定服务运行线程数的。也就是说即使启动GDS时设置了多线程,也并不会加速单个导入事务。未做过人为事务处理时,一条INSERT语句就是一个导入事务。

    综上,多线程的使用场景如下:

    • 多表并发导入时,采用多线程充分利用资源及提升并发导入效率。
    • 对数据量大的某一数据表的导入进行提速。

      将该数据表对应的数据拆分为多个数据文件,通过多外表同时入库的方式实现多线程并发导入。注意需确保每个外表所能读取的数据文件不重复。

support.huaweicloud.com/distributed-devg-v2-opengauss/gaussdb-v5r2c10-0191.html