更新时间:2024-07-19 GMT+08:00

概述

“数据导入”章节适用于MRS 3.x及后续版本。

简介

Loader是实现MRS与外部数据源如关系型数据库、SFTP服务器、FTP服务器之间交换数据和文件的ETL工具,支持将数据或文件从关系型数据库或文件系统导入到MRS系统中。

Loader支持如下数据导入方式:

  • 从关系型数据库导入数据到HDFS/OBS
  • 从关系型数据库导入数据到HBase
  • 从关系型数据库导入数据到Phoenix表
  • 从关系型数据库导入数据到Hive表
  • 从SFTP服务器导入数据到HDFS/OBS
  • 从SFTP服务器导入数据到HBase
  • 从SFTP服务器导入数据到Phoenix表
  • 从SFTP服务器导入数据到Hive表
  • 从FTP服务器导入数据到HDFS/OBS
  • 从FTP服务器导入数据到HBase
  • 从FTP服务器导入数据到Phoenix表
  • 从FTP服务器导入数据到Hive表
  • 从同一集群内HDFS/OBS导入数据到HBase

MRS与外部数据源交换数据和文件时需要连接数据源。系统提供以下连接器,用于配置不同类型数据源的连接参数:

  • generic-jdbc-connector:关系型数据库连接器。
  • ftp-connector:FTP数据源连接器。
  • 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分区表的导入导出进行优化。
  • 使用FTP数据源连接器时不加密数据,可能存在安全风险,建议使用SFTP数据源连接器。
  • 建议将SFTP服务器、FTP服务器和数据库服务器与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、SYS_CONTEXT函数、dba_extents、 dba_tab_subpartitions。

  • 使用oracle-partition-connector时,要求给连接用户赋予如下系统表的select权限:dba_objects、dba_extents。

导入流程

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

图1 导入流程示意

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