概述
“数据导出”章节适用于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分区表的导入导出进行优化。
- 建议将SFTP服务器和数据库服务器与Loader部署在独立的子网中,以保障数据安全地导出。
- 与关系数据库连接时,可以选择通用数据库连接器(generic-jdbc-connector)或者专用数据库连接器(oracle-connector、oracle-partition-connector、mysql-fastpath-connector),专用数据库连接器特别针对具体数据库类型进行优化,相对通用数据库连接器来说,导出、导入速度更快。
- 使用mysql-fastpath-connector时,要求在NodeManager节点上有MySQL的mysqldump和mysqlimport命令,并且此两个命令所属MySQL客户端版本与MySQL服务器版本兼容,如果没有这两个命令或版本不兼容,请参考http://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。