首页 > 数据库 > > 通过外表并行导入-关于并行导入
INSERT和COPY方式执行数据导入时,是一个串行执行的过程,导入性能低,因此适用于小数据量的导入。对于大数据量的导入,GaussDB 200支持通过外表并行导入数据到集群。
并行导入将存储在服务器普通文件系统中的数据导入到GaussDB 200数据库中。暂时不支持将存储在HDFS文件系统上的数据导入GaussDB 200。
并行导入功能通过外表设置的导入策略、导入数据格式等信息来识别数据源文件,利用多DN并行的方式,将数据从数据源文件导入到数据库中,从而提高整体导入性能。如图1所示:
上图中所涉及的相关概念说明如下:
从表1中的对比看,Normal策略因其扩展性强、准备工作简单、对导入的单行数据大小无限制,是优先推荐和常用的策略。本章节也将主要介绍使用GDS的并行导入方法。关于另外两种方式可以参考示例2:Shared策略导入和示例3:Private策略导入。
注意:GDS进程数目不能超过DN数目。如果超过,会出现一个DN连接多个GDS进程的情形,可能会导致部分GDS异常运行。
GDS是根据导入事务并发数来决定服务运行线程数的。也就是说即使启动GDS时设置了多线程,也并不会加速单个导入事务。未做过人为事务处理时,一条INSERT语句就是一个导入事务。
综上,多线程的使用场景如下:
将该事实表对应的数据拆分为多个数据文件,通过多外表同时入库的方式实现多线程并发导入。注意需确保每个外表所能读取的数据文件不重复。

流程 | 说明 |
|---|---|
准备源数据。 | 准备需要导入数据库的源数据文件,并上传至数据服务器。 详细内容请参见准备源数据。 |
启动GDS。 | 在数据服务器上安装配置并启动GDS。 详细内容请参见安装配置和启动GDS。 |
创建外表。 | 创建外表用于识别数据源文件中的数据。外表中保存了数据源文件的位置、文件格式、存放位置、编码格式、数据间的分隔符等信息。 详细内容请参见创建GDS外表。 |
执行导入数据。 | 在创建好外表后,通过INSERT语句,将数据快速、高效地导入到目标表中。详细内容请参见执行导入数据。 |
处理错误表。 | 在数据并行导入发生错误时,请根据具体的错误信息进行处理,以保证导入数据的完整性。 详细内容请参见处理错误表。 |
优化查询效率。 | 导入数据后,通过ANALYZE语句生成表统计信息。ANALYZE语句会将统计结果自动存储在系统表PG_STATISTIC中。执行计划生成器会使用这些统计数据,以生成最有效的查询执行计划。 |
停止GDS | 待数据导入完成后,登录每台数据服务器,分别停止GDS。 GDS的停止请参见停止GDS。 |
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69959250/viewspace-3164897/ ,如需转载,请注明出处,否则将追究法律责任。