Apache Sqoop是一个性能高、易用、灵活的数据导入导出工具,在关系型数据库与Hadoop之间搭建了一个桥梁。本文将介绍利用Apache Sqoop实现关系型数据收集的几种应用场景分析。
Sqoop从工程角度,解决了关系数据库与Hadoop之间的数据传输问题,它构建了两者之间的“桥梁”,使得数据迁移工作变得异常简单。在实际项目中,如果遇到以下场景,可以尝试使用Sqoop完成数据收集。如下图所示:
(1)数据迁移
企业大数据平台关系型数据仓库中的数据以分析为主,综合考虑扩展性、容错性和成本开销等方面。若将数据迁移到Hadoop大数据平台上,可以方便地使用Hadoop提供的如Hive、SparkSQL分布式系统等工具进行数据分析。为了一次性将数据导入Hadoop存储系统,可使用Sqoop。
(2)可视化分析结果
Hadoop处理的输入数据规模可能是非常庞大的,比如PB级别,但最终产生的分析结果可能不会太大,比如报表数据等,而这类结果通常需要进行可视化,以便更直观地展示分析结果。目前绝大部分可视化工具与关系型数据库对接得比较好,因此,比较主流的做法是,将Hadoop产生的结果导入关系型数据库进行可视化展示。
(3)数据增量导入
考虑到Hadoop对事务的支持比较差,因此,凡是涉及事务的应用,比如支付平台等,后端的存储均会选择关系数据库,而事务相关的分析数据,比如用户支付行为等,可能在Hadoop分析过程中用到(比如广告系统,推荐系统等)。为了减少Hadoop分析过程中影响这类系统的性能,我们通常不会直接让Hadoop访问这些关系型数据库,而是单独导入一份到Hadoop存储系统中。