更新时间:2024-11-23 GMT+08:00
分享

概述

“数据导出”章节适用于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的mysqldumpmysqlimport命令,并且此两个命令所属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。

导出流程

用户通过Loader界面进行数据导出作业,导出流程如图1所示。

图1 导出流程示意

用户也可以通过Shell脚本来更新与运行Loader作业。该方式需要对已安装的Loader客户端进行配置。

相关文档