更新时间: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 并行导出流程
流程 |
说明 |
子任务 |
---|---|---|
规划导出数据。 |
根据所选模式,准备需要导出的数据并规划导出路径。 详细内容请参见规划导出数据 |
- |
启动GDS。 |
若规划的导出模式为Remote模式,需在数据服务器上安装配置并启动GDS。 详细内容请参见安装配置和启动GDS。 |
- |
创建外表。 |
创建外表用于帮助GDS指定导出的数据文件。外表中保存了导出数据文件的位置、文件格式、编码格式、数据间的分隔符等信息。 详细内容请参见创建GDS外表。 |
- |
执行导出数据。 |
在创建好外表后,通过INSERT语句,将数据快速、高效地导出到数据文件中。 详细内容请参见执行导出数据。 |
- |
停止GDS。 |
数据导出完成后,停止GDS。 详细请参见停止GDS。 |
- |
父主题: 使用GDS导出数据到远端服务器