更新时间:2022-08-16 GMT+08:00

关于GDS并行导出

使用GDS工具将数据从数据库导出到普通文件系统中,适用于高并发、大量数据导出的场景。

当前版本的GDS支持从数据库导出到管道文件,该功能使GDS的导出更加灵活多变。

  • 当GDS用户的本地磁盘空间不足时:
    • 通过管道文件将从GDS导出的数据进行压缩减少磁盘空间。
    • 通过管道直接将导出来的数据放到hdfs服务器上。
  • 当用户导出前需要清洗数据时:
    • 用户可以根据自己的需求编写程序,将需要处理的流式数据实时从管道中读取内容,完成导出的数据清洗工作。
    • 当前版本暂不支持SSL模式下GDS导出,请勿以SSL方式使用GDS。
    • 本章涉及的所有管道文件都是指linux上的命名管道。

概述

通过外表导出数据:通过GDS外表设置的导出模式、导出数据格式等信息来指定待导出的数据文件,利用多DN并行的方式,将数据从数据库导出到数据文件中,从而提高整体导出性能。不支持直接导出文件到HDFS文件系统。
  • CN只负责任务的规划及下发,把数据导出的工作交给了DN,释放了CN的资源,使其有能力处理外部请求。
  • 通过让各个DN都参与数据导出,充分利用各个设备的计算能力及网络带宽。
    图1 通过外表导出数据

相关概念

  • 数据文件:存储有数据的TEXT、CSV或FIXED文件。文件中保存的是从GaussDB(DWS)数据库导出的数据。
  • 外表:用于规划导出数据文件的数据文件格式、存放位置、编码格式等信息。
  • GDS:数据服务工具。在导出数据时,需要将此工具部署到数据文件所在的服务器上,使DN可以通过该工具导出数据。
  • :数据库中的表,包括行存表和列存表。数据文件中的数据从这些表中导出。
  • Remote导出模式:将集群中的业务数据导出到集群之外的主机上。

导出模式

GaussDB(DWS)支持的导出模式有Remote模式。

  • Remote模式:将集群中的业务数据导出到集群之外的主机上。
    • 支持多个GDS服务并发导出,但1个GDS在同一时刻,只能为1个集群提供导出服务。
    • 配置与集群节点处于统一内网的GDS服务,导出速率受网络带宽影响,推荐的网络配置为10GE。
    • 支持数据文件格式:TEXT、CSV。单行数据大小需<1GB。

导出流程

图2 并行导出流程

表1 流程说明

流程

说明

子任务

规划导出数据。

根据所选模式,准备需要导出的数据并规划导出路径。

详细内容请参见规划导出数据

-

启动GDS。

若规划的导出模式为Remote模式,需在数据服务器上安装配置并启动GDS。

详细内容请参见安装配置和启动GDS

-

创建外表。

创建外表用于帮助GDS指定导出的数据文件。外表中保存了导出数据文件的位置、文件格式、编码格式、数据间的分隔符等信息。

详细内容请参见创建GDS外表

-

执行导出数据。

在创建好外表后,通过INSERT语句,将数据快速、高效地导出到数据文件中。

详细内容请参见执行导出数据

-

停止GDS。

数据导出完成后,停止GDS。

详细请参见停止GDS

-