
# 概述
"数据导出"章节适用于MRS 3.x及后续版本。
#### 简介
Loader是实现MRS与关系型数据库、文件系统之间交换数据和文件的ETL工具，支持将数据或者文件从MRS系统中导出到关系型数据库或文件系统中。
Loader支持如下数据导出方式：
- 从HDFS/OBS中导出数据到SFTP服务器
- 从HDFS/OBS中导出数据到关系型数据库
- 从HBase中导出数据到SFTP服务器
- 从HBase中导出数据到关系型数据库
- 从Phoenix表导出数据到SFTP服务器
- 从Phoenix表导出数据到关系型数据库
- 从Hive中导出数据到SFTP服务器
- 从Hive中导出数据到关系数据库
- 从同一集群内HBase导出数据到HDFS/OBS
MRS与外部数据源交换数据和文件时需要连接数据源。系统提供以下连接器，用于配置不同类型数据源的连接参数：
- generic-jdbc-connector：关系型数据库连接器。
- hdfs-connector：HDFS数据源连接器。
- oracle-connector：Oracle数据库专用连接器，使用row_id作为分区列，相对generic-jdbc-connector来说，Map任务分区更均匀，并且不依赖区分列是否有创建索引。
- mysql-fastpath-connector：MySQL数据库专用连接器，使用MySQL的mysqldump和mysqlimport工具进行数据的导入导出，相对generic-jdbc-connector来说，导入导出速度更快。
- sftp-connector：SFTP数据源连接器。
- oracle-partition-connector：支持Oracle分区特性的连接器，专门对Oracle分区表的导入导出进行优化。
![](https://support.huaweicloud.com/cmpntguide-mrs/public_sys-resources/note_3.0-zh-cn.png)
- 建议将SFTP服务器和数据库服务器与Loader部署在独立的子网中，以保障数据安全地导出。
- 与关系数据库连接时，可以选择通用数据库连接器（generic-jdbc-connector）或者专用数据库连接器（oracle-connector、oracle-partition-connector、mysql-fastpath-connector），专用数据库连接器特别针对具体数据库类型进行优化，相对通用数据库连接器来说，导出、导入速度更快。
- 使用mysql-fastpath-connector时，要求在NodeManager节点上有MySQL的**mysqldump** 和**mysqlimport** 命令，并且此两个命令所属MySQL客户端版本与MySQL服务器版本兼容，如果没有这两个命令或版本不兼容，请参考<https://dev.mysql.com/doc/refman/5.7/en/linux-installation-rpm.html>，安装MySQL client applications and tools。
- 使用oracle-connector时，要求给连接用户赋予如下系统表或者视图的select权限： dba_tab_partitions、dba_constraints、dba_tables 、dba_segments 、v$version、dba_objects、v$instance、dba_extents、 dba_tab_partitions、dba_tab_subpartitions。
  
- 使用oracle-partition-connector时，要求给连接用户赋予如下系统表的select权限：dba_objects、dba_extents。
 
#### 导出流程
用户通过Loader界面进行数据导出作业，导出流程如[图1]所示。
图1导出流程示意   
![](https://support.huaweicloud.com/cmpntguide-mrs/zh-cn_image_0268150092.png)
用户也可以通过Shell脚本来更新与运行Loader作业。该方式需要对已安装的Loader客户端进行配置。
