作者:稀饭
1、关系型数据和Hadoop生态进行交互的意义
关系型数据是一种常见的数据类型,通常存储在像MySQL、Oracle等关系型数据库中。为了能够利用大数据技术处理和存储这些关系型数据,需要先把这些数据导入到像HDFS、HBase这样的大数据存储系统中,以便使用MapReduce、Spark这样的分布式计算技术进行高效分析和处理。此外,从另一个角度讲,为了便于和前端的数据可视化系统对接,通常需要将Hadoop大数据系统分析产生的结果(如报表)导回到关系型数据库中。
2、关系型数据和Hadoop生态之间交互的工具 —— Sqoop
Sqoop可以将关系型数据导入到Hadoop生态中,解决了二者之间的传输问题。常见的场景有三类:
(1)数据迁移。将关系型数据库中的数据迁移到Hadoop大数据平台上;
(2)可视化分析结果。Hadoop生态处理的数据规模可能非常庞大,但最终产生的分析结果可能不大,对于分析结果往往需要进行可视化展示,可以利用Sqoop将Hadoop产生的结果导回到关系型数据库中;
(3)数据增量导入。考虑到Hadoop生态对事务的支持比较差,所以凡是涉及到事务的应用(如支付类应用),后端的存储均会采取关系型数据库。但事务相关的数据,比如用户支付行为等,又可能需要在Hadoop平台内分析。因此,为了减少Hadoop分析过程中对这类关系型系统的影响,通过不会直接让Hadoop生态与这些关系型数据库产生交集,而是单独导入一份数据到Hadoop的存储系统中。
3、Sqoop的基本思想
Sqoop采用拔插式的Connector架构,Connector是与特定数据源相关的组件,主要负责从特定的数据中进行ETL。用户可以选择Sqoop自带的Connector,或者数据库供应商发布的相关Connector,甚至是自定义,从而把Sqoop打造成一个公司级别的数据迁移统一管理系统。
4、Sqoop的特点
(1)性能高
Sqoop采用MapReduce完成数据的导入和导出,具备了MapReduce所具有的优点,包括并发度可控、容错性高、扩展性高等。
(2)自动类型转换
Sqoop可读取数据源信息,自动完成数据类型映射,用户也可根据需要自定义类型映射关系。
(3)自动传播元信息
Sqoop在数据发送端和接收端之间传递数据的同时,也会将元信息传递出去,保证接收端和发送端有一致的元信息。
广告区↓





